The short answer: add https://api.herald.ink/mcp as a custom connector in your AI app, sign in to Herald.ink when it asks, and your assistant can read your campaigns and write into them. NPCs, places, quests, the lot.
I don’t mind sharing the desk. If you already spend your evenings planning a campaign in Claude, ChatGPT or Gemini, the trouble is that the conversation forgets your world the moment you close it, and whatever good came out of it has to be copied somewhere by hand. Connected, the assistant looks things up in your campaign before answering, and files what it writes as proper entries, with the stat blocks and links that go with them.
Before you start
You need a Herald.ink account with at least one campaign you own, edit or view. The assistant acts as you, with the role you have in each campaign: a viewer’s assistant can read but not write, and campaigns where you are a player don’t show up at all.
The address is the same for every app:
https://api.herald.ink/mcp
There is no key to copy. The first time the app connects, it opens the usual Herald.ink sign-in page, and from then on it works as your account. You’ll also find the address, with a copy button, under Settings → AI assistants in the app.
Claude (web and desktop)
- Open Settings, then Connectors.
- Choose Add custom connector, name it Herald.ink, and paste the address.
- Click Connect and sign in to Herald.ink.
At the time of writing, custom connectors depend on your Claude plan; if the option is missing, that is why. Once connected, turn the connector on for a conversation from the tools menu under the message box.
ChatGPT
At the time of writing, ChatGPT adds custom MCP connectors through Settings → Apps & Connectors, with developer mode switched on under Advanced settings. Create a connector with the address above, choose OAuth for authentication, and sign in to Herald.ink when prompted. OpenAI moves these menus around often, so if the names differ, look for “custom connector” or “MCP”.
Gemini
In the Gemini web app (gemini.google.com), open Settings, then Connected Apps, and under Custom apps choose Add a custom app. Paste the address, click Next, and sign in to Herald.ink in the window that opens. Once connected, the app works on your phone too.
At the time of writing, Google limits custom apps to personal Google accounts (not work or school) in the US, in English, with Keep Activity turned on. Gemini Enterprise has its own custom MCP connection for business accounts, set up by the workspace admin with the same address.
Gemini CLI
Add Herald.ink to ~/.gemini/settings.json:
{
"mcpServers": {
"herald-ink": {
"httpUrl": "https://api.herald.ink/mcp"
}
}
}
Start Gemini CLI and it opens the Herald.ink sign-in in your browser the first time a tool is used. Like Claude Code, it can attach images from files on your computer.
Claude Code
In a terminal:
claude mcp add --transport http herald-ink https://api.herald.ink/mcp
Then start Claude Code, type /mcp, pick herald-ink and sign in. Claude Code can also attach portraits and maps from files on your computer, which the chat apps can’t do.
What the assistant can do
- Read: list your campaigns, search and open any entity (NPCs, monsters, locations, factions, encounters, lore, items, quests, characters, parties, sessions), and follow the links between them.
- Write the way I do: before drafting a new entry, it fetches the same writing guide my own generator uses, with your campaign’s tone, themes, house rules, ruleset and language. Then it saves the entry, and my checks review it like any other.
- Edit and delete: change fields on existing entries, or remove them. A good assistant asks before deleting; if yours doesn’t, tell it to.
- Images: set a portrait, emblem or map from a file, in apps that can read files (Claude Code, Gemini CLI, agents).
Writing through an assistant uses none of your Herald.ink generations: the assistant does the writing, on its own bill. It can’t start my image generation or map painting; those stay in the app.
Prompts to try
Copy these into a conversation with the connector on. Swap in your own names.
| Ask | What happens |
|---|---|
| ”In my Brinewatch campaign, who knows about the smuggling ring?” | Searches the NPCs and lore, follows the links, answers from your entries |
| ”Write an innkeeper for the Gutted Gull who owes money to the Tidewardens.” | Fetches the NPC guide, drafts in your tone, links the inn and the faction |
| ”Give me three rumors the party could hear in the Drowned Lantern, and save the best as a lore entry.” | Brainstorms in chat, files only the one you pick |
| ”Turn tonight’s session notes into a quest, with the cultists as the opposition.” | Reads the notes you paste, drafts the quest, links the existing faction |
| ”Make the harbormaster older and give her a secret about the lighthouse.” | Edits the existing NPC instead of making a new one |
| ”Which locations have no NPCs in them yet?” | Lists and cross-checks, a quick prep audit |
| ”Set this image as the Gilded Hand’s emblem.” (Claude Code or Gemini CLI) | Uploads the file you point to as the faction’s emblem |
When something goes wrong
- “Not a member” or nothing found: the campaign isn’t yours, or you’re a player in it. Check the account you signed in with.
- “Requires at least Editor role”: you’re a viewer in that campaign; the owner can change your role in the campaign’s Members settings.
- The module is locked: some modules depend on the campaign owner’s plan, and the assistant sees the same locks you do.
- The app keeps asking to sign in: remove the connector and add it again.
Why it works this way
The assistant borrows my pen rather than replacing it. Everything it writes lands in the same records the app keeps, checked by the same rules, visible to your players only once you reveal it. The sample campaign shows what those records look like when they’re full.