Docs & Guides / AI Tool Access (MCP)

AI Tool Access (MCP)

Connect Claude, Codex, Cursor or another MCP client to your campaigns with a personal access token.

FTTHelper runs an MCP server. MCP is the way AI tools such as Claude Desktop, Claude Code, Codex and Cursor connect to outside services. Connect one and it can read your campaigns, and write to them, as you.

Who can use it

AI tool access comes with Hero. The older Mythic plan, which is no longer sold, includes it too. On a Free account you cannot create a token, and an existing token stops working if the account leaves those plans.

The server is hosted, so there is nothing to install. It is not listed in any AI tool’s app directory, and there is no “sign in with FTTHelper” option. You connect by pasting a token into your tool’s settings.

Create a token

  1. Open AI tool access in Settings.
  2. Name the token after the tool you are connecting, and press Create token.
  3. Copy it straight away. It starts with ftth_mcp_ and is shown only once: we keep a hash of it, not the token, so we cannot show it again.

You can have up to 10 active tokens. Lost one? Revoke it and make another.

Connect your tool

The server address is https://www.fantasytabletophelper.com/api/mcp. Keep the www. part. Without it the address redirects, your tool drops the token on the redirect, and a good token comes back as invalid.

Claude Desktop

Open Settings, then Developer, then Edit Config. Add this to claude_desktop_config.json, with your token in place of ftth_mcp_YOUR_TOKEN, and restart Claude Desktop.

{
  "mcpServers": {
    "ftthelper": {
      "url": "https://www.fantasytabletophelper.com/api/mcp",
      "headers": { "Authorization": "Bearer ftth_mcp_YOUR_TOKEN" }
    }
  }
}

Cursor

Put the same block in .cursor/mcp.json in your project, or in ~/.cursor/mcp.json for every project, and restart Cursor.

Claude Code

Put this in .mcp.json in your project, or in ~/.claude.json. It reads the token from an environment variable called FTTHELPER_MCP_TOKEN, so the file is safe to commit. Set the variable, then restart Claude Code.

{
  "mcpServers": {
    "ftthelper": {
      "type": "http",
      "url": "https://www.fantasytabletophelper.com/api/mcp",
      "headers": { "Authorization": "Bearer ${FTTHELPER_MCP_TOKEN}" }
    }
  }
}

Codex

Add this to ~/.codex/config.toml and restart Codex.

[mcp_servers.ftthelper]
url = "https://www.fantasytabletophelper.com/api/mcp"

[mcp_servers.ftthelper.headers]
Authorization = "Bearer ftth_mcp_YOUR_TOKEN"

Then ask it something like “list my campaigns, then find every religion in one of them”. Treat the token like a password: never commit a file that has it written in.

What it can read

Exactly what you can see in the app, because it reads your data as you. Party notes, yes. Notes shared with the DM, only if you are the DM or wrote them. Private notes, only your own. Codex entries waiting for review, only if you are the DM.

ToolWhat it returns
list_campaignsYour campaigns, and whether you are the DM or a player in each.
get_campaignOne campaign’s details.
list_sessionsA campaign’s sessions, most recent first.
search_codexSearch a campaign’s codex: NPCs, places, items, lore, religions, cultures and groups.
get_subjectOne codex entry in full, with its links to other entries.
get_session_notesThe notes from one session that you are allowed to read.
get_session_recapA session’s recap, plus the story hooks if you are the DM.
list_session_eventsThe roll and combat log for one session.
get_session_transcriptThe latest finished transcript of a session. DM only, and never the audio.

What it can write

Everything it writes is recorded as written by you. Nothing it does becomes part of the campaign’s canon until the DM approves it in the app.

ToolWhat it does
append_session_noteAdd a note to a session. The tool has to say who can read it.
submit_session_recapSave a recap. The whole campaign can read it.
propose_subjectPropose a new codex entry. Players cannot see it until the DM approves it.
propose_relationshipPropose a link between two existing entries, for the DM to confirm.
append_session_eventAdd a roll, hit, heal or similar event to the session log.

Revoking a token

Press Revoke next to it on AI tool access. It stops working on the tool’s next request. Revoke any token you have pasted somewhere you no longer control.

Limits and errors

Each token can make about 60 requests a minute.

ErrorWhat it usually means
401The token is wrong or revoked, or the address is missing its www. Check the address first.
403The account is not on a plan that includes AI tool access.
404The server is switched off for now.
405Your tool sent a GET. This server only accepts POST.
429Too many requests. Wait for the time in the Retry-After header.
503We could not open a session for your account. Try again.

An empty list is usually a real answer: no campaigns yet, or nothing matched. For anything else, email info@r21digital.com.

Create a token