About Tavern
Tavern is a hosted MCP server that gives tabletop RPG groups a shared space for campaign records and play management. It connects an AI client to campaign journals, wiki pages, maps, character sheets, private notes, and combat tracking, with access based on each participant's role.
Key features
- 01Manage dated sessions and shared notes
- 02Maintain linked campaign wiki pages
- 03Add shared or private map pins
- 04Track character stats and spell slots
- 05Set up and run combat encounters
- 06Keep private player notes
Use cases
- 01Recap a session from the group's notes
- 02Link a new NPC page to session records
- 03Update character health during play
- 04Track turns and participants in a battle
MCP support
The hosted server at `https://gettavern.app/mcp` exposes campaign and gameplay tools to MCP clients over Streamable HTTP. Clients authenticate with OAuth 2.1 and PKCE or a personal API key, with available tools determined by granted scopes.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://gettavern.app/mcpclaude mcp add --transport http jakehandy-tavern https://gettavern.app/mcp{"mcpServers":{"jakehandy-tavern":{"type":"http","url":"https://gettavern.app/mcp"}}}Open in Cursor{"servers":{"jakehandy-tavern":{"type":"http","url":"https://gettavern.app/mcp"}}}Open in VS Code{"mcpServers":{"jakehandy-tavern":{"type":"http","url":"https://gettavern.app/mcp"}}}{"mcpServers":{"jakehandy-tavern":{"serverUrl":"https://gettavern.app/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project README
Tavern MCP server
Your tabletop RPG campaigns, as tools. Tavern keeps a TTRPG group's campaign in one place: dated sessions with everybody's notes, a wiki of the people, places and things in them, maps with pins, character sheets with live hit points and spell slots, a combat tracker, and each player's private notes. This server lets Claude, Cursor, VS Code or any MCP client work on all of it, acting as you at the tables you already sit at.
This repository holds the listing only: this README, the registry entry, the Gemini CLI extension manifest and the icon. The server is hosted by Tavern, so there is nothing to install or run.
| Server address | https://gettavern.app/mcp |
| Transport | Streamable HTTP (remote, stateless) |
| Sign-in | OAuth 2.1 with PKCE, or a personal API key |
| Registry name | io.github.jakehandy/tavern |
| Docs | gettavern.app/developers |
What you can ask it
- "Recap Thursday's session from everybody's notes."
- "Start a wiki page for the ferryman at Hollowmere and link him in tonight's notes."
- "Ilsa takes 9 and she's prone."
- "Which threads from the last three sessions have we dropped?"
- "Set up a fight: the party against the three toll-bridge bandits."
- "What has my character got left?"
You need a free Tavern account and a campaign. Sign up at gettavern.app/signin.
Connect it
Claude
In Settings, under Connectors, add a custom connector and paste https://gettavern.app/mcp. Claude opens a Tavern page asking you to approve it.
Claude Code
claude mcp add --transport http tavern https://gettavern.app/mcp
Then run /mcp inside a session to sign in.
Cursor
Add it to ~/.cursor/mcp.json. Cursor asks you to sign in the first time it connects.
{
"mcpServers": {
"tavern": {
"url": "https://gettavern.app/mcp"
}
}
}
VS Code
Add it to .vscode/mcp.json in a workspace, or to your user settings.
{
"servers": {
"tavern": {
"type": "http",
"url": "https://gettavern.app/mcp"
}
}
}
Gemini CLI
This repository is a Gemini CLI extension. Install it, then run /mcp auth tavern inside Gemini CLI to sign in.
gemini extensions install https://github.com/jakehandy/tavern-mcp
Anything else
Any client that speaks Streamable HTTP finds the sign-in on its own. A client that only takes a header can send a personal API key instead (make one in Tavern under Settings, API and assistants):
{
"url": "https://gettavern.app/mcp",
"headers": { "Authorization": "Bearer tvn_your_key" }
}
Signing in
The first time a client connects, the server answers 401 with a pointer to its sign-in, and the client opens Tavern's own consent page. You sign in there, see what the app is asking for, and may grant less than it asked.
- OAuth 2.1 for public clients: PKCE (S256), no client secret. A client registers itself, either through dynamic client registration (RFC 7591) or by being its own Client ID Metadata Document. Access tokens last an hour; refresh tokens rotate on every use.
- Scopes stack:
read, thenwrite, thendelete. A client only sees the tools its scopes allow. - Metadata:
/.well-known/oauth-protected-resource/mcpand/.well-known/oauth-authorization-server. The full story is at gettavern.app/auth.md. - Revoking: every key and connected app is listed under Settings, API and assistants, with when it was last used, and goes the moment you remove it.
A connected app is you and no more. It reaches the tables you sit at with the seat you hold at each, so a player's connection can't do the GM's job, and nobody's private notes are served to anyone but their author.
Tools
117 tools in fourteen groups as of November 2026. The server is the source of truth: your client lists exactly the tools your sign-in allows, and gettavern.app/developers always shows the current catalog with every argument. Every tool carries a title and read-only or destructive hints.
Campaigns are named by slug, sessions by their play date (YYYY-MM-DD), and wiki pages and characters by slug. Start with list_campaigns.
To load fewer tools, add ?toolsets= to the address with any of the group keys (account, campaigns, sessions, wiki, notes, messages, map, characters, builder, combat, lorekeeper, memorial, dice, updates) or the preset core. For example https://gettavern.app/mcp?toolsets=core,characters.
You
Who the credential is, your public profile, your invitations and feedback.
| Tool | What it does | Scope |
|---|---|---|
whoami | Who am I | read |
list_campaigns | List my campaigns | read |
respond_to_invitation | Answer an invitation | write |
get_profile_settings | Get my profile settings | read |
update_profile_settings | Change my profile settings | write |
get_subscription | Get my subscription | read |
get_public_profile | Read a public profile | read |
send_feedback | Send feedback | write |
list_my_feedback | List my feedback | read |
Campaigns and seats
Make a table, fill its seats, change its look, leave one.
| Tool | What it does | Scope |
|---|---|---|
create_campaign | Create a campaign | write |
get_campaign | Get a campaign | read |
update_campaign_look | Change a campaign's look and letters (GM only) | write |
list_seats | List the seats | read |
add_seat | Add a seat (owner only) | write |
remove_seat | Remove a seat (owner only) | delete |
get_my_seat | Get my seat | read |
update_my_seat | Change my seat | write |
leave_campaign | Leave a campaign | delete |
Session journal
Play dates and the notes everybody writes on them.
| Tool | What it does | Scope |
|---|---|---|
list_sessions | List sessions | read |
get_session | Read a session | read |
create_session | Log a session (GM only) | write |
update_session | Rename or move a session (GM only) | write |
add_session_note | Add a note to a session | write |
update_session_note | Edit a session note | write |
delete_session_note | Delete a session note | delete |
Campaign wiki
Pages for every person, place and thing, their history, and search across the lot.
| Tool | What it does | Scope |
|---|---|---|
list_wiki_pages | List wiki pages | read |
get_wiki_page | Read a wiki page | read |
get_wiki_page_history | Read a page's history | read |
create_wiki_page | Create a wiki page | write |
update_wiki_page | Edit a wiki page | write |
delete_wiki_page | Delete a wiki page (GM only) | delete |
link_wiki_page_to_seat | Mark a page as somebody's character | write |
search_campaign | Search a campaign | read |
My Notes
Your own sealed notes, and everything you have written at a table.
| Tool | What it does | Scope |
|---|---|---|
list_my_notes | List my private notes | read |
create_my_note | Write a private note | write |
update_my_note | Edit a private note | write |
delete_my_note | Delete a private note | delete |
get_my_note_history | Read a private note's history | read |
list_everything_i_wrote | Everything I wrote here | read |
Messages
Direct conversations between the people at one table, and the GM's thread to all of them.
| Tool | What it does | Scope |
|---|---|---|
list_conversations | List my conversations | read |
start_conversation | Start a conversation | write |
read_conversation | Read a conversation | read |
send_message | Send a message | write |
mark_conversation_read | Mark a conversation read | write |
delete_message | Delete a message | delete |
Map
The table's maps and the pins on them, shared and private.
| Tool | What it does | Scope |
|---|---|---|
list_maps | List maps | read |
list_pins | List a map's pins | read |
list_my_private_pins | List my private pins | read |
create_pin | Drop a pin | write |
update_pin | Move or edit a pin | write |
delete_pin | Delete a pin | delete |
update_map | Rename or reorder a map (GM only) | write |
delete_map | Take a map down (GM only) | delete |
Characters
Sheets, hit points, conditions, spell slots, items, homebrew and companions.
| Tool | What it does | Scope |
|---|---|---|
list_characters | List characters | read |
get_character | Read a character | read |
get_party | The party at a glance (GM only) | read |
update_character_state | Change hit points, conditions or slots | write |
set_character_overlay | Replace what has been spent | write |
add_character_from_beyond | Import a character from a character-sheet link | write |
sync_character | Sync an imported character | write |
set_character_on_hud | Show or hide a character on the Master HUD (GM only) | write |
play_character | Make a character my primary (holder only) | write |
mark_character_fallen | Mark a character as fallen | write |
revive_character | Bring a character back | write |
delete_character | Delete a character | delete |
assign_character | Hand a character to a seat (GM only) | write |
set_character_portrait | Set a character's portrait | write |
add_custom_item | Add a custom item | write |
update_custom_item | Edit a custom item | write |
delete_custom_item | Delete a custom item | delete |
add_homebrew_box | Add a homebrew card | write |
update_homebrew_box | Edit a homebrew card | write |
delete_homebrew_box | Delete a homebrew card | delete |
add_companion | Add a companion | write |
update_companion | Edit a companion | write |
set_companion_state | Change a companion's hit points | write |
delete_companion | Delete a companion | delete |
Character builder
Make a character from scratch, or design the sheet itself.
| Tool | What it does | Scope |
|---|---|---|
create_custom_character | Make a character here | write |
update_custom_sheet | Edit a character made here | write |
list_character_drafts | List my half-made characters | read |
start_character_draft | Start a character draft | write |
get_character_draft | Read a character draft | read |
update_character_draft | Save a character draft | write |
finish_character_draft | Finish a character draft | write |
delete_character_draft | Throw a draft away | delete |
list_sheet_frames | List the table's sheet designs | read |
save_sheet_frame | Keep a sheet design at the table | write |
delete_sheet_frame | Take a sheet design off the table | delete |
Combat Tracker
Run a battle: the roster, initiative, turns, health and the summary.
| Tool | What it does | Scope |
|---|---|---|
get_combat_roster | Who can join a battle (GM only) | read |
list_battles | List battles (GM only) | read |
create_battle | Set up a battle (GM only) | write |
get_battle | Read a battle (GM only) | read |
update_battle | Rename a battle or set the turn (GM only) | write |
add_participant | Put somebody in a battle (GM only) | write |
update_participant | Change somebody in a battle (GM only) | write |
change_participant_health | Damage or heal somebody in a battle (GM only) | write |
remove_participant | Take somebody out of a battle (GM only) | delete |
start_battle | Start a battle (GM only) | write |
next_turn | Next turn (GM only) | write |
end_battle | End a battle (GM only) | write |
delete_battle | Delete a battle (GM only) | delete |
Lorekeeper
Hand a session's notes to Lorekeeper and watch the write-up land.
| Tool | What it does | Scope |
|---|---|---|
list_lorekeeper_jobs | Lorekeeper's queue (GM only) | read |
queue_session_for_lorekeeper | Hand session notes to Lorekeeper (GM only) | write |
cancel_lorekeeper_job | Take notes back from Lorekeeper (GM only) | delete |
Memorial Pages
Close the book on a campaign and read its memorial.
| Tool | What it does | Scope |
|---|---|---|
get_memorial | Read a campaign's memorial | read |
complete_campaign | Complete a campaign (GM only) | write |
reopen_campaign | Reopen a campaign (GM only) | write |
set_memorial_public | Share or hide the memorial (GM only) | write |
Dice
Roll any dice on the server, and choose how your dice look in the app.
| Tool | What it does | Scope |
|---|---|---|
roll_dice | Roll dice | read |
get_dice_style | My dice style | read |
set_dice_style | Change my dice style | write |
Notifications and progress
What's new at your tables, and how far you've come.
| Tool | What it does | Scope |
|---|---|---|
list_notifications | List my notifications | read |
count_unread_notifications | Count unread notifications | read |
mark_notifications_read | Mark notifications read | write |
delete_notification | Clear a notification | delete |
get_my_progress | My Tavern Level and achievements | read |
list_achievements | Every achievement | read |
Also available as a REST API
The same catalog is a REST API at https://gettavern.app/api/v1, described at /openapi.json and in prose at /api-docs.md.
curl https://gettavern.app/api/v1/campaigns -H "Authorization: Bearer tvn_your_key"
Links
- Developers: gettavern.app/developers
- Privacy Policy: gettavern.app/privacy
- Terms of Service: gettavern.app/terms
- Support: [email protected]
License
The files in this repository are MIT licensed (see LICENSE). The Tavern name and mark are not covered by it. The Tavern service itself is governed by its Terms of Service.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.