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はツールを自動的に検出し、適切なものを選択し、モデルとスキーマの選択を確認するよう促し、結果をインラインでストリーミングします。

ツール

54 個のツールが、エンリッチメント、スキーマ作成、Database Sync、セマンティックID語彙のすべての操作範囲をカバーします。動作はラップ元の REST エンドポイントと同一です(検証、課金、プラン制限も同じ)。Web UI に修正が入れば、MCP にも同時に反映されます。長時間かかる処理(バッチエンリッチメント、サンプル生成、ベンチマーク実行)は非同期です。開始ツールが job_id を返し、Claude が get_job_status をポーリングして、ジョブ完了後に永続化された出力をレコードから取得します。

カテゴリツール説明
検出list_modelsmodel キー、名目上の機能、auto 選択されたデフォルト、およびお客様のプランの profile_limits を一覧表示します。auto 選択を優先してください。利用可能であっても、すべての provider クォータや複合的なメディア/ツールモードが保証されるわけではありません。
スキーマlist_schemas組織内の保存済みJSONスキーマを、ピン留めされたものを先頭にして一覧表示します。
スキーマget_schemaUUIDでschemaの全内容を取得します。
スキーマgenerate_sample編集可能なサンプル契約を1つのジョブで1〜N件生成します(最初の契約がフィールドセットを定義し、残りは同一フィールドのインスタンスを高速に生成したバリアントです)。ナレッジモード(添付ファイルなし、任意でWeb検索)またはソースモード(添付ファイルが正式な情報源となり、プランナーが質問することがあります)で実行できます。スキーマを作成する前に、重要な編集内容についてユーザーと確認してください。
スキーマcreate_schema_from_sampleentity_samples(1つのエンティティタイプのサンプル1〜N件 — フィールドの和集合、欠損時はnull許容、実際に観測された例)、sample_record_id、または編集済みデータとそのレコードに紐づく添付ファイルからスキーマを生成し、自動保存します。セマンティックIDはオプトイン方式で、提案内容はレビューされ、自動適用されることはありません。
スキーマsave_schemaClaude が直接作成した schema を永続化します——LLM 呼び出しなし、コストなし、サーバー側で検証されます。
スキーマupdate_schema保存済みスキーマの名前変更、内容の置換、タグの付け直し、ピン留め、曖昧性チェックの切り替えを、LLM 呼び出しなしで実行します。
スキーマget_schema_partドキュメント全体を読み込まずにスキーマの一部を取得します。名前付き型のインデックス、$defs/$enums の定義、オブジェクトのサブツリー、または関連とフラグを含む単一のプロパティカードを取得できます。
スキーマupdate_schema_propertyパスを指定してプロパティを 1 つ編集 — 名前変更、型または $ref、説明、例、フラグ — または削除します。サーバー側で検証され、全内容の往復は不要です。
スキーマadd_schema_propertyルート、ネストされたオブジェクト、または $defs 型に、スカラー、ネストされたオブジェクト、$ref のいずれかのプロパティを追加します。
スキーマmove_schema_property1 つのプロパティを別のコンテナー — ルート、ネストされたオブジェクト、または $defs 型 — に移動します。フラグと専門領域はそのまま保持されます。
スキーマpublish_schemaリンクされたスキーマの作業コピーを、エンリッチメントとそのデータベース同期が従うコントラクトとして公開します。構造的な編集はここでのみ有効になります。また、新しくリンクされた同期は、スキーマの最初の公開まで何も配信しません。validate_only=trueにすると、マイグレーションの差分をプレビューできます。
スキーマanalyze_sampleサンプルJSONを解析し、親オブジェクトの文脈で複数の解釈が成り立つ — あるいはまったく成り立たない — プロパティ名と、エンティティの情報と親ごとの情報が混在する関連項目を検出します。競合する解釈とリネーム案を示すステートレスなレポートを返すだけで、何も変更しません。
スキーマanalyze_schema保存済みスキーマに対して曖昧性チェックとアイデンティティスコープチェックを実行し、プロパティごとの注釈を書き込みます。公開中のスキーマは名前を変更できないため、曖昧な名前ごとに説明を書き直します。既定では増分実行で、force=true を指定するとすべてを再解析します。
スキーマdelete_schema保存済み schema を UUID で論理削除します。
エンリッチメントenrich_entityオプションの自動フュージョンを備えたマルチモデルエンリッチメントです。オプションでattachment_idsリストを受け付けます。分類の不一致はエラーではないレスポンスを返すため、Claudeはユーザーに確認と再試行を求めることができます。
エンリッチメントstart_batch_enrichment任意の数のエンティティを非同期にエンリッチメントできます。バッチサイズの固定上限はなく、プランのライブ利用クォータによってのみ制限されます。エンティティごとに完全なパイプラインを実行し、自動フュージョンを行います。job_id を返し、結果はレコードに保存されます。
エンリッチメント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非同期ジョブをポーリングして、進捗、結果、失敗、確認のための質問を取得します。明示的な model の互換性エラーが発生した後は、model を次々に試すのではなく、auto 選択で一度だけ再試行してください。
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 ファイルをアップロードし、その attachment ID と必要な model の機能を返します。その ID を generate_sample に渡すと source モードが有効になります。
添付ファイルdelete_attachmentIDでattachmentを削除します。enrichment後の便利なクリーンアップ手順です。
Database Synclist_database_syncs保存済みスキーマに登録されたデータベース同期を、保留中のデルタ数と各同期のオプションとともに一覧表示します。
Database Synccreate_database_syncデータベースを保存済みの schema に接続し、その enrichment をお使いの PostgreSQL 向けのリレーショナル SQL の差分に変換します。schema は未公開の状態でリンクされ、データベースモデルはバックグラウンドで classification されます。内容を確認したうえで、publish_schema がフィードを開始します。
Database Syncclassify_database_modelリンク済みの schema を編集した後にデータベースモデルの classification を再実行します。LLM が新規または変更された各プロパティのキー、SQL 型、インデックス、所有権を提案します。最初のパスは、データベースが接続された時点で自動的に実行されます。
Database Syncdelete_database_syncデータベース同期とそのキュー内のデルタを削除します。レプリカのテーブルには一切触れません。オプションのteardownフラグを使うと、データベースがなくなったスキーマのエンティティ状態とデータベースモデルも削除されます。
Database Synccreate_database_credentialデータベース同期のsync-client認証情報を(再)発行します。ee-databaseワークフローのペアリング手順であり、installおよびpairコマンドとともに返されます。
Database Syncfetch_database_deltasデータベース同期の次のFIFOウィンドウのSQLデルタを取得します。claim=trueにすると確認応答付き配信のためにリースし、claim=falseは再実行可能な読み取りになります。
Database Syncack_database_deltas指定したIDまでの適用済みデルタを確認応答します。リースを解放し、同期のパージオプションを適用します。
Database Syncassign_sync_hostマネージドモードでデータベース同期をプロビジョニングする同期ホストを割り当て(または解除)します — ホストが認証情報を取得し、物理データベースがなければ作成して同期を開始するため、手動でのペアリングは不要です。
Database Synclist_entity_statesスキーマの現在のエンティティ状態を参照します — エンティティレイヤーが保持し、リンクされたすべてのデータベースに反映される、重複排除済みで最終書き込み優先の行であり、list_records が返す実行ごとのレコードではありません。
Database Syncsync_records_to_database保存済みのエンリッチメント出力をスキーマの Database Sync に投入します。公開済みのコントラクトに対して再検証されたうえで、受け入れゲートを通過します。
セマンティックIDlist_semantic_concepts組織のコンセプト語彙をタイプファセットとともに参照します。view="duplicates"を指定すると、解決しきい値をわずかに下回るコンセプトのペアを表示します。
セマンティックIDget_semantic_concept1つのコンセプトの全情報:表記形、識別ソースキー、リンクされたレコード、および類似度付きの最近傍(同一のコンセプトタイプおよび埋め込みモデルのスライス内でのみ定義されます)。
セマンティックIDprobe_semantic_conceptテキストに対する解決ラダーをドライランします。エンリッチメントがそのテキストをどう扱うかを、何も作成せずに確認できます。追加する前に検証してください。
セマンティックIDadd_semantic_concept使用回数0でコンセプトを追加します。alias_ofを指定すると、既存コンセプトに新しい表記形を追加します。テキストがしきい値内で既にカバーされている場合は、既存のコンセプトとともに拒否されます。
セマンティックIDupdate_concept_aliasコンセプトの表記形を削除するか、いずれかを正規表記に昇格させます。最後の1つの表記形は削除できません。コンセプト自体の削除は削除フローの役割です。
セマンティックIDimport_semantic_concepts最大1000件の識別テキストをエンリッチメントラダーで解決します。デフォルトでは行ごとのレポートを返し、mint=true(オーナー)で未一致分を新規作成します。
セマンティックIDmerge_semantic_conceptsあるコンセプトを別のコンセプトに統合します。impact_only=true(デフォルト)では影響範囲を報告します。統合の実行(オーナー)では、エイリアスとエンティティの参照先を付け替え、リンクされたすべてのデータベースを収束させます。
セマンティックIDdelete_semantic_conceptsコンセプトをid指定、タイプ単位、または未使用のみで削除します。impact_only=true(デフォルト)では、まず件数と影響を受けるスキーマ/データベースを報告します。削除後は自己修復されますが、保存済みidとの収束は失われます。
セマンティックIDmigrate_semantic_embeddings組織の埋め込みモデル移行のステータス確認、衝突プレビュー、開始、キャンセルを行います。既存のコンセプトを埋め込みモデル間で移動する唯一の方法です。

