MCPサーバー

Shakespeare's Monologues

io.github.slshults/shakespeare-monologues
教育 ナレッジ・ドキュメント 公開・接続可能 MCP 2025-11-25

このMCPでできること

Searches and retrieves Shakespeare monologues, play and scene summaries, paraphrases, character collections, and play metadata.

get_monologue
Fetch one monologue's catalogue entry by its numeric id. Follow the returned `url` for the full text.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['context'], 'properties': {'id': {'type': 'integer', 'description': "The monologue's numeric id (from search_monologues)."}, 'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}, 'monologue_id': {'type': 'integer', 'description': 'Deprecated alias for `id`.'}}}
get_monologue_of_the_day
The current 'Monologue of the Day' — the piece most recently posted to the site's social feeds.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['context'], 'properties': {'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}}}
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.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['context'], 'properties': {'id': {'type': 'integer', 'description': "The monologue's numeric id (from search_monologues)."}, 'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}, 'monologue_id': {'type': 'integer', 'description': 'Deprecated alias for `id`.'}}}
get_play_summary
Fetch an AI-generated summary of a play (e.g. 'Hamlet', 'The Tempest'). May be null if not generated yet.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['play', 'context'], 'properties': {'play': {'type': 'string', 'description': 'Play title (exact or partial).'}, 'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}}}
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.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['context'], 'properties': {'id': {'type': 'integer', 'description': "The monologue's numeric id (from search_monologues)."}, 'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}, 'monologue_id': {'type': 'integer', 'description': 'Deprecated alias for `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.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['character', 'context'], 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Max results (default 50).'}, 'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}, 'character': {'type': 'string', 'description': 'Character name.'}}}
list_plays
List Shakespeare's plays with their classification (Comedy/History/Tragedy) and monologue counts.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['context'], 'properties': {'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}}}
random_monologue
Return one random monologue, with optional gender/play filters. Useful for a suggestion when the user is undecided.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['context'], 'properties': {'play': {'type': 'string', 'description': 'Exact or partial play title.'}, 'gender': {'enum': ['Men', 'Women', 'Both'], 'type': 'string', 'description': "Role gender: Men, Women, or Both. Natural words like 'male'/'female' are accepted. 'Men'/'Women' also include gender-neutral ('Both') roles."}, 'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}}}
search_monologues
Search Shakespeare monologues by free text (matches character, play, or first line) plus optional filters. Returns matches, each with a permalink `url`.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['context'], 'properties': {'act': {'type': 'integer', 'description': 'Filter to a specific act number.'}, 'play': {'type': 'string', 'description': 'Exact or partial play title.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Max results to return (default 25).'}, 'query': {'type': 'string', 'description': 'Free text â\x80\x94 matched against character name, play title, and first line.'}, 'style': {'enum': ['Verse', 'Prose'], 'type': 'string', 'description': 'Verse or prose.'}, 'gender': {'enum': ['Men', 'Women', 'Both'], 'type': 'string', 'description': "Role gender: Men, Women, or Both. Natural words like 'male'/'female' are accepted. 'Men'/'Women' also include gender-neutral ('Both') roles."}, 'context': {'type': 'string', 'description': 'Explain why you are calling this tool and how it fits into the user\'s overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person (\'I\', \'we\', \'you\') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization\'s repositories to find all open issues related to performance complaints and latency issues for team prioritization."'}}}
追加
get_play_summary
2026年9月17日12:52
追加
get_scene_summary
2026年9月17日12:52
追加
get_paraphrased_monologue
2026年9月17日12:52
追加
get_monologue_of_the_day
2026年9月17日12:52
追加
list_all_monologues_for_a_character
2026年9月17日12:52
追加
list_plays
2026年9月17日12:52
追加
random_monologue
2026年9月17日12:52
追加
get_monologue
2026年9月17日12:52
追加
search_monologues
2026年9月17日12:52