Bản demo tĩnh — không phải kết nối thật, chỉ là dữ liệu ví dụ

Aki MCP Server

Gives Claude, ChatGPT, Grok, and Gemini read/edit access to files and a whitelisted shell on this machine, over Tailscale Funnel (or your own HTTPS edge / Cloudflare tunnel), gated by OAuth 2.1. Local panel only (127.0.0.1), never reachable through Funnel.

Running repo: /Users/demo/aki-mcp-sv · Config & keys: /Users/demo/.aki/mcpsv

Setup steps

  1. Setup
  2. 1 Connectors
  3. 2 Install rules
  4. 3 Instructions
  5. 4 Extension optional

0 · Setup done

Currently serving at https://demo-host.ts.net via Tailscale Funnel. Ingress is decided when npm start boots, not switchable live; restart after picking a different tab below. The Hosted domain tab has nothing to pick or restart, it's a contact link.

Complete these one-time prerequisites in order.

You're viewing this panel, so the first three below are already done; the two Tailscale checks are live.

  1. Clone / download the aki-mcp-sv repo.
  2. npm install.
  3. npm start, running now.
  4. Install Tailscale and sign in.
  5. Enable Funnel for your tailnet, free on every plan. npm start enables it automatically; it only prints a link for you to approve once, when the tailnet hasn't allowed it yet.

Connector keeps dropping with "hostname doesn't resolve / isn't reachable"? The Funnel edge desynced, a Tailscale-side issue, not this server. Re-sync in a terminal (needs sudo, so it can't be a button here), then reconnect. Why: docs/research/claude-ai-oauth-connector.md round 9.

tailscale funnel --https=443 off && tailscale serve reset && tailscale funnel --bg 9999

Funnel unreliable in your region even after re-syncing? See the "Owned public origin" tab for two ways to bypass it.

Replaces Tailscale entirely; OAuth and the tool suite stay the same.

Have a Cloudflare tunnel credentials JSON?

No tunnel yet? README: Exposing to the internet.

Or: any HTTPS edge you already run

Set PUBLIC_ORIGIN in .env (copy from .env.example), or prefix the start command: PUBLIC_ORIGIN=https://your-host npm start

Pick a domain and subdomain, then request it via Messenger; setup is manual, not self-serve yet.

Worth it over the free Tailscale + Funnel tab if you want a short, memorable URL instead of Tailscale's auto-generated *.ts.net hostname.

1 · Connectors: Claude, Grok, ChatGPT, Gemini

Same Funnel URL for every client. Folders / shell allowlist apply to whoever connects. Fill the three common values below, then open your client's tab.

Aki MCP Server from local Shell & FileSystem
https://demo-host.ts.net/mcp
demo-passphrase

↗ Open Add custom connector

Paste the three common values above, plus these two Claude-only credentials, into the connector dialog.

demo-client-id
demo-client-secret
  1. Open Connectors → New Connector → Custom.
  2. Set Name = MCP Name above, Server URL = MCP URL.
  3. On connect, enter the Passphrase.

Name must match exactly, the paste-in instruction keys off it. Grok self-registers via PKCE, nothing else to paste.

  1. Turn on Developer mode (Settings → Connectors → Advanced).
  2. Create a connector, then pick this repo's icon file for it: /Users/demo/aki-mcp-sv/public/favicon/icon-48.png. Name and description are your choice.
  3. Server URL = MCP URL, Authentication = OAuth.
  4. Open Advanced OAuth settings and set Registration URL to the value below; the other endpoints auto-fill.
  5. Tick I understand and want to continue, then Create.
  6. On connect, enter the same Passphrase.
https://demo-host.ts.net/register

Registration method = DCR, Token endpoint auth method = none; ChatGPT registers its own client via PKCE, no secret. Do not paste Claude's Client ID or Secret here. Write tools may be limited depending on OpenAI's current policy.

Paid tiers only. Tested 2026-08-09: the connection is healthy, but Gemini web doesn't reliably discover or invoke the MCP tools, use Claude or Grok instead. Not recommended.

  1. Open custom connected apps (Gemini → paid subscriptions → Custom apps).
  2. Set the custom app link / Server URL = MCP URL.
  3. Open Advanced Settings and paste the Client ID and Client secret from the Claude tab (same confidential client).
  4. Ignore Gemini's Copy redirect URI button; the redirect is already allowlisted server-side.
  5. On Continue, enter the Passphrase.

2 · Install AkiDevRule (optional)

Pins how the AI writes, self-corrects, and names things into rule files loaded only when needed, so it stops re-guessing every session. Choose which files load in section 3 below.

curl -fsSL https://raw.githubusercontent.com/lacvietanh/akidevrule/master/install.sh | bash

Mac/Linux: the curl command above, or bash install.sh from a local clone. Windows (PowerShell): git clone https://github.com/lacvietanh/akidevrule.git; cd akidevrule; .install.ps1, or py -3 install.py. No sudo; writes only to ~/.aki and ~/.claude, removable with rm -rf.

View repo ↗

3 · Instructions: choose rules & copy the prompt

Choose which rule files load, then copy the Instructions into the custom-instructions setting of each AI (links below). It teaches the AI to use this server's tools and to load the rules you installed in section 2.

4 · Browser utilities optional

Claude Token Counter: a Chrome extension that shows your hourly and weekly usage bar under claude.ai's input box, including on the Free plan, which claude.ai doesn't surface itself.

Token usage bar shown under claude.ai's input box

Grok Usage Watch: the same idea for grok.com, a rate-limit/usage bar for your Grok quota that the site doesn't show on its own.

Usage / rate-limit bar shown on grok.com

Widen the claude.ai chat pane; paste the snippet below into the browser tab's Console (Cmd/Ctrl ⌥ J). Only tweaks CSS in your current tab, nothing account- or security-related, nothing leaves your machine.

document.querySelectorAll('.max-w-3xl').forEach(el => el.classList.replace('max-w-3xl', 'max-w-7xl'));

5 · Folders the connector may reach

These folders scope file tools and the shell's working directory. Allowed shell commands run with your user permissions and may access files outside this list.

The default root is your whole home folder: Desktop, Documents, Downloads, Photos, everything under it, not just projects.

Save takes effect immediately for the shell and search tools. The file read/write/edit tools run in a separate helper process that only picks up a change after "Apply to file tools" (or a full restart) — press that too if you need those tools to see it right away.

6 · Allowed shell commands

Commands run as your user, so they can read what you can. Chips allow any subcommand; click a chip to restrict it to specific subcommands. Adding write commands (rm, git commit…) widens access.

Trusted script directories

Scripts under these folders run without a command row above, for Aki-authored skills and scripts. A folder that overlaps a writable folder from section 5 is disabled (write + run = code execution).