mcpbeat Sign in

Plot Speaks MCP Server

by plotspeaks Your server? Claim it
answering

Plot Speaks is answering right now. Last checked 8 min ago. It exposes 25 tools.

Voice mysteries, history battles and trivia with your assistant as host. Sign in to keep progress.

Uptime history 12 days of history · worst day 99%
12 days agonow
100.0%
Uptime 24h
182 of 182 checks
25
Tools
read from the server
474 ms
Response time
average over 24h
OAuth sign-in
Access
streamable-http

What changed 21

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 2 November 2026. No other catalogue keeps this.

2 Nov 11 tool descriptions were rewritten claim_plays, game_board, get_cue and 8 more
2 Nov 10 tools changed the parameters they ask for claim_plays, game_board, get_cue and 7 more

Nothing serious here today

Today is the operative word: we check Plot Speaks every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 8 min ago.

run in your terminal
claude mcp add plot-speaks --transport http https://account.plotspeaks.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://account.plotspeaks.com/mcp
~/.codex/config.toml
[mcp_servers.plot-speaks]
url = "https://account.plotspeaks.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "plot-speaks": {
      "url": "https://account.plotspeaks.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "plot-speaks": {
      "type": "http",
      "url": "https://account.plotspeaks.com/mcp"
    }
  }
}

This endpoint answered with an authorization challenge. The server is running, and it signs you in through your browser: there is no API key to paste.

This server publishes 1 more address. The block above uses the one we reach during checks; the full list is under Endpoints below, and the author may intend a particular one for your client.

Available tools 25

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

