DraCor MCP サーバー
Drama Corpora Project (DraCor) APIと連携するためのモデルコンテキストプロトコル(MCP)サーバー。このMCPサーバーを使用すると、Claudeやその他のLLMを通じて、劇作テキストとその登場人物ネットワークをシームレスに分析できます。
概要
このプロジェクトは、DraCor API v1へのアクセスを提供する公式モデルコンテキストプロトコルPython SDKを使用して、MCPサーバーを実装します。これにより、クロード氏をはじめとする法学修士(LLM)は、演劇テキストコーパスとの対話、登場人物ネットワークの分析、演劇情報の取得、そして異なる言語や時代をまたぐ演劇作品に関する洞察の生成が可能になります。
このプロジェクトには 2 つの実装が含まれます。
dracor_mcp_fastmcp.py- v1 API を使用した FastMCP デコレータベースの API を使用した合理化された実装
Related MCP server: Warpcast MCP Server
特徴
統一されたインターフェースを介してDraCor API v1にアクセス
認証は不要です(DraCor APIは公開されています)
DraCorエンティティの構造化データモデル
運用サポート:
コーパスと遊びの情報検索
キャラクターネットワーク分析
プレイの指標と統計
キャラクター情報と音声テキスト
比較プレイ分析
検索機能
キャラクター関係データ
複数の形式のネットワークデータ(CSV、GEXF、GraphML)
演劇におけるジェンダー分析
プレーンテキストおよびTEI XML形式での全文検索
完全な劇中テキスト分析
設定
前提条件
Python 3.10以上
UV パッケージ マネージャー (推奨) または pip
UVによる設置
UVをインストールします:
仮想環境を作成し、依存関係をインストールします。
Claude Desktop に MCP サーバーをインストールします。
標準実装の場合 (v0 API):
または、v1 API を使用した FastMCP 実装の場合 (推奨):
開発モード
テストと開発の場合:
または、v1 API を使用した FastMCP 実装の場合 (推奨):
これにより、MCP Inspector が起動し、ツールとリソースをインタラクティブにテストできるようになります。
クロード・コンフィグレーション
次のコードを Claude 構成ファイルに追加して、Claude が DraCor MCP サーバーを使用するように直接構成することもできます。
/path/to/dracor-mcp/ dracor-mcp ディレクトリへの実際のパスに置き換えてください。この設定では、事前のインストールを必要とせずに、 uv runを使用して必要な依存関係を持つ MCP サーバーを実行します。
Docker(オプション)
Docker を使用する場合:
代わりに v1 API で FastMCP 実装を使用するには:
実装の詳細
標準 MCP 実装 (v0 API)
dracor_mcp_server.pyの標準実装では、古い v0 API を使用したコア MCP SDK クラスが使用されます。
Resource- APIリソースを定義するMCPToolImpl- ツールの実装用PromptTemplate- プロンプトテンプレートを作成する
FastMCP 実装 (v1 API)
dracor_mcp_fastmcp.pyの FastMCP 実装では、現在の v1 API を使用した、より簡潔なデコレータベースのアプローチが使用されています。
@mcp.resource()- APIリソースを定義するため@mcp.tool()- ツールを実装するため@mcp.prompt()- プロンプトテンプレートを作成する
このアプローチにより、同じ機能を提供しながら、より包括的な API 機能にアクセスでき、よりクリーンで保守しやすいコードが実現します。
v1 API 機能
v1 API 実装では、多くの追加のエンドポイントと機能へのアクセスが提供されます。
API 情報- DraCor API のバージョン情報
コーパスメタデータ- コーパス内のすべての演劇の詳細なメタデータ
プレイメトリクス- ネットワークメトリクスと分析データ
文字ネットワークデータ- CSV、GEXF、GraphML 形式
キャラクター関係- キャラクター間の明確な関係
音声テキストフィルター- 性別、関係タイプ、キャラクターの役割でフィルターします
舞台指示- スピーカーの有無にかかわらず舞台指示を取得します
キャラクター検索- 特定のキャラクターが登場する演劇を検索(Wikidata ID で)
使用法
Claude Desktopにインストールすると、Claudeを介してDraCor APIを操作できるようになります。以下に例をいくつか示します。
基本的なクエリ
利用可能なコーパスをリストするように Claude に依頼します。
特定の演劇に関する情報を取得します。
文字ネットワークを分析します。
高度なクエリ
登場人物の関係性を分析する:
演劇を比較する:
文字の重要性を分析する:
性別の表現を分析する:
さまざまな演劇の登場人物を見つける:
劇の全文を分析します。
劇中のテキストからテーマを抽出します。
言語パターンを分析する:
文学分析クエリ
プレイ構造を分析する:
著者を比較:
歴史的背景:
リソース(v1 API)
FastMCP サーバーは次のリソースを公開します。
info://- API情報とバージョンの詳細corpora://- 利用可能なすべてのコーパスのリストcorpus://{corpus_name}- 特定のコーパスに関する情報corpus_metadata://{corpus_name}- コーパス内のすべての演劇のメタデータplays://{corpus_name}- 特定のコーパス内の演劇のリストplay://{corpus_name}/{play_name}- 特定の演劇に関する情報play_metrics://{corpus_name}/{play_name}- 特定のプレイのネットワークメトリクスcharacters://{corpus_name}/{play_name}- 特定の劇の登場人物のリストspoken_text://{corpus_name}/{play_name}- 劇中の音声テキスト(オプションのフィルター付き)spoken_text_by_character://{corpus_name}/{play_name}- 各キャラクターが話すテキストstage_directions://{corpus_name}/{play_name}- 演劇の舞台指示network_data://{corpus_name}/{play_name}- CSV形式のネットワークデータrelations://{corpus_name}/{play_name}- CSV形式のキャラクター関係データcharacter_by_wikidata://{wikidata_id}- ウィキデータ ID ごとに、キャラクターを含む演劇をリストします。full_text://{corpus_name}/{play_name}- プレーンテキスト形式の演劇の全文tei_text://{corpus_name}/{play_name}- 演劇の完全なTEI XMLテキスト
ツール(v1 API)
FastMCP サーバーは次のツールを提供します。
search_plays- クエリに基づいて演劇を検索するcompare_plays- 2つのプレイをメトリクスと構造の観点から比較しますanalyze_character_relations- 劇中の登場人物の関係を分析するanalyze_play_structure- プレイの構造を分析するfind_character_across_plays- 複数のプレイにわたってキャラクターを見つけるanalyze_full_text- 台詞や舞台指示を含む劇の全文を分析する
プロンプトテンプレート(v1 API)
FastMCP サーバーには次のプロンプト テンプレートが含まれています。
analyze_play- 特定のプレイを分析するためのテンプレートcharacter_analysis- 特定の文字を分析するためのテンプレートnetwork_analysis- 文字ネットワークを分析するためのテンプレートcomparative_analysis- 2つの演劇を比較するためのテンプレートgender_analysis- 演劇におけるジェンダー表現を分析するためのテンプレートhistorical_context- 演劇の歴史的背景を分析するためのテンプレートfull_text_analysis- 演劇の全文を分析するためのテンプレート
仕組み
このプロジェクトでは、公式のモデル コンテキスト プロトコル Python SDK を使用して、Claude が DraCor API と対話するために使用できるリソースとツールを公開する MCP サーバーを構築します。
クロードに劇的なテキストについて質問すると、次のようになります。
コーパス、演劇、キャラクター、ネットワークなどのリソースにアクセスする
ツールを使用してプレイを検索、比較、分析する
データに基づいて洞察と視覚化を提供する
DraCor API はパブリックにアクセス可能なので、認証は必要ありません。
レート制限
DraCor のレート制限ポリシーにご注意ください。サーバーには、.env ファイルで設定できるオプションのレート制限設定が含まれています。
トラブルシューティング
問題が発生した場合:
Python 3.10以降を使用していることを確認してください
デバッグするには開発モードで実行してみてください:
mcp dev dracor_mcp_fastmcp.pyDraCor API のステータスはhttps://dracor.org/doc/apiで確認できます。
MCP で使用するプロンプト
あなたの任務は、DraCorデータベースから過去の演劇を分析し、キャラクターIDのタグ付けの問題を特定することです。具体的には、
DraCor データベースから演劇を選択し、登場人物の関係、全文、構造を包括的に分析します。
次のような、キャラクター ID タグ付けにおけるすべての可能性のある不一致を特定します。
キャラクター名の綴りのバリエーション
キャラクター名の混同または混同
歴史的な綴りの変種
キャラクターIDと舞台指示の不一致
次の列を含む構造化されたテーブル形式で、潜在的な文字 ID タグ付けエラーの詳細なレポートを作成します。
テキストID(演劇の一意の識別子)
データベースで使用されている現在の文字ID
テキスト内に問題のある変種が見つかりました
エラーの種類 (スペル、変形、混乱など)
問題の説明
このテキストに対して実行してください: [プレイ名]
ライセンス
マサチューセッツ工科大学
謝辞
このプロジェクトでは以下を使用します:
MCP サーバーを構築するためのモデル コンテキスト プロトコル Python SDK
ドラマチックなテキストとネットワークデータのためのDraCor API v1
基礎データとAPIを提供するドラマコーポラプロジェクト(DraCor)