Skip to content

AI access (MCP)

G Kanban runs a read-only MCP (Model Context Protocol) endpoint. Your own AI agent connects and reads your synced boards. It can never change them. No AI runs on G Kanban’s side; board contents never pass through a model we operate.

Both of these:

MCP reads your synced boards. A free or local-only account has nothing in the cloud to read, and the endpoint returns a clear “requires Pro” error rather than an empty list.

Tokens are managed in G Kanban under Settings:

  1. Go to Settings → AI access (MCP).
  2. Give the token a name so you can tell it apart later (for example, “Claude Desktop” or “Claude Code”).
  3. Click Create token.
  4. Copy the token immediately. It starts with gk_ro_ and grants read access to all your synced boards. Treat it like a password.

The dialog also gives you a ready-made configuration snippet and a claude mcp add command with your actual endpoint URL already filled in.

The examples below use placeholders (<project-ref>, gk_ro_<your-token>). The snippet and command you copy from the app have the real endpoint URL and your token already filled in, so copying from there is the easiest route.

Run the claude mcp add command in your terminal:

Terminal window
claude mcp add g-kanban "https://<project-ref>.supabase.co/functions/v1/mcp" \
--transport http --header "Authorization: Bearer gk_ro_<your-token>"

Then in a Claude Code session, run /mcp to confirm g-kanban is listed as connected.

Claude Desktop and Cursor connect using npx mcp-remote (which requires Node installed). Paste the JSON snippet below into your client’s MCP configuration file (for Claude Desktop, this is claude_desktop_config.json):

{
"mcpServers": {
"g-kanban": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://<project-ref>.supabase.co/functions/v1/mcp",
"--header",
"Authorization: Bearer gk_ro_<your-token>"
]
}
}
}

Restart your client after saving the configuration.

Once connected, your AI agent can query your boards using five read-only tools (list_boards, get_board, get_card, search_cards, and board_stats). Here are examples of what you can ask:

PromptToolWhat it returns
”What boards do I have?”list_boardsYour board titles and card/column counts
”What’s in my Backlog, and flag the critical-priority cards”get_boardColumn cards with critical priority cards singled out
”What’s stale on <board>?”board_stats + get_boardAging-WIP count, oldest card age, and per-card freshness (fresh, aging, stale)
“How many cards did I finish in the last week?”board_stats7-day throughput (throughput7d)
“Find every card that mentions ‘invoice‘“search_cardsTitle and description substring matches across boards
”Give me the full description and checklist of ‘<card title>‘“get_cardFull description, checklist items, and column history
”Which cards are overdue?”get_boardCards evaluated by the agent using the dueDate field

If something goes wrong while connecting or querying the MCP endpoint, here is what the error responses mean:

SituationResponse
Valid Pro token200, JSON-RPC result with your data
Missing / wrong / revoked tokenHTTP 401, error.code -32002 (all three look identical — by design)
Non-Pro accountHTTP 403, error.code -32003 (“requires Pro with cloud sync”)
Unknown tool nameJSON-RPC error -32602
Chatty client hitting the throttleHTTP 429, error.code -32029 (generous per-minute limit)
  • Revoking a token: In G Kanban, open Settings → AI access (MCP) and click Revoke next to any token. Revocation takes effect immediately; the next request made with that token returns HTTP 401.
  • Rotating a token: Create a new token in Settings, update your client’s configuration with the new token, and then revoke the old token.
  • Tracking usage: The Last used timestamp on each token row in Settings helps you spot tokens you no longer need.
  • Read-only (no writes yet): The MCP endpoint is strictly read-only. Your agent can read boards, columns, and cards, but it cannot create, move, edit, or delete cards or modify your board settings.
  • Card descriptions: get_board omits card descriptions on purpose to keep response payloads compact and reduce token cost for your AI client. To retrieve a card’s full description, checklist, and history, your agent calls get_card.