game
game_answer
Checks a player's answer to the open trivia clue, scores it and returns the ruling with the answer, or the next step of a stepped clue. In a survey game it checks an answer against the hidden board; in a letter game it takes a called letter or a solve attempt, in the player's own words; in a timeline game it takes where the open card goes (before X, between X and Y, at the end), in the player's own words; in Worms! it takes the face to keep ("the fours", "worms"), "roll again" or "stop", and "take" or "steal"; in Yacht it takes the dice to keep ("the threes", "keep 3 3 5", "keep all", "none", "reroll the one") or "score it", then the box ("full house", "fours", "chance") and a yes or no to "Take a zero?"; in Pigs! it takes "yes" (throw again) or "no" (bank).
game_board
Returns the current state of a Plot Speaks game in play, as text, without changing it. For trivia: the scores and the categories and values still on the board. For a survey or letter game: the scores, the open question or puzzle and what is revealed so far. For a timeline game: the line so far, lives and the open card. For Worms!: the tiles, stacks and open roll. Reads only; nothing is recorded. A play id that does not belong to that game returns an error, and a story that is not a game returns an error saying so.
game_challenge
Challenges the last trivia ruling: three different AI models judge the player's answer against the clue, and the ruling flips only if at least two agree it should count. Once per clue. In a timeline game it re-checks the last placement against the years and says what was heard.
game_question
Opens one clue on a Plot Speaks trivia board and returns its text (not the answer). Category "final" opens the final once the board is clear. In a survey or letter game it deals the next question or puzzle: pass category "next" ("skip" gives the open one up; "no steal" closes a survey question after three strikes). In a timeline game it starts a round: pass the deck's name, then " for " and the players' names (the reply deals the first card); "next" repeats the open card. In Worms!, Yacht (and Pigs!) it sets up the game: pass "rules" for the how-to-play beats, or "players", the names and "and Wormbot" (Skipper in Yacht, Hambot in Pigs!) or "no CPU" ("play again" after a game).
world
world_recall
Returns a Plot Speaks campaign's state (day, place, party with hit points, spell slots and gear, people met, quests, the story so far) by play id, or by the three-word resume code the players were given.
world_update
Applies changes to a Plot Speaks campaign's saved world: new characters, damage and healing, spells cast, items, gold, rests, location, day, people met (the dead stay dead), quests, fight turn order (initiative) and a one-line story note. Send only what changed; fields left out are untouched. Returns a RECORDED list, a REFUSED list giving the reason for each change the campaign's rules do not allow, and the updated state. Saves to the campaign play (no personal data). An unknown slug, a non-campaign story or an unknown play id returns an error.
accusation
check_accusation
Checks a formal accusation in a Plot Speaks mystery. Returns the verdict line for the accused person, starting Correct. or Innocent., and the name it matched. Records the accusation and verdict anonymously.
choose
choose
Moves a Plot Speaks choose-your-path story on by the player's choice and returns what happens next: the scene to narrate and the choices that follow, or the ending. With no choice it returns where the play is now and the path so far (for resuming). With go_back it returns to the last choice so the player can choose again.
claim
claim_plays
Attaches plays made earlier without an account to the signed-in player's Plot Speaks account, so they appear in their history (with how each ended) and in the "not played yet" filter, and marks the trivia clues already heard in those games. Returns a sentence naming the titles added and how many could not be added (id not found, or already on another account). Without a signed-in account it returns an error saying so. Changes the account's history; plays on another account are left alone.
cue
get_cue
Returns one scene cue from a Plot Speaks mystery or adventure script, as text: a READ ALOUD part (the scene as spoken narration) and, where the cue has them, NARRATOR NOTES that are not meant to be read aloud because they would spoil the scene; cue S1 also lists the follow-up cues to listen for. With a play id it records the scene reached as an anonymous play event, which the play's watch page shows as a timeline. An unknown slug returns an error naming the available stories; a cue id the story lacks returns an error saying so (or that the story has no cues).
history
my_history
Returns what a signed-in Plot Speaks player has played, newest first, with how each ended. Without an account it says how to get one.
open
open_plot_speaks
Returns the Plot Speaks welcome: a short spoken introduction, a question offering to list the stories, start one or write one, and a menu of story categories with example titles. With skip_intro the introduction is left out; with instructions it adds the how-to-play.
pick
pick_for_me
Picks ONE Plot Speaks story or game to play now, ranked from the player's mood, the time they have, how many are playing and an optional collection, skipping what a signed-in player has already played. Returns the pick's title, slug and one-line pitch, plus a runner-up. Records only anonymous counts of the mood matched and length asked for. If nothing fits every filter it says so instead of picking.
rate
rate_story
Saves a rating and feedback for a Plot Speaks story the user has just played: 1 to 5 stars, whether anything was given away too early, an optional comment about the story, optional feedback about the experience for the people who make Plot Speaks, and, for a story still being tested, the player's verdict (passed, or needs work). Needs the play id from start_story; one rating per play; stars or a verdict (or both).
request
request_team
Records a player's request for a sports team that Plot Speaks Team Trivia doesn't cover yet, for the people who maintain the database. Stores the team name and note as a request event, with no account or personal details attached, and returns a confirmation.
reveal
reveal_solution
Returns the full solution of a Plot Speaks mystery (who did it, why, and the clues that pointed there) and what became of each character. Without gave_up: true it is refused unless an accusation is already recorded for that play; with gave_up: true it answers at once. Records that the play ended in a reveal.
review
review_story
Runs the format checks on a draft story.md, and with secrets.md also the answer-key checks (including whether story.md gives the culprit away). Returns a status, the findings with line numbers, and a fair-play checklist. Nothing sent is stored.
roll
roll
Rolls dice for a Plot Speaks campaign or adventure on the server: "1d20+5", "2d6", "adv 1d20+3" (advantage), "dis 1d20" (disadvantage), "4d6 drop lowest". Returns each die and the total.
start
start_story
Loads a Plot Speaks story or game, of any kind (mystery, choose-your-path, trivia, dice or word game, Team Trivia, campaign), by slug or title. Returns its script as text (setting, cast, scenes or board, and how it is narrated; one chapter at a time for multi-chapter stories) and a play id the play's other tools take. Records an anonymous play (story, connecting assistant, time; no conversation text), and on the account connector adds it to the player's history. An unknown slug or title returns an error naming close matches or the available stories; a chapter past the last returns an error; an unreleased chapter returns its release date.
stories
list_stories
Lists the Plot Speaks stories and games that can be played by voice, three at a time with a one-line pitch each; the page argument gives the next three. Narrow it by a collection (Murder Mysteries, Greek Myths, Classic Detectives, Horror and Ghosts, Seasons, Holiday Specials, Bedtime, Dice Games, Road Trip, Read-Aloud Classics, Written by players), by length (max_minutes), by what's new (new: true), by kind (mysteries, adventures, choose-your-path stories, trivia, guessing games, game shows, dice games, word games, party and storytelling games, Table Talk, Story Time read-alouds, wind-downs, open worlds and campaigns) or, within mysteries, classic or dark. With group_by_category and no page it returns the whole catalogue under kind headings. An unknown kind or collection returns a message naming the valid ones.
story
write_story
Returns the writing kit for a new Plot Speaks story as one text: a short introduction to how a story is built (a public story.md plus a private answer key, secrets.md, reviewed by a person before anything is published), a suggested way for the writer and assistant to draft, review and submit it together, and the format template for the chosen genre and length. Reads only; nothing is stored or recorded beyond anonymous counts of genre and length. Genre and length are fixed choices, and omitting either gives the default.
submission
submission_status
Read-only. Shows where a story submitted to Plot Speaks stands when its submission id and claim code match: received and waiting for a person, approved (with the story's link), or not accepted (with the reviewer's short note, if there is one). Changes nothing.
submit
submit_story
Submits a finished Plot Speaks story for human review, credited to the name the writer chooses. Runs the format checks, a safety screen and a daily limit, then stores it; nothing is public until a person approves it. Returns a submission id and a one-time claim code for withdrawing or updating it. With replaces_id and claim_code, it replaces an earlier submission.
team
team_roster
Returns a sports team's current roster for Plot Speaks Team Trivia, read live from ESPN (cached for hours): players grouped by position with jersey numbers, and the head coach, as plain text. Covers the leagues in the Team Trivia database. Reads only; nothing is recorded. A name that fits several teams returns an error listing the candidates with their leagues; a team not in the database returns an error listing the leagues covered; if ESPN does not answer, the text says so.
withdraw
withdraw_submission
Deletes a story submitted to Plot Speaks (pending or published) when its submission id and claim code match. On the account connector, a signed-in writer can withdraw their own story with just the id.