サンプル生成モード

knowledge モード

attachment_ids は省略してください。model は自身の知識から再利用可能なサンプルを設計し、enable_web_search=true によって外部の事実に基づけることができます。

source モード

attachment_ids を渡してください。プランナーはファイルを信頼できるソースとして扱い、ドキュメントの値を書き起こすか、写真に写っている属性のみを説明します。フィールドや追加の指示によって無関係な外部の事実を加えることはできません。

追加した指示には拘束力があります

追加指示として渡した内容は、反映されるか、反映されなかったとして報告されるかのいずれかです。ジェネレーターが出力できない構造を指定した場合など、決定論的なルールによって要求が取り消された場合は、完了したジョブに warnings リストが付き、その旨が示されます。これは必ずユーザーに伝えてください。指示が黙って無視されることこそが、サンプルが気づかないうちに誤ったものになる原因です。

写真から車を特定し、その公の露出を調査するようなハイブリッドなリクエストの場合は、generate_sample を 2 回呼び出してください。まず web 検索をオフにした source モードで、次に attachment なしで確定した identity を用いて web 検索をオンにします。会話内で結果を組み合わせてください。Entity Enricher は record を別々に保持するため、source の観測結果と調査した事実はそれぞれ異なる出所を保ちます。

model が明示的に必要な場合を除き、model=auto のままにしてください。auto 選択はタスク、attachment、web 検索の要件を適用します。利用可能な model キーであっても、provider 固有のクォータや複合ツールの制限に遭遇することがあります。

