Shakespeare's Monologues
by slshults · remote · local (npm) · no sign-in to list tools · v0.1.2 · published by GitHub user slshults
Search Shakespeare monologues, plays, paraphrases and summaries from shakespeare-monologues.org
10 tools: 1 do something that can't be undone and 9 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things0Claude Code: ask
- Only reads9Claude Code: allow: see these tools
10 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http shakespeare-monologues https://mcp.shakespeare-monologues.org/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnsend_feedback
The server marks "send_feedback" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "send_feedback" says "send": a word for sending, and what is sent cannot be taken back.
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Infoget_monologue
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Inforandom_monologue
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Infolist_plays
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Show 4 more findingsShow fewer
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Infoget_play_summary
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
10 tools
Can't be undone 1Claude Code: ask
send_feedbackSend 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.1 finding
Why it is in this group
- The name "send_feedback" says "send": a word for sending, and what is sent cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "send_feedback" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "send_feedback" says "send": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- title: Send feedback
- readOnlyHint: true
- openWorldHint: true
- idempotentHint: true
- destructiveHint: false
Only reads 9Claude Code: allow
get_monologueFetch one monologue's catalogue entry by its numeric id.1 finding
Why it is in this group
- The name "get_monologue" says "get": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it Fetch one monologue's catalogue entry by its numeric id. Follow the returned `url` for the full text.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_monologue_of_the_dayThe current 'Monologue of the Day' — the piece most recently posted to the site's social feeds.1 finding
Why it is in this group
- The name "get_monologue_of_the_day" says "get": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it The current 'Monologue of the Day' — the piece most recently posted to the site's social feeds.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_paraphrased_monologueFetch a monologue's full text alongside its modern-English, line-by-line paraphrase.1 finding
Why it is in this group
- The name "get_paraphrased_monologue" says "get": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_play_summaryFetch an AI-generated summary of a play (e.g.1 finding
Why it is in this group
- The name "get_play_summary" says "get": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it Fetch an AI-generated summary of a play (e.g. 'Hamlet', 'The Tempest'). May be null if not generated yet.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_scene_summaryFetch an AI-generated summary of the scene a monologue appears in (context for the speech).1 finding
Why it is in this group
- The name "get_scene_summary" says "get": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it Fetch an AI-generated summary of the scene a monologue appears in (context for the speech). May be null if not generated yet.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
list_all_monologues_for_a_characterList every monologue spoken by a given character (e.g.1 finding
Why it is in this group
- The name "list_all_monologues_for_a_character" says "list": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it List every monologue spoken by a given character (e.g. 'Hamlet', 'Rosalind'). Matches the character name exactly first, then as a substring.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
list_playsList Shakespeare's plays with their classification (Comedy/History/Tragedy) and monologue counts.1 finding
Why it is in this group
- The name "list_plays" says "list": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it List Shakespeare's plays with their classification (Comedy/History/Tragedy) and monologue counts.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
random_monologueReturn one random monologue, with optional gender/play filters.1 finding
Why it is in this group
- The description's first verb is "return": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it Return one random monologue, with optional gender/play filters. Useful for a suggestion when the user is undecided.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
search_monologuesSearch Shakespeare monologues by free text (matches character, play, or first line) plus optional filters.1 finding
Why it is in this group
- The name "search_monologues" says "search": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it Search Shakespeare monologues by free text (matches character, play, or first line) plus optional filters. Returns matches, each with a permalink `url`.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.2. Values in angle brackets are yours to fill in.
claude mcp add --transport http shakespeare-monologues https://mcp.shakespeare-monologues.org/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__shakespeare-monologues__search_monologues",
"mcp__shakespeare-monologues__get_monologue",
"mcp__shakespeare-monologues__random_monologue",
"mcp__shakespeare-monologues__list_plays",
"mcp__shakespeare-monologues__list_all_monologues_for_a_character",
"mcp__shakespeare-monologues__get_monologue_of_the_day",
"mcp__shakespeare-monologues__get_paraphrased_monologue",
"mcp__shakespeare-monologues__get_scene_summary",
"mcp__shakespeare-monologues__get_play_summary"
],
"ask": [
"mcp__shakespeare-monologues__send_feedback"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as shakespeare-monologues. Review it before you use it.