Endpoints

URLTransportStateLatencyChecked
https://account.plotspeaks.com/mcp streamable-http sign-in 578 ms 10 min ago
https://plotspeaks.com/mcp streamable-http answering 863 ms 8 min ago

Alternatives to Plot Speaks

same job, measured the same way
LiftChat
by liftchat

Workout tracker with a chat assistant: routines, live workouts, history and progress stats.

answering
Callin.io AI Voice Agents
by callin

Access your Callin.io AI phone agents, call history and transcripts from any AI assistant.

answering
Emero
by emeroai

Teach your AI assistant to make pro images, video, music and speech with every top model

answering
Mappu
by mappu

Save trip plans made with your assistant to Mappu, and find Mappu walks and audio guides.

6 tools answering
Spark
by plusdocs

Build and run a business from your AI assistant, with hosting, payments, email and more built in.

answering
Historis
by svenlc

The memory of your business: an event-based CRM your assistant reads and writes, dated and signed.

answering
Hardcover OAuth MCP
by benjuntilla

Read and update your Hardcover library, progress, lists, and goals. Sign in with Hardcover OAuth.

answering
Top Nutritionist
by coghorizon-nutri

Meal, activity and sleep diary your assistant records into, with reports for your nutritionist

answering

Plot Speaks — questions

Answers built from our own checks of this server.

What can Plot Speaks do?
It exposes 25 tools, read directly from the server on our last check. Among them: check_accusation, choose, claim_plays, game_answer, game_board, game_challenge and 19 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Plot Speaks mostly used for?
Its tools cluster around game and world. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Plot Speaks working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 182 of 182 checks got a reply (100.0%), average response time 474 ms. The bar chart above shows every period we have measured.
How do I connect Plot Speaks?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address. You sign in through your browser once and the client keeps the session: no key to copy, and it refuses anonymous clients.
How do you sign in to Plot Speaks?
No API key is involved. Plot Speaks answers our knock with an OAuth challenge, so you authorise it once in your browser and the client keeps the session. That is also why we see no tool list: it will not describe itself to an anonymous client, and that is the server working as intended, not a fault.
How fast is Plot Speaks?
It answers our handshake in 474 ms on average, which is faster than 25% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.