サンプルを承認し、その後 schema を確認してください

サンプルが契約です

schema 生成の前に、クライアントは entity のスコープ、キー、型、カーディナリティ、不足している代表的なフィールド、ネストされたリレーションシップを確認します。重要な編集はまとめてお客様の承認に回され、事実の値や構造がひそかに変更されることはありません。

有用な場合は安定した semantic ID を選択してください

リレーショナルテーブル、マスターデータ、ナレッジグラフ、または再利用可能なネストされた entity の場合、クライアントは semantic ID を生成するかどうかを尋ねます。これには organization の埋め込み model が必要で埋め込みコストが加わるため、デフォルトでは無効のままです。

新規または編集済みのサンプルには entity_data を渡し、保存済みの JSON とそれにリンクされた attachment を再利用するには sample_record_id を渡します。両方を渡すと、編集済みの JSON を使用しつつ attachment を保持します。空のリストを含む明示的な attachment_ids は継承を上書きします。

生成後、クライアントはサンプルの適合性、キー、アノテーション、expertise domain、リレーションシップ、semantic ID のカバレッジを確認します。構造に関する提案はサンプルの編集と再生成が必要で、アノテーションのみの編集でもお客様の承認が必要です。自動適用されるものはありません。

リソース

リソースを使うと、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)。
ambiguity_check_disabled曖昧性チェックが無効になっているスキーマに対して analyze_schema が呼び出されました(HTTP 400)。まず update_schema で ambiguity_check_enabled=true を指定して再度有効にしてください。
enrichment_timeoutジョブが timeout_seconds を超えました。モデルを減らすか、エンティティを分割することをお勧めします。
schema_generation_timeoutスキーマ生成が timeout_seconds を超過しました。
schema_generation_failedスキーマ生成中にアップストリームのLLMエラーが発生しました(HTTP 502)。
model_output_invalidmodel がスキーマに一致しない出力を返しました(HTTP 502)。ボディには model 名、問題のあるプロパティパス、および retryable: true が示されます。ツールを再度呼び出すか、より強力な model を選択してください。
cancelledジョブが実行中にキャンセルされました (HTTP 499)。
not_foundスキーマまたはレコード ID が組織内に存在しません。
http_error構造化された詳細本文を持たない HTTP エラーの総括処理。

意図的な省略

関連項目