Skip to content

Neolithic/amika-mcp

Repository files navigation

Amika MCP Server

Deploy to Cloudflare

A remote MCP server for Amika: manage your sandboxes and agent sessions from any MCP client — including the Claude mobile app, so you can check on and steer your coding agents from your phone.

You deploy your own instance to Cloudflare Workers (free tier is plenty) with your own Amika API key. Nothing is shared: your key stays in your worker.

Tools

Tool What it does
list_sandboxes List all sandboxes with their state
get_sandbox Details/state of one sandbox
start_sandbox / stop_sandbox Start or stop a sandbox (waits for the state change)
list_sessions List agent sessions in a sandbox
get_latest_session Most recent session in a sandbox
get_session Fetch one session by id
create_session Create an empty session with optional metadata
update_session Update a session's status/metadata (e.g. mark completed)
send_to_agent Send a message to the Claude/Codex agent in a sandbox and wait for the reply — resumes the latest session by default, or pass new_session / session_id

Deploy

One-click

  1. Click Deploy to Cloudflare above. Cloudflare copies this repo into your GitHub account and creates a Worker that redeploys on every push.
  2. Add two secrets to the worker (dashboard → your worker → SettingsVariables and Secrets, type Secret):
    • AMIKA_API_KEY — generate at app.amika.dev/settings (API Key section)
    • MCP_PATH_SECRET — a long random string, e.g. from openssl rand -hex 24

Your MCP endpoint is:

https://<worker-name>.<your-subdomain>.workers.dev/<MCP_PATH_SECRET>/mcp

CLI

git clone https://github.com/Neolithic/amika-mcp
cd amika-mcp && npm install
npx wrangler login                       # or: export CLOUDFLARE_API_TOKEN=<token>
npx wrangler secret put AMIKA_API_KEY
npx wrangler secret put MCP_PATH_SECRET
npm run deploy

If wrangler login's browser flow can't reach you (headless/remote machine), create an API token with the "Edit Cloudflare Workers" template at dash.cloudflare.com/profile/api-tokens and set CLOUDFLARE_API_TOKEN instead.

Connect a client

Claude (including the mobile app) — requires a Pro/Max/Team plan:

  1. claude.ai/settings/connectorsAdd custom connector → name it Amika, paste your full endpoint URL (including the secret segment). Leave the OAuth fields empty.
  2. In any Claude app (web, desktop, mobile), enable the connector in the tools menu and ask things like "list my amika sandboxes" or "send 'run the tests' to the agent in dev-box".

Claude Code:

claude mcp add --transport http amika https://<worker>/<secret>/mcp

Any other MCP client that speaks Streamable HTTP works the same way.

Security model

  • Single-tenant by design. Each deployment serves exactly one Amika account. The worker holds your AMIKA_API_KEY as a Cloudflare secret; it is never sent to clients.
  • The URL is the credential. There is no OAuth — the endpoint is guarded by the secret path segment. Treat the full URL like a password: don't share it, don't post screenshots of it, and rotate it if it leaks (wrangler secret put MCP_PATH_SECRET, or edit it in the dashboard).
  • Never share your deployed endpoint with other people. Anyone with the URL has full control of your Amika account's sandboxes and agents. Other users should deploy their own instance — that's what the button is for.
  • Requests with a wrong or missing path secret get a 404 without touching the Amika API.

Local development

cp .dev.vars.example .dev.vars   # fill in AMIKA_API_KEY and MCP_PATH_SECRET
npm run dev                      # serves http://localhost:8787/<secret>/mcp
npm run typecheck

Notes & limitations

  • send_to_agent blocks until the agent finishes (Amika's endpoint is synchronous with a 10-minute timeout). Long agent runs may exceed your MCP client's own tool timeout — the work still continues inside Amika; check back with get_latest_session.
  • The Amika SDK stores an unbound fetch reference, which throws "Illegal invocation" on Workers. The client passes fetch: (input, init) => fetch(input, init) to work around it (src/index.ts) — don't remove it.
  • Built with @amika/sdk, the MCP TypeScript SDK, and Cloudflare's agents framework (Streamable HTTP via McpAgent).

License

MIT

About

Remote MCP server for Amika — manage sandboxes and agent sessions from the Claude mobile app (deploy your own on Cloudflare Workers)

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors