ERP MCPサーバーは、ビジネスシステムのアクションをモデルコンテキストプロトコルを介して公開するもので、互換性のあるAIエージェントがシステムの機能を把握し、それを実行できるようにします。具体的には、2つのJSON-RPCメソッドに応答する1つのHTTPSエンドポイントです: tools/list呼び出し元に利用可能なツールの名前、説明、および入力のためのJSONスキーマを返します、そして tools/call, which runs one of them and returns a result the model can read. Claude, ChatGPT, Cursor, VS Code and other clients speak the protocol, so the server is written once and every agent can use it.
ERPにとって重要な2つの要素は、輸送には含まれていません。1つ目は、ツールリストとすべての呼び出しがエージェントが代表する人物にスコープされていることで、これはプロトコルがOAuthとリクエストごとの認証を通じてサポートしますが、サーバーが強制することになります。2つ目は、各ツールが再試行、拒否、または問い合わせが安全なビジネストランザクションに対応する必要があることです。モデルはこの3つすべてを行います。
システムをツールに変えるサーバー
モデルコンテキストプロトコルには3つの役割があります。ホストはClaudeやChatGPTのようなAIアプリケーションです。ホスト内では、サーバーごとにクライアントが作成され、そのサーバーとだけ通信します。サーバーは、少数のプリミティブを通じてホストにコンテキストと機能を提供するサービスです。仕様の設計原則は、サーバーは構築が容易で、コンポーザブルであり、全体の会話や他のサーバーを見ることができないべきだと述べています。ホストは会話を保持し、同意を強制し、サーバーは自分に宛てられた呼び出しのみを確認します。
したがって、ERP MCPサーバーはERPそのものではありません。それは、型付き入力を持つツールとして表現されたERPのアクションサーフェスであり、1つのURLで提供されます。興味深い設計上の決定は、ツールとは何かということです。天気サーバーは1つを持ち、ビジネスシステムは数百を持ち、有用なものは、テーブルの行ではなく、(請求書を作成する、支払いを記録する、取引を移動する、在庫を予約する)人が取ることができるアクションです。たとえば、Soisのワークスペースサーバーは、次のような名前のツールを公開します: 請求書を作成する, 支払いを記録, searchContacts および 連絡先を確認するモジュールごとにグループ化され、発信者が誰であるかによって受け取る正確なリストが異なります。
ツール、リソース、プロンプト
仕様は3つのサーバープリミティブを定義しており、それらの使用を制御する者が異なります。ツールはモデル制御です:モデルがいつ呼び出すかを決定します。リソースはアプリケーション駆動です:ホストがどのコンテキストを添付するかを決定し、しばしばユーザーがリストから選択します。プロンプトはユーザー制御のテンプレートです。ERPは最初のものが必要で、2番目のものから利益を得る可能性があり、3番目のものはほとんど必要ありません。
| 原始 | 誰がそれを呼び出すのか | 形状 | ERPにおいて |
|---|---|---|---|
| ツール | モデル、ツール/コールを介して | 名前、説明、入力スキーマ、オプションの出力スキーマおよび注釈;結果にはコンテンツが含まれ、オプションの構造化コンテンツとエラーが含まれます | すべてのアクション:検索、作成、更新、送信、承認、調整 |
| リソース | ホストまたはユーザー、resources/readを介して | MIMEタイプを持つURI; テキストまたはバイナリコンテンツ; オプションのテンプレートと変更サブスクリプション | 参考文書、顧客の明細書、レポート;役立つが、作業が行われる場所ではない |
| プロンプト | ユーザーは、プロンプト/取得を通じて | 引数付きの名前付きメッセージテンプレート | 時折、月末のルーチンのために; ほとんどのERPサーバーはそれらを省略します |
ClaudeのメッセージAPIコネクタとOpenAIのレスポンスAPIはツールのみをサポートしており、ERPの実質をツールに組み込むもう一つの理由です。
ビジネスシステムにとって重要なツール結果の2つの特徴があります。ツールは以下を宣言できます。 出力スキーマ を返し 構造化されたコンテンツ それに準拠し、モデルが読み取るテキストとともに、統合が結果を解析せずに使用できるようにします。また、ビジネス上の理由で失敗するツール(不正な状態の請求書、過去の日付、権限の欠如など)は、通常の結果を返し、 isError: true プロトコルエラーではなく説明を返すため、モデルは入力を修正して再試行できます。プロトコルエラーは、形式が不正なリクエストや不明なツールに予約されています。
輸送と現在の仕様
2つのトランスポートが標準です。Stdioは、クライアントがローカルプロセスとして起動するサーバー用で、ファイルアクセスなどのデスクトップツールが機能する方法です。ストリーミングHTTPはリモートサーバー用で、ERPが使用するものです: サーバーは、JSON-RPCメッセージごとにHTTP POSTを受け入れる1つのエンドポイントを公開し、JSONオブジェクトまたはそのリクエストにスコープされたサーバー送信イベントストリームのいずれかで応答します。これにより、長い呼び出しは最終結果の前に進行状況を送信できます。以前のSSEトランスポートを使用したHTTPは非推奨です。
現在の改訂版、2026-07-28は、ロードバランサーの背後にサーバーを展開する人にとって重要な方法でトランスポートを変更しました。プロトコルレベルのセッションを削除しました: 初期ハンドシェイクやセッション識別子ヘッダーはもはや存在せず、すべてのリクエストはそのプロトコルバージョンとクライアントの機能を自身のメタデータに持ち、呼び出し間で状態が必要なサーバーは、モデルが引数として返す明示的なハンドルを返します。セッションを使用していた2025-11-25の改訂版に対して書かれたサーバーは、クライアントが古い時代を検出してフォールバックする必要があるため、引き続き機能します。新しいサーバーはセッションを採用すべきではありません。
認証:呼び出しの対象者
HTTPトランスポートの場合、仕様はOAuth 2.1フローを定義しています。サーバーはリソースサーバーであり、認証サーバーを指定する保護されたリソースメタデータ(RFC 9728)を公開する必要があります。トークンなしでリクエストが到着した場合、サーバーは401で応答し、そのメタデータを指すWWW-Authenticateヘッダーを返し、理想的には必要な最小スコープを示します。クライアントは認証サーバーのエンドポイントを発見し、自身を識別します(クライアントIDメタデータドキュメントが推奨されるルートです;動的登録は互換性のために保持されます)、PKCEを使用して認可コードフローを実行し、トークンがこのサーバーのみにバインドされるように、サーバーの標準URIをリソースパラメータとして含める必要があります。サーバーはそのオーディエンスを検証し、他の何かのために発行されたトークンを拒否し、トークンを別のサービスに渡してはなりません。
ERPにとって重要なのはその結果です。トークンが人を識別するため、サーバーは結果を変えることができます。 tools/list リクエストの資格情報によって、仕様は明示的にそう述べています。これが役割ベースのフィルタリングのメカニズムです:ファイナンスユーザーのリストと倉庫ユーザーのリストは同じサーバーから来ており、異なります。実行時にスコープが不十分な場合は、403とクライアントがステップアップできるスコープチャレンジで通知されますが、ほとんどのビジネスシステムにとって実際の境界は粗いOAuthスコープではなく、ERP内の役割です。
難しい部分:権限と取引
上記のすべては、SDKを使用して午後に実装できます。ERP MCPサーバーとデモを分けるのは、プロトコルがサーバーに任せる2つの事柄の取り扱いです:コールが許可されているかどうか、そしてコールが何を意味するかです。
権限は2回確認する必要があります。ツールリストをフィルタリングすることで、モデルが選択すべきでないものを選ぶのを防ぎ、トークンと混乱を節約します。ツールが実行されるときに再度確認することが実際の境界です。クライアントは好きなコールを送信できるためです。拒否はツール実行エラーとして返されるのが最適で、モデルがそれを読み取り報告することができます。これは、ターンを終了させるトランスポートの失敗としてではなく、拒否されたコールがSoisワークスペースからどのように見えるかです:通常の結果、フラグ付き、理由付きです。
{
"jsonrpc": "2.0",
"id": 7,
"result": {
"content": [
{
"type": "text",
"text": "Tool not permitted for this account: approveInvoice requires the finance approver role."
}
],
"isError": true
}
}ツール実行エラーとして返された権限拒否。モデルはその理由を学び、代わりに人に承認を求めることができます;何も書き込まれませんでした。Soisはまた、未承認のセッション、不十分なクレジット、許可されていないツール、予算上限に達した場合のJSON-RPCエラーコードを予約しています。
トランザクションは後半です。ツールは明確な前後を持つ1つのビジネストランザクションにマッピングされるべきです: 請求書を作成する 識別子を持つドラフトを生成し、 支払いを記録 1つの請求書に1つの支払いを適用し、失敗した場合でも半分書かれた状態を残しません。モデルは再試行するため、書き込みは安全に繰り返すことができるか、明確なメッセージで繰り返しを拒否するべきです。仕様の注釈により、サーバーはツールを読み取り専用、冪等、または破壊的として宣言でき、ChatGPTなどのクライアントは確認を求めるかどうかを決定する際にそれらのヒントを使用します。ステップがエージェントの権限を超える決定を必要とする場合、サーバーはクライアントを通じて人に質問をする入力必須の結果を返すことができます。
権限レイヤーはエンドポイントとモジュールの間に位置します。ツールリストは呼び出し元の役割によって外に出る際にフィルタリングされ、すべてのコールはモジュールに到達する前に再度確認されます。
Soisがどのように実装するか
Soisワークスペースは、単一のURLであるMCPサーバーであり、ワークスペースアドレスの後に /api/mcp. It answers the 401 challenge with protected resource metadata, publishes its authorisation server metadata, requires PKCE, and issues tokens scoped to the workspace; a connector in Claude or ChatGPT completes the sign-in with nothing pasted. A bearer token with an API key is available for scripts that do not do OAuth, with identity and spend held in separate credentials on purpose.
ツールリストは、ライブツール定義から生成され、役割とインストールされたアプリによってフィルタリングされます。その後、各呼び出しは実行時に権限チェックされ、失敗した場合は閉じられます。呼び出しは接続ごとにレート制限され、ワークスペースのエージェントが推論を行う場合はメーター制御され、呼び出し元のエージェントが行う場合はAI料金が発生せず、ワークスペースが設定した予算で制限され、入力と結果がそれを行った人に対してログに記録されます。マーケットプレイスに公開されたアプリは、同じルールの下で同じリストにツールを追加するため、開発者のアプリはインストールされた瞬間からエージェントによって操作可能です。
人々が尋ねる質問
MCPサーバーは単にREST APIのラッパーですか?
しばしばそのように実装されており、それは問題ありません。違いは、何を公開するかです:モデルがランタイムで発見できる型付きツール、モデルが読み取り回復できる結果、ユーザーごとのOAuth認可、これらはREST APIが単独でエージェントに提供するものではありません。
今日、どのエージェントがERP MCPサーバーを使用できますか?
Claude(ウェブ、デスクトップ、Cowork、Claude Code、Messages APIコネクタ)、開発者モードのChatGPTおよびResponses API、Cursor、VS Code、プロトコルを実装する他のクライアントが使用できます。サーバーは、どのエージェントが呼び出しているかを知る必要はありません。
サーバーはセッションを保持する必要がありますか?
現在の改訂版では、プロトコルレベルのセッションが削除され、呼び出しを跨ぐすべてのものに対して明示的なハンドルを返すようサーバーに要求しています。クライアントは、古い時代を検出することによって、セッションヘッダーを使用した2025-11-25の改訂版のサーバーと引き続き相互運用します。
ERPはどこで権限を強制しますか?
サーバー内で、実行時に、すべての呼び出しで権限を強制します。ツールリストのフィルタリングはモデルにとっての便利さですが、重要なチェックはツールが実行されるときに行われ、拒否は読み取り可能なツールエラーとして返されるべきであり、何も書き込まれず、モデルがその理由を説明できるようにします。
- モデルコンテキストプロトコル仕様(2026-07-28):ツール ツール定義、結果、エラーハンドリング、注釈、およびリクエストごとのツール/リストのバリエーション
- モデルコンテキストプロトコル仕様:ストリーミングHTTPトランスポートと変更履歴 シングルエンドポイントトランスポート、セッションの削除と後方互換性の排除
- モデルコンテキストプロトコル仕様:認可 OAuth 2.1、保護されたリソースメタデータ、リソースインジケーターおよびトークンルール
- Soisドキュメント:ワークスペースMCPサーバー エンドポイント、発見文書、ロールフィルタリング、制限および実装されたエラーコード
この文書は、記載されている製品が変更される際にレビューされます。次回の予定レビュー: 2026年12月4日.
