
You, mid-session
The party is heading to the docks tonight. Give me a smuggler NPC with a grudge and add her to my campaign.
Done. Meet Vess Kariel. She runs contraband out of the Saltway docks and has not forgotten what the harbourmaster took from her. She is in your World Codex, portrait included.

Vess Kariel
Smuggler · Saltway Docks
You ask
Three steps, and none of them is an API key. Claude discovers the server and registers itself over OAuth 2.1, so connecting is a paste, a login and a consent screen.
In claude.ai, open Settings, Connectors, Add custom connector and paste the address below.
https://api.char-gen.com/mcpLog in with your CharGen account. The consent screen asks for each scope separately, and your choice is enforced on the server.
Claude now has your campaigns. Tokens refresh themselves for 90 days, and you can disconnect at any time from claude.ai settings.
no api keys · no config files · nothing to host
Custom connectors need a paid claude.ai plan (Pro, Max, Team or Enterprise). That part is Anthropic's. On the CharGen side, reading works on any account, free tier included.
You ask
Quite a lot, it turns out. These are the real tool names your assistant sees across your D&D campaigns, grouped by the scope that unlocks them.
31 tools20 read9 write2 generate
read · Free on any account
Everything you have built, readable in conversation. Campaigns, the World Codex, quest logs, timelines, transcripts, recaps, parties and your whole gallery.
List your campaigns
chargen_list_campaignsOpen a campaign
chargen_get_campaignBrowse the World Codex
chargen_list_entitiesRead any entity
chargen_get_entityCheck the quest log
chargen_get_questRead the campaign tracker
chargen_get_trackerWalk the living timeline
chargen_get_timelineMap who knows whom
chargen_get_relationship_graphSearch a whole campaign
chargen_search_campaignList recorded sessions
chargen_list_sessionsPull a transcript
chargen_get_transcriptRead a session recap
chargen_get_session_recapList your parties
chargen_list_partiesOpen a party roster
chargen_get_partyBrowse generation history
chargen_list_generationsInspect a generation
chargen_get_generationCheck a running job
chargen_get_jobSearch the gallery
chargen_search_galleryCheck the account
chargen_whoamiQuote gold prices
chargen_get_pricingwrite · Any paid tier
Change things, not just read them. Add and edit Codex entities, keep the quest log honest, move story threads, and clean up transcripts in one sentence.
chargen_create_entitychargen_update_entitychargen_update_questchargen_update_threadchargen_create_hookchargen_link_generationchargen_update_recapchargen_find_replacechargen_rename_speakergenerate · Entities free, images in gold
The generators themselves, callable mid-conversation. Nineteen entity types with the same auto portrait the web app gives, and every image model at normal gold rates.
chargen_generate_entityAll nineteen generator types from a sentence, with the same auto portrait the web app gives. Entity generation is free.



chargen_generate_imageAny of the image models, priced in gold exactly like the app. Claude can quote the cost first with chargen_get_pricing.
You ask
Recap what happened in our last session.
chargen_get_session_recap
Session 14, from your recording: the heist went sideways at the second bell. Kestrel took the fall for the party at the lighthouse, and the cursed lantern is now in Bram's pack, which nobody has told the cleric about.
What do we know about House Veyra so far?
chargen_search_campaign
Twelve mentions across your Codex. They bankroll the harbourmaster, they lost an heir at Dreadmarsh, and your notes flag their steward as “too helpful”. Want the relationship graph around them?
Update the quest log: they finished the lighthouse job and took the cursed lantern.
chargen_update_quest
Done. The Lighthouse Job is marked complete and the cursed lantern is recorded under party loot, flagged as cursed.
Rename Speaker 3 to Kestrel in the whole transcript.
chargen_rename_speaker
Renamed in 214 lines. The transcript finally reads like your table.
Look at my timeline and open threads, and suggest three scenes for next session.
chargen_get_timelinechargen_get_tracker
Grounded in what actually happened: the steward calls in the party's debt at the worst moment, the lantern whispers to Bram on watch, and House Veyra posts a reward for a “stolen heirloom” that sounds a lot like it.
Generate a portrait of the tavern keeper in the Dark Fantasy style.
chargen_get_pricingchargen_generate_image
Quoted the gold first, then rendered it with the same models the app uses. Meet Barnaby, keeper of the Hearthlight:

Barnaby
Tavern keeper · The Hearthlight
You ask
Model Context ProtocolStreamable HTTPOAuth 2.1Open standard
MCP, the Model Context Protocol, is an open standard: one connector URL, any client that supports it. CharGen implements remote MCP over Streamable HTTP with OAuth 2.1 discovery and dynamic client registration, so clients find the server and register themselves.
Desktop and web clients, with the one-click OAuth connector flow above. Verified end to end.
Add the server URL to .cursor/mcp.json and sign in when prompted.
Connect through the MCP settings using the hosted server URL.
Available as a ChatGPT app with OAuth-backed campaign access.
You ask
CharGen · consent
Claude wants to access your account
mcp:read
Campaigns, Codex, sessions, gallery
mcp:write
Edit entities, quests and recaps
mcp:generate
New entities and images
Each scope is a separate grant. Untick generate and nothing can ever spend gold.
01
The current industry standard and the protocol family the MCP spec mandates. Claude discovers the server and registers itself; there are no shared secrets to leak.
02
A read-only connection cannot change or spend anything. That guarantee lives on the server, not in the interface.
03
Access tokens expire after an hour. Refresh tokens rotate and last 90 days. Disconnect at any time from claude.ai settings.
04
Paid-tier gating and gold charges are enforced exactly as in the web app. The MCP surface cannot bypass pricing, and Claude sees only what your account sees.
You ask
Then skip the connector screen. The same endpoint takes three kinds of credentials.
claude.ai / Claude Desktop
The flow above: paste the URL as a custom connector, log in, choose scopes. No keys ever touch your clipboard.
Back to the three stepsClaude Code / scripts
Mint a pat_ token in CharGen settings and send it as a Bearer token.
claude mcp add chargen \ --transport http \ https://api.char-gen.com/mcp \ --header \ "Authorization: Bearer pat_..."
Partners / B2B
Existing live_ and test_ keys work on the MCP surface with wallet billing, no changes needed.
You ask
No. Reads are free on every CharGen account, including the free tier.
Writes (editing entities, quests, threads and recaps) need any paid tier: Plus, Elite or Ultimate. Entity generation is free. Image generation costs gold at the same rates as the app.
Only through chargen_generate_image, only if you granted the generate scope, and it can quote the price first with chargen_get_pricing. A read-only connection cannot spend anything, and the server enforces that.
Custom connectors are a feature of paid claude.ai plans (Pro, Max, Team and Enterprise). That requirement is on Anthropic's side. On the CharGen side, reading works on any account.
Yes. MCP is an open standard, and the server implements it the standard way. Claude (web, desktop and Claude Code) is verified end to end. Cursor and Windsurf connect with the same server URL through their MCP settings, ChatGPT connects as a ChatGPT app with OAuth, and any other client that supports remote MCP servers with OAuth can use the same URL.
No. The connector sees exactly what your account sees. Your D&D campaigns stay private.
Remove the connector in your claude.ai settings. Tokens also expire on their own: access tokens after an hour, refresh tokens after 90 days.
Yes. Mint a Personal Access Token in your CharGen settings and use it as a Bearer token against https://api.char-gen.com/mcp.
Add the connector, choose what Claude may touch, and start asking your world questions.
https://api.char-gen.com/mcpReads are free on any CharGen account. Custom connectors need a paid claude.ai plan.