Shakespeare's Monologues

io.github.slshultsPublished by GitHub account slshultsv0.1.2Updated Oct 25, 2026

Search Shakespeare monologues, plays, paraphrases and summaries from shakespeare-monologues.org

VerifiedStreamable HTTPWeb executableKnowledge & MemoryMedia & Design

Overview

AI-generated overview

Read-only MCP server for searching Shakespeare monologues, plays, paraphrases and scene summaries from shakespeare-monologues.org.

What you can do
Search monologues by free text with filters for gender, play, style, act and limit, or fetch one by id or at random, including the Monologue of the Day and every speech by a named character. List plays with their Comedy/History/Tragedy classification and monologue counts. Retrieve a monologue's full text with its modern-English paraphrase, plus AI-generated scene and play summaries. Send feedback about the server's own tools.
When to use it
Useful when an assistant needs to find, quote or discuss Shakespeare speeches — audition pieces, character research, teaching material — or wants quick modern-English paraphrases and scene context without browsing the site by hand.
Requirements
Either the hosted remote endpoint (add the URL, no install) or a local process via npx with Node.js. No credentials or API keys. Optional environment variables point the server at a different index URL or disable analytics.
Before you install
Read-only apart from send_feedback, which transmits text to the server; the README says not to include personal information. Paraphrases and summaries are AI-generated and may be missing (null). The README notes the feedback tool comes from an analytics SDK and is only present when analytics is on.

Installation

In SourceWeft

  1. Open Shakespeare's Monologues in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.slshults%2Fshakespeare-monologues/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "shakespeare-s-monologues": {
      "type": "http",
      "url": "https://mcp.shakespeare-monologues.org/mcp"
    }
  }
}

README

Shakespeare's Monologues — MCP server

A small, read-only Model Context Protocol server that lets MCP-capable AI clients search and fetch Shakespeare monologue metadata from shakespeare-monologues.org.

It's a thin, stateless wrapper over the site's public JSON index (/api/monologues.json) — no database, no secrets. Every result carries the monologue's permalink url (where the full text, scene context, and modern-English paraphrase live) and an attribution note.

Tools

ToolWhat it does
search_monologuesFree-text search (character / play / first line) + filters: gender, play, style, act, limit.
get_monologueOne monologue's index entry by numeric id.
random_monologueA random monologue, optional gender / play filters.
list_playsEvery play with its classification and monologue count.
list_all_monologues_for_a_characterEvery monologue spoken by a named character.
get_monologue_of_the_dayThe current Monologue of the Day (latest social post).
get_paraphrased_monologueA monologue's full text + its modern-English paraphrase (AI-generated; may be null if not yet generated).
get_scene_summaryAI-generated summary of the scene a monologue is in (by monologue id).
get_play_summaryAI-generated summary of a play (by title).
send_feedbackLets an agent report a missing capability, a problem, or praise. Added by the PostHog analytics SDK; only present when analytics is on.

The paraphrase and summaries are AI-generated (Claude) and only partially cached so far, so those tools return null where content hasn't been generated yet.

Run locally

Two transports, same tools. server.ts builds the tool surface and knows nothing about how it's reached; index.ts serves it over HTTP and stdio.ts over stdio.

Over stdio, the way an MCP client spawns a local server:

bash
npx shakespeare-monologues-mcp

Over HTTP, which is how the hosted instance runs:

bash
npm install
npm run build
npm start          # listens on :3000, POST /mcp   (set PORT to change)

Health check: GET /health → {"ok":true}.

Neither mode needs credentials — the server reads the site's public JSON index. Set MONOLOGUES_API_URL to point it elsewhere, and POSTHOG_PROJECT_API_KEY="" to disable analytics.

Connecting a client

Remote MCP means users add a URL, no install. In a client that supports remote / custom MCP servers (Claude Desktop connectors, etc.), add:

https://mcp.shakespeare-monologues.org/mcp

Or run it yourself over stdio, with no hosted dependency:

json
{
  "mcpServers": {
    "shakespeare-monologues": {
      "command": "npx",
      "args": ["-y", "shakespeare-monologues-mcp"]
    }
  }
}

For clients configured with a JSON config file, use the streamable-HTTP transport:

json
{
  "mcpServers": {
    "shakespeare-monologues": {
      "type": "streamable-http",
      "url": "https://mcp.shakespeare-monologues.org/mcp"
    }
  }
}

For a client that only speaks stdio, bridge to the remote server with mcp-remote:

json
{
  "mcpServers": {
    "shakespeare-monologues": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.shakespeare-monologues.org/mcp"]
    }
  }
}

Note on "autonomous" use: there's no mechanism today for an arbitrary agent to discover and use this with zero user action — a client/platform still has to connect it. For truly zero-setup access, agents can hit the plain JSON API (/api/monologues.json) and /llms.txt directly.

License

  • Code: MIT.
  • Data served through it: © shakespeare-monologues.org, CC BY-NC-SA 4.0 — please keep the attribution that each tool response includes.

[shakespeare-monologues-mcp MCP server]

Source: README.md at commit 71975b2

Tools

10

search_monologues

Search Shakespeare monologues by free text (matches character, play, or first line) plus optional filters. Returns matches, each with a permalink `url`.

Parametersactplaylimitquerystylegendercontextrequiredllm_modelrequiredconversation_id

get_monologue

Fetch one monologue's catalogue entry by its numeric id. Follow the returned `url` for the full text.

Parametersidcontextrequiredllm_modelrequiredmonologue_idconversation_id

random_monologue

Return one random monologue, with optional gender/play filters. Useful for a suggestion when the user is undecided.

Parametersplaygendercontextrequiredllm_modelrequiredconversation_id

list_plays

List Shakespeare's plays with their classification (Comedy/History/Tragedy) and monologue counts.

Parameterscontextrequiredllm_modelrequiredconversation_id

list_all_monologues_for_a_character

List every monologue spoken by a given character (e.g. 'Hamlet', 'Rosalind'). Matches the character name exactly first, then as a substring.

Parameterslimitcontextrequiredcharacterllm_modelrequiredconversation_id

get_monologue_of_the_day

The current 'Monologue of the Day' — the piece most recently posted to the site's social feeds.

Parameterscontextrequiredllm_modelrequiredconversation_id

get_paraphrased_monologue

Fetch a monologue's full text alongside its modern-English, line-by-line paraphrase. The paraphrase is AI-generated (Claude) and may be null if it hasn't been generated yet — the `url` always has the monologue itself.

Parametersidcontextrequiredllm_modelrequiredmonologue_idconversation_id

get_scene_summary

Fetch an AI-generated summary of the scene a monologue appears in (context for the speech). May be null if not generated yet.

Parametersidcontextrequiredllm_modelrequiredmonologue_idconversation_id

get_play_summary

Fetch an AI-generated summary of a play (e.g. 'Hamlet', 'The Tempest'). May be null if not generated yet.

Parametersplaycontextrequiredllm_modelrequiredconversation_id

send_feedback

Send feedback

Send feedback about this Shakespeare monologues server: a monologue, play or capability you needed that its tools could not provide, a problem with a result, or praise. Only for feedback about these tools, not about other tasks. Do not include personal information about the user.

Parametersdetailssummaryrequiredllm_modelrequiredsentimenttool_namefeedback_typerequiredtask_completedconversation_idfriction_pointssuggested_improvement

Version history

1
  1. v0.1.2LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts