MCP サーバー (claude.ai / Claude Desktop / Code / Cursor) - Entity Enricher ドキュメント

MCP Server(Claude Desktop / Code / Cursor)

Entity Enricher は /api/mcp に組み込みの Model Context Protocol サーバーを提供しています。スキーマの一覧表示、エンティティのエンリッチメント、結果の確認、分類の警告の解決を すべて 1 つの Claude チャット内から 行えます。ワークフローエディターは不要です。

すでにn8n + Makeがあるのに、なぜMCPなのか?

形が異なれば、ユースケースも異なります。n8nMakeのコネクタは、ワークフローの自動化のためにAPIをラップします。トリガー、スケジュール実行、マルチステップのパイプライン、永続的な状態などです。MCPはインタラクティブなチャットのためにラップします。アドホックな質問、探索的なエンリッチメント、フォローアップの確認などです。ワークフローはバッチ型、チャットは会話型であり — 表面が異なればUXも異なります。

MCP だけが解放する画期的な機能、それが対話的な分類の再開です。事前チェックの分類器がエンティティを拒否した場合(例えば「Titan」を Planet スキーマに対してエンリッチしようとしたものの、Titan は衛星である場合)、n8n や Make.com は非対話的であるため自動的にキャンセルせざるを得ません。MCP は警告を Claude に提示し、Claude が確認を求め、「はい」と答えるとツールは分類器なしで再実行されます。パイプライン途中での失敗も、最初からのやり直しもありません。

クイックスタート

オプション 1 — OAuth(推奨)

claude.ai、Claude Code、Cursor、および標準の OAuth フローに対応するあらゆる MCP クライアント向けです。作成や貼り付けが必要な API キーはありません。クライアントが認可サーバーを自動的に検出します。

  1. Entity Enricher をコネクタとして追加します(claude.ai の場合: 設定 → コネクタ → カスタムコネクタを追加、またはディレクトリから選択)。URL は https://entityenricher.ai/api/mcp/ です。
  2. ブラウザで Entity Enricher の同意画面が開きます。必要に応じてサインインし、認可するをクリックしてください。この接続はご自身のロールで、あなたに代わって動作します。
  3. 接続はいつでも API Keys → Connected Apps から管理または取り消しできます。取り消すとアクセスは即座に遮断されます。

オプション 2 — API キー(静的な JSON 設定)

インタラクティブなサインインではなく JSON ファイルで設定するクライアント(Claude Desktop、Continue、Zed)向けです。

  1. 1. API キーを作成する
    Entity EnricherのWeb UIで: Settings → API Keys → New organization access key。ロールを選択します(読み取り中心ならoperator、スキーマの作成/編集ならeditor、フル制御ならowner)。ent_…の値をコピーしてください。一度しか表示されません。
  2. 2. MCP クライアントに登録する

    Claude Desktopの場合は、~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または%APPDATA%\Claude\claude_desktop_config.json(Windows)を編集してください:

    {
      "mcpServers": {
        "entityenricher": {
          "url": "https://entityenricher.ai/api/mcp/",
          "headers": { "X-API-Key": "ent_your_key_here" }
        }
      }
    }

    Claude Desktop を再起動してください。同じスニペットは Claude Code、Cursor、Continue、Zed など、MCP 対応のあらゆるクライアントで動作します。

試してみる

新しいチャットで: 「私のEntity Enricherスキーマを一覧表示し、次にClaude Sonnetを使って製薬会社スキーマに対してSanofiをエンリッチしてください。」 Claudeはツールを自動的に検出し、適切なものを選択し、モデルとスキーマの選択を確認するよう促し、結果をインラインでストリーミングします。

ツール

29 個のツールが enrichment とschema作成の全範囲をカバーします。動作はラップしている REST エンドポイントと同一です(同じ検証、課金、プラン制限)——Web UI に修正が入ると、MCP にも反映されます。長時間かかる処理(batch enrichment、サンプル生成、benchmark 実行)は非同期です。開始ツールが job_id を返し、Claude が get_job_status をポーリングして、jobの完了後に永続化された出力をrecordから取得します。

カテゴリツール説明
検出list_models利用可能なLLMモデルと、お使いのプランのprofile_limitsを一覧表示し、HTTP 402に達する前にClaudeが自動的にスロットリングできるようにします。
スキーマlist_schemas組織内の保存済みJSONスキーマを、ピン留めされたものを先頭にして一覧表示します。
スキーマget_schemaUUIDでschemaの全内容を取得します。
スキーマgenerate_sampleentity タイプの説明から現実的なサンプル entity を生成します——schema 生成の前段階として自然な最初のステップです。attachment がある場合、対話型プランナーが確認質問とともに一時停止することがあります。
スキーマcreate_schema_from_sampleサンプル entity の辞書から LLM で JSON schema を生成します。アップロードしたソースドキュメント(attachment_ids)に基づいて生成することもできます。結果は自動保存されます。
スキーマedit_schema既存のschemaを自然言語で変更します。新しいコンテンツと5件のフォローアップ提案を返します。
スキーマsave_schemaClaude が直接作成した schema を永続化します——LLM 呼び出しなし、コストなし、サーバー側で検証されます。
スキーマupdate_schema保存済み schema の名前変更、内容の置き換え、再タグ付け、ピン留めを LLM 呼び出しなしで行います。
スキーマdelete_schema保存済み schema を UUID で論理削除します。
エンリッチメントenrich_entityオプションの自動フュージョンを備えたマルチモデルエンリッチメントです。オプションでattachment_idsリストを受け付けます。分類の不一致はエラーではないレスポンスを返すため、Claudeはユーザーに確認と再試行を求めることができます。
エンリッチメントstart_batch_enrichment最大 100 件の entity を非同期に enrichment します——entity ごとに完全なパイプラインを実行し、自動 fusion を行います。job_id を返し、結果は record に格納されます。
エンリッチメントfetch_entities外部 REST API からサーバー側で entity の JSON 配列を取得します(bearer / api_key / basic 認証)——batch enrichment と組み合わせて使用します。
エンリッチメントretry_expertisesrecord の失敗した expertise domain のみを再実行し、回復した値をマージし直します——すでに成功した分の再課金はありません。
エンリッチメントmerge_records既存の 2 件以上の record を 1 つの fusion 結果にマージします——ルールベース、または LLM の arbitration model を使用します。
jobget_job_status任意の非同期 job(batch、サンプル生成、benchmark 実行)をポーリングします:進捗カウンター、終了サマリー、保留中の確認質問。
jobcancel_job保留中、実行中、または一時停止中の job をキャンセルします。
jobanswer_job_question一時停止した job の確認質問に回答して再開します——generate_sample の対話部分です。
ベンチマークlist_benchmark_scenarios保存済みの benchmark scenario(再利用可能な enrichment テスト)を一覧表示します。
ベンチマークget_benchmark_scenario1 つの scenario と、その model ごとのスコア付き結果(品質 / コスト / 速度)。
ベンチマークcreate_benchmark_scenarioscenario を作成します:schema + 固定 entity + 戦略 + スコアリング判定。owner ロールと benchmark を含むプランが必要です。
ベンチマークupdate_benchmark_scenarioscenario のテスト定義またはスコアリング設定を更新します。既存の結果は古いものとしてフラグが立てられます。
ベンチマークset_benchmark_referenceゴールド参照出力を保存し、検証済みとしてマークします——実行前に必須です。
ベンチマークdelete_benchmark_scenarioscenario とその結果を削除します。
ベンチマークrun_benchmark明示的な model リスト、選択した provider のすべてのアクティブな model、またはすべてのアクティブな model で scenario を実行します——各結果は参照に対して自動的にスコアリングされます。
レコードlist_recordsタイプ、成功、モデル、ジョブ、フリーテキスト検索のフィルターで過去のレコードをページごとに閲覧できます。
レコードget_record1 レコード分の完全な構造化出力と検証エラーです。
レコードget_statsorganization統計の集計:合計、成功率、トークン、コスト。
添付ファイルupload_attachmentbase64 ファイル(filename、content_base64、media_type?)をアップロードし、enrich_entity で使用するアタッチメント ID を返します。
添付ファイルdelete_attachmentIDでattachmentを削除します。enrichment後の便利なクリーンアップ手順です。

リソース

リソースを使うと、Claude はツール呼び出しを消費せずにデータを閲覧できます。LLM クライアントはリソースをファイルのように扱います。どちらのリソースタイプも、軽量なインライン表示のために Markdown としてレンダリングされます。

URIテンプレート説明
enricher://schemas/{schema_id}保存されたスキーマをMarkdownとして描画したもので、メタデータのヘッダーと、フェンスで囲まれたJSONブロックとしてのGeneratedJsonSchemaが含まれます。
enricher://records/{record_id}過去のエンリッチメントレコードをMarkdownとして表示したものです。メタデータ+構造化出力+検証エラー。

画期的な機能、対話的な分類の再開

enrich_entity に classification model の使用を依頼し、entity が schema のタイプと一致しない場合、ツールは構造化された詳細を含むエラーではないレスポンスを返します。Claude はそれを読み取り、理由をあなたに提示し、(あなたの確認のうえで)force_after_classification_warning=true で再試行します。この再試行では classifier が省かれます。

{
  "success": false,
  "error_code": "classification_warning",
  "message": "Pre-flight classification rejected the entity. ...",
  "classification": {
    "status": "mismatch",
    "reasoning": "Titan is a moon of Saturn, not a planet.",
    "confidence": 0.97
  },
  "job_id": "..."
}

n8n と Make はパイプラインの途中でユーザーに問い合わせることができないため、この状態では自動的にキャンセルされます。MCP は問い合わせが可能であり、このたった1つの違いがコネクターの存在理由です。

同じ対話機能が 2 つ目のフローを支えます:generate_sample をソースドキュメント付きで実行すると、そのプランナーが構造に関する確認質問とともに一時停止することがあります。Claude はそれをあなたに伝え、answer_job_question で job を再開します——サンプルが生成されるまで、何度もやり取りを繰り返します。

エラーコード

ツールエラーは error_code フィールドを持つ構造化された辞書に変換されるため、Claude は自由形式のテキストを解析する代わりにパターンマッチングを行えます。HTTP レイヤーは明快に対応します:402 → クォータまたはクレジットのエラー、422 → 分類の警告、504 → タイムアウト、502 → 上流の LLM 障害。

error_codeタイミング
invalid_request不正な形式の UUID、相互排他的な引数(schema_id + target_schema)、またはリクエストボディの検証に失敗しました。
prompt_limit_reached日次/週次/月次のプロンプトクォータを使い切りました(HTTP 402)。ボディには period、limit、used、needed が含まれます。
insufficient_credits組織は請求が有効になっていますが、クレジット残高が低すぎてジョブを開始できません(HTTP 402)。本文には残高と購入URLが含まれます。
model_limit_exceededプランで許可されている数を超えるモデルが要求されました(HTTP 402)。制限値と要求値を返します。
language_limit_exceededプランで許可されている数を超える言語が要求されました(HTTP 402)。
concurrent_job_limit_reachedこの組織でアクティブなエンリッチメントジョブが多すぎます。お待ちいただくか、プランをアップグレードしてください。
classification_warning⚡ エラーではありません: 事前チェックのclassifierがentityを拒否しました。レスポンスにはclassificationのコンテキストが含まれるため、Claudeはユーザーに確認を求め、force_after_classification_warning=trueで再試行できます。
benchmarks_not_in_planbenchmark ツールには owner ロールと Model Benchmarks を含むプランが必要です(HTTP 403)。
enrichment_timeoutジョブが timeout_seconds を超えました。モデルを減らすか、エンティティを分割することをお勧めします。
schema_generation_timeoutスキーマ生成が timeout_seconds を超過しました。
schema_generation_failedスキーマ生成中にアップストリームのLLMエラーが発生しました(HTTP 502)。
cancelledジョブが実行中にキャンセルされました (HTTP 499)。
not_foundスキーマまたはレコード ID が組織内に存在しません。
http_error構造化された詳細本文を持たない HTTP エラーの総括処理。

意図的な省略

関連項目