Fantasy Tabletop Helper

io.github.kushaimPublished by GitHub account kushaimv1.0.0Updated Oct 25, 2026

Read-only access to your tabletop campaigns: codex, sessions, and session notes.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowKnowledge & Memory

Overview

AI-generated overview

Remote MCP server that gives an assistant read and limited write access to your Fantasy Tabletop Helper campaigns, codex, sessions and notes.

What you can do
List and read your campaigns, roles and campaign details, and browse sessions most recent first with their notes, recaps and readable events and transcripts (transcripts DM only). Search the codex for NPCs, locations, items, lore, religions, cultures and groups, and open one entry with its relationships. Add session notes with a required visibility, save recaps you wrote, and append typed session events such as rolls, hits or heals. Propose new codex entries and propose links between existing entries for the DM to review.
When to use it
Useful when you run or play in a Fantasy Tabletop Helper campaign and want an AI client to answer questions about your own world, look up NPCs and lore, or draft notes, recaps and codex proposals without leaving the chat.
Requirements
A remote endpoint at fantasytabletophelper.com (keep the www. prefix, otherwise the token is stripped on redirect). A Hero plan and a personal access token created under Account > AI Tool Access, sent in the Authorization header with the Bearer prefix. No local install; the server is POST-only stateless Streamable HTTP.
Before you install
The Authorization token is a secret shown only once; revoke it if lost or exposed. Writes are limited but real: notes, recaps, events and codex or relationship proposals are saved, though nothing becomes campaign canon until a DM reviews it. Access is scoped to your own account by row-level security, so DM-only and private notes stay hidden. Soft rate limit of about 60 requests per minute per token.

Installation

In SourceWeft

  1. Open Fantasy Tabletop Helper in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.kushaim%2Fftthelper-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "fantasy-tabletop-helper": {
      "type": "http",
      "url": "https://www.fantasytabletophelper.com/api/mcp"
    }
  }
}

README

Fantasy Tabletop Helper — MCP server

Connect Claude Desktop, Cursor, Codex, or any MCP-capable client to your tabletop campaigns, and ask questions about your own world in plain language.

"Which NPCs in Westruun belong to a religion, and which of them have my party already met?"

This repository holds the connection docs and example client configs. The server itself is hosted — it runs inside fantasytabletophelper.com, so there is nothing to install, clone, or keep running.

  • Endpoint: https://www.fantasytabletophelper.com/api/mcp — keep the www., see below
  • Transport: stateless Streamable HTTP, POST only
  • Access: Hero plan + PAT (ftth_mcp_…). Reads plus controlled writes (proposals / notes / events you authored). Not OAuth — that is a separate issue.
  • Source: closed. The app is a commercial product; this repo is the client-side half.

Scoped to you (reads + controlled writes)

The server queries the database as you, not as an administrator. Row-level security decides the answer, so it can only ever show what the website would show you when logged in.

Writes exist, and they are bounded: notes and events you authored, recaps you submit, and proposals for the DM to review. Nothing an AI tool does through this connection becomes campaign canon until a DM reviews it in the app.

Who sees it
Party notesCampaign members
DM-only notesThe DM of that campaign, or whoever wrote them
Private notesOnly their author
Codex entriesMembers of that campaign; non-canon entries only for the DM

If you are a player, pointing an AI client at your campaign cannot surface your DM's secrets. That is enforced in the database, not in application code.

Tools

ToolReturns
list_campaignsYour campaigns, and your role in each
get_campaignOne campaign's details
list_sessionsSessions, most recently played first
search_codexNPCs, locations, items, lore, religions, cultures, groups
get_subjectOne codex entry in full, with its relationships
get_session_notesNotes from a single session
get_session_recapSession recap — plus DM prep hooks if you are the DM
append_session_noteAdd a note (visibility required)
submit_session_recapSave a recap you wrote
propose_subjectPropose a codex entry for the DM to review
propose_relationshipPropose a link between two existing entries
list_session_eventsRolls and combat events you may read
append_session_eventAppend one typed event (roll / hit / heal…)
get_session_transcriptLatest ready transcript — DM only, never the audio

Factions and guilds are stored as kind: "group" — there is no separate faction kind.


Setup

1. Create a token

On the site, go to Account → AI Tool Access (/account/mcp), name the token after the tool you are connecting, and press Create token.

The token appears once, beginning ftth_mcp_. Copy it then. Only a hash is stored, so it cannot be shown again. If you lose one, revoke it and make another.

2. Configure your client

Ready-to-edit files are in examples/. Claude Desktop, for instance:

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

Restart the client. ftthelper should appear in its tool list.

Keep the www.

It is not cosmetic. The bare domain redirects to www, and HTTP clients drop the Authorization header whenever a redirect changes origin — sensibly, since they cannot know the new host deserves your credentials. Point a client at https://fantasytabletophelper.com/api/mcp and the token is stripped in transit, so the server sees an anonymous request and answers 401 Invalid or missing MCP token for a perfectly good token.

3. Ask it something

"List my campaigns, then find every religion in the Westruun one."


Revoking a token

Press Revoke next to it on Account → AI Tool Access. It takes effect on that client's next request. Revoke any token you have pasted somewhere you no longer control.

Troubleshooting

SymptomCause
404Wrong path, or the server is switched off on this deployment.
401 on a token you just madeAlmost always the URL: the bare domain instead of www., which strips the token. Check that before suspecting the token.
401Token is wrong, revoked, or expired. Make a new one.
503We could not open a session for your account. Usually transient; retry.
403Your plan is not Hero.
429Soft rate limit (~60 requests/min per token). Wait for Retry-After.
405 on a GETExpected. The server is POST-only; your client should be using POST.
Connects, but every tool call returns an errorA server-side configuration problem. Contact support — the server logs these.
A tool returns an empty listUsually genuine: you have no campaigns yet, or the search matched nothing.

The last two rows are worth keeping apart. An empty list is an answer; an error is a fault.

Licence

Docs and example configs: MIT. The hosted service has its own terms.

Source: README.md at commit 801b66c

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts