Skip to content

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

Final · 1

10 tools: 1 do something that can't be undone and 9 only read.

Scanned Oct 21, 2026

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/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn9 info
  • The server marks "send_feedback" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched 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.

    What this check looks for
  • The input schema at properties.context.description mentions "credentials".

    Matched text

    inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

    What this check looks for
  • The input schema at properties.context.description mentions "credentials".

    Matched text

    inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

    What this check looks for
  • The input schema at properties.context.description mentions "credentials".

    Matched text

    inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

    What this check looks for
  • The input schema at properties.context.description mentions "credentials".

    Matched text

    inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

    What this check looks for
  • The input schema at properties.context.description mentions "credentials".

    Matched text

    inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

    What this check looks for
Show 4 more findings
  • The input schema at properties.context.description mentions "credentials".

    Matched text

    inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

    What this check looks for
  • The input schema at properties.context.description mentions "credentials".

    Matched text

    inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

    What this check looks for
  • The input schema at properties.context.description mentions "credentials".

    Matched text

    inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

    What this check looks for
  • The input schema at properties.context.description mentions "credentials".

    Matched text

    inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

    What this check looks for

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".

      Matched 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.

      What this check looks for
    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".

      Matched text

      inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

      What this check looks for
    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".

      Matched text

      inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

      What this check looks for
    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".

      Matched text

      inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

      What this check looks for
    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".

      Matched text

      inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

      What this check looks for
    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".

      Matched text

      inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

      What this check looks for
    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".

      Matched text

      inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

      What this check looks for
    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".

      Matched text

      inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

      What this check looks for
    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".

      Matched text

      inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

      What this check looks for
    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".

      Matched text

      inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."

      What this check looks for
    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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.