Browse documentation

Connect MCP

Connect an AI client to your real MANA workspace, then verify the tool list before asking it to read or change anything.

What this gives you

The Model Context Protocol (MCP) lets an AI client ask MANA to do selected work in your workspace. Once connected, it can create a project, break a brief into tasks, manage task labels, draft or publish a document, log an expense, check a calendar, or summarise a client's history.

This is a deliberately small, safe set of MANA actions—not a copy of every screen or every underlying service. Your client discovers the available tools automatically after it connects.

The client sends an authenticated tool call to MANA. MANA runs it only against the account that owns the token.

The run-through

  1. 1

    Copy your private setup

    Open Settings → AI → MCP connection and press Copy setup. It includes your private token and the MANA address separately.

  2. 2

    Add MANA to your client

    Choose the client below and paste its command or configuration. Restart the client if it was already open.

  3. 3

    Verify before working

    List the MCP servers or run the direct server check. A discovered tool list confirms the connection.

Get your token

In MANA, open Settings → AI → MCP connection and press Copy setup. Save the private token as MANA_MCP_TOKEN; the MANA address never contains the token.

Keep it in an environment variable rather than pasting it into shared config:

export MANA_MCP_TOKEN=your-token-here

Connection details

Endpointhttps://mana-api.fly.dev/mcp
TransportStreamable HTTP, stateless
AuthAuthorization: Bearer YOUR_TOKEN

Use the bearer-token form. MANA does not accept tokens in URLs, because URLs can be copied into browser history and access logs.

What stays private

  • Your connection can only access the MANA account that owns its token.
  • Tool lists and read results are intentionally limited, so the client starts with only the context it needs.
  • MANA HQ can turn individual external tools off for your connection at any time.
  • Google Calendar actions go through MANA’s existing connection and plan rules. MANA never gives an AI client your Google OAuth token.
  • Before an AI client publishes a document or sends a change to an already-linked Google Calendar, it must ask you to confirm first.
  • Infrastructure and provider administration—such as Neon, Sentry, Cloudflare, and Stripe—are not MCP tools.

Choose your client

Open one setup at a time. Every code block has a Copy button.

Claude Code
claude mcp add --transport http mana https://mana-api.fly.dev/mcp \
  --header "Authorization: Bearer $MANA_MCP_TOKEN"

Add --scope user to make MANA available in every project instead of only the current one. Confirm with claude mcp list.

Codex

Add MANA to ~/.codex/config.toml:

[mcp_servers.mana]
url = "https://mana-api.fly.dev/mcp"
bearer_token_env_var = "MANA_MCP_TOKEN"

Export MANA_MCP_TOKEN in the environment that launches the Codex app, CLI, or IDE extension, then restart that client.

Gemini CLI
gemini mcp add --transport http mana https://mana-api.fly.dev/mcp \
  --header "Authorization: Bearer $MANA_MCP_TOKEN"

Or write it into ~/.gemini/settings.json:

{
  "mcpServers": {
    "mana": {
      "httpUrl": "https://mana-api.fly.dev/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}
Cursor

Use ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:

{
  "mcpServers": {
    "mana": {
      "url": "https://mana-api.fly.dev/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}
VS Code

Add .vscode/mcp.json to the workspace:

{
  "servers": {
    "mana": {
      "type": "http",
      "url": "https://mana-api.fly.dev/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}
Claude Desktop

With Bun installed, bridge the endpoint through mcp-remote in claude_desktop_config.json:

{
  "mcpServers": {
    "mana": {
      "command": "bunx",
      "args": ["mcp-remote", "https://mana-api.fly.dev/mcp", "--header", "Authorization:${AUTH_HEADER}"],
      "env": { "AUTH_HEADER": "Bearer YOUR_TOKEN" }
    }
  }
}

The token sits in env. The header argument has no space after the colon so Windows clients do not split it incorrectly.

Another MCP client

Anything that speaks Streamable HTTP works. Point it at the endpoint, send the Authorization header, and let it discover the tool list on connect.

Check it works

Before blaming the client, ask the server directly:

curl -s https://mana-api.fly.dev/mcp \
  -H "Authorization: Bearer $MANA_MCP_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

A JSON payload listing tools means the connection is good. Unauthorized means the client did not send a current bearer token. Copy setup again or regenerate the token in MANA if you think it was exposed.

If the direct check works but the client does not, restart the client and confirm that MANA_MCP_TOKEN is visible in the environment that launched it.