{
  "markdown": "# Shakespeare's Monologues — MCP server\r\n\r\nA small, read-only [Model Context Protocol](https://modelcontextprotocol.io) server\r\nthat lets MCP-capable AI clients search and fetch Shakespeare monologue metadata from\r\n[shakespeare-monologues.org](https://www.shakespeare-monologues.org).\r\n\r\nIt's a **thin, stateless wrapper** over the site's public JSON index\r\n(`/api/monologues.json`) — no database, no secrets. Every result carries the\r\nmonologue's permalink `url` (where the full text, scene context, and modern-English\r\nparaphrase live) and an attribution note.\r\n\r\n## Tools\r\n\r\n| Tool | What it does |\r\n| --- | --- |\r\n| `search_monologues` | Free-text search (character / play / first line) + filters: `gender`, `play`, `style`, `act`, `limit`. |\r\n| `get_monologue` | One monologue's index entry by numeric `id`. |\r\n| `random_monologue` | A random monologue, optional `gender` / `play` filters. |\r\n| `list_plays` | Every play with its classification and monologue count. |\r\n| `list_all_monologues_for_a_character` | Every monologue spoken by a named character. |\r\n| `get_monologue_of_the_day` | The current Monologue of the Day (latest social post). |\r\n| `get_paraphrased_monologue` | A monologue's full text + its modern-English paraphrase (AI-generated; may be null if not yet generated). |\r\n| `get_scene_summary` | AI-generated summary of the scene a monologue is in (by monologue id). |\r\n| `get_play_summary` | AI-generated summary of a play (by title). |\r\n\r\n> The paraphrase and summaries are AI-generated (Claude) and only partially cached so far,\r\n> so those tools return `null` where content hasn't been generated yet.\r\n\r\n## Run locally\r\n\r\nTwo transports, same tools. `server.ts` builds the tool surface and knows\r\nnothing about how it's reached; `index.ts` serves it over HTTP and `stdio.ts`\r\nover stdio.\r\n\r\n**Over stdio**, the way an MCP client spawns a local server:\r\n\r\n```bash\r\nnpx shakespeare-monologues-mcp\r\n```\r\n\r\n**Over HTTP**, which is how the hosted instance runs:\r\n\r\n```bash\r\nnpm install\r\nnpm run build\r\nnpm start          # listens on :3000, POST /mcp   (set PORT to change)\r\n```\r\n\r\nHealth check: `GET /health` → `{\"ok\":true}`.\r\n\r\nNeither mode needs credentials — the server reads the site's public JSON index.\r\nSet `MONOLOGUES_API_URL` to point it elsewhere, and `POSTHOG_PROJECT_API_KEY=\"\"`\r\nto disable analytics.\r\n\r\n## Connecting a client\r\n\r\nRemote MCP means users add a **URL**, no install. In a client that supports remote /\r\ncustom MCP servers (Claude Desktop connectors, etc.), add:\r\n\r\n```\r\nhttps://mcp.shakespeare-monologues.org/mcp\r\n```\r\n\r\nOr run it yourself over stdio, with no hosted dependency:\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"shakespeare-monologues\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"shakespeare-monologues-mcp\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nFor clients configured with a JSON config file, use the streamable-HTTP transport:\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"shakespeare-monologues\": {\r\n      \"type\": \"streamable-http\",\r\n      \"url\": \"https://mcp.shakespeare-monologues.org/mcp\"\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nFor a client that only speaks stdio, bridge to the remote server with\r\n[`mcp-remote`](https://www.npmjs.com/package/mcp-remote):\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"shakespeare-monologues\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"mcp-remote\", \"https://mcp.shakespeare-monologues.org/mcp\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n> Note on \"autonomous\" use: there's no mechanism today for an arbitrary agent to\r\n> discover and use this with zero user action — a client/platform still has to connect\r\n> it. For truly zero-setup access, agents can hit the plain JSON API\r\n> (`/api/monologues.json`) and `/llms.txt` directly.\r\n\r\n## License\r\n\r\n- **Code:** MIT.\r\n- **Data** served through it: © shakespeare-monologues.org, **CC BY-NC-SA 4.0** — please\r\n  keep the attribution that each tool response includes.\r\n\r\n---\r\n\r\n[![shakespeare-monologues-mcp MCP server](https://glama.ai/mcp/servers/slshults/shakespeare-monologues-mcp/badges/score.svg)](https://glama.ai/mcp/servers/slshults/shakespeare-monologues-mcp)\r\n",
  "bytes": 4061,
  "sha": "9873260a2f9d607363beb18e3daa67ab4f248b9fad8497ed31fada6ff08da10b",
  "repo_slug": "slshults/shakespeare-monologues-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_slshults_shakespeare_monologue_22542e44/readme"
}