mcpField
E
evc-mesh-mcp

evc-mesh-mcp

リモート
github.com/entire-vc生産性1今日更新
リポジトリ

evc-mesh-mcp について

evc-mesh-mcpは、人とAIエージェントが協働するチーム向けに、EVC Meshワークスペースへ接続するMCPサーバーです。タスク調整、引き継ぎ、共有プロジェクトメモリを、選択可能なツールプロファイルで扱えます。

主な機能

  1. 01担当タスクの取得とチェックアウト
  2. 02コメントとワークフロー上のタスク移動
  3. 03チームメンバーへの作業引き継ぎ
  4. 04共有プロジェクトメモリの参照と更新
  5. 05coreまたはfullのツールプロファイル選択

活用シーン

  1. 01エージェントの担当作業を確認
  2. 02他のエージェント向けにプロジェクトの決定事項を記録
  3. 03エージェントからチームメンバーへタスクを引き継ぐ

MCP 対応

Meshワークスペースの操作をMCPクライアントに公開するMCPサーバーです。タスク作業、共有メモリ、コメント、引き継ぎ、ワークスペース管理のツールを備え、stdio、SSE、Streamable HTTPに対応します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mesh.entire.host/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://mesh.entire.host/mcp認証が必要
SSEhttps://mesh.entire.host/mcp/sse認証が必要
パッケージ
ocighcr.io/entire-vc/evc-mesh-mcp:0.1.6
mcpbevc-mesh-mcp-0.1.6.mcpb

ツール

詳細

EVC Mesh MCP サーバー

Spark 経由でインストール

MCP を通じて、人と AI エージェントのチームにタスク、コメント、共有メモリ、引き継ぎを提供します。

EVC Mesh は、人と AI エージェントが隣り合って働くチーム向けに構築されたオープンソースのタスクマネージャーです。この Model Context Protocol サーバーは、エージェントを Mesh ワークスペースに接続します。割り当てられたタスクを受け取り、作業をチェックアウトし、コメントし、ワークフローに沿ってタスクを進め、チームメイトに引き継ぎ、共有プロジェクトメモリに決定事項を記録できます。

ツールプロファイルは 2 種類あります。日常的なタスク作業向けの core(26 個のツール)と、定期タスク、ドキュメント、ワークスペース管理を含む full(69 個のツール)です。すべてのツールに読み取り専用または書き込みのマークが付いているため、クライアントは変更を加える前に確認できます。

Mesh ワークスペースと、そこから発行されるエージェントキーが必要です。Mesh はセルフホスト可能です(Apache-2.0、evc-mesh リポジトリで docker compose を使ってセットアップします)。MESH_API_URL にインスタンスの URL を、MESH_AGENT_KEY にエージェントのキーを設定してください。ホスト型インスタンスのワークスペースは招待制です。

Cursor、Cline、OpenClaw などの MCP クライアントで動作します。

こちらが現在開発中のコピーです。 evc-mesh にも MCP サーバー(./cmd/mcp、同じ internal/mcp ツールセット)が含まれており、ビルドとデプロイは同リポジトリで行われます。この 2 つが存在するのは、Go の internal/ 可視性ルールにより、一方のリポジトリから他方のパッケージをインポートできないためであり、異なる方向に開発することを意図しているからではありません。新しいツールや修正は、まずこちらに反映されます。

前提条件

  • Go 1.22+
  • 稼働中の EVC Mesh インスタンス
  • API キー(agk_...)を使って Mesh に登録されたエージェント

インストール

go install github.com/entire-vc/evc-mesh-mcp@latest

または、ソースからビルドします。

git clone https://github.com/entire-vc/evc-mesh-mcp.git
cd evc-mesh-mcp
go build -o evc-mesh-mcp .
Docker
docker run -i --rm \
  -e MESH_API_URL \
  -e MESH_AGENT_KEY \
  ghcr.io/entire-vc/evc-mesh-mcp

-i が必要です。サーバーは stdio 経由で MCP を通信し、Docker はコンテナが対話モードで実行された場合にのみ stdin を接続するためです。イメージは core プロファイルで起動します。すべてのツールを使うには -e MESH_MCP_PROFILE=full を追加してください(下記のツールプロファイルを参照)。このリポジトリの Dockerfile から、タグ付きリリースのたびに linux/amd64 と linux/arm64 向けのイメージが公開されます(docs/RELEASING.md)。

ツールプロファイル

MCP サーバーは、コンテキストウィンドウの使用量を最適化するために 2 種類のプロファイルをサポートしています。

プロファイルツール数コンテキストのオーバーヘッド最適な用途
core26約 8K トークン(200K の 4%)Claude Code、Cursor、コンテキストの小さいモデル
full69約 18K トークン(200K の 9%)パワーユーザー、自動化エージェント、管理操作

MESH_MCP_PROFILE 環境変数で設定します。デフォルトは、バイナリでは full、Docker イメージでは core です(-e MESH_MCP_PROFILE=full で切り替えられます)。

Configuration

変数必須デフォルト説明
MESH_API_URLはいhttp://localhost:8005Mesh API のベース URL
MESH_AGENT_KEYはい(stdio)—エージェント API キー(agk_...)
MESH_MCP_PROFILEいいえfull(Docker イメージ:core)stdio 用のツールプロファイル:core または full(SSE では両方を提供します)
MESH_MCP_TRANSPORTいいえstdioトランスポートモード:stdio または sse
MESH_MCP_HOSTいいえ0.0.0.0SSE サーバーのバインド先ホスト
MESH_MCP_PORTいいえ8081SSE サーバーのバインド先ポート
MESH_MCP_AUTH_FAIL_RPMいいえ20SSE モード:/sse、/core/sse、/mcp、/mcp/core への、まだキャッシュされていないエージェントキーを使った認証試行の IP ごとの上限です。上限を超えると、Mesh API を呼び出さずに 429 を返します。0 にすると無効になります。
MESH_MCP_SESSION_CACHE_TTL_MINいいえ15SSE モード:認証成功後、キーを再確認するまでの信頼期間です。再起動せずに、取り消されたキーが有効であり続ける時間を制限します。
MESH_MCP_AUTH_FAIL_CACHE_SECいいえ30SSE モード:認証失敗(無効または不明なキー)を記憶する時間です。同じ無効なキーが繰り返されても、リクエストのたびに Mesh API を呼び出さないようにします。
MESH_MCP_PUBLIC_URLいいえ—SSE モード:外部から MCP のルートにアクセスするための URL(例:https://mesh.example.com/mcp)です。絶対 URL の SSE エンドポイントと OAuth リソース URL に使用されます(OAuth を参照)。未設定の場合、各リクエストのホストから導出します。これはクライアントがこのサーバーに直接アクセスする場合にのみ正しく機能します。プロキシの背後にある場合は設定してください。そうしないと、導出された core URL(/core)が公開 URL(/mcp/core)と一致しません。
MESH_MCP_OAUTH_ISSUERいいえMESH_MCP_PUBLIC_URL のオリジンSSE モード:保護されたリソースのメタデータに記載する OAuth 認可サーバー、つまり Mesh インスタンスの公開オリジンです。MCP サーバーが Mesh API と異なるオリジンから提供される場合にのみ設定してください。
MESH_MCP_OAUTH_CACHE_TTL_SECいいえ60SSE モード:検証済み OAuth アクセストークンを信頼する時間です。その後、Mesh API に再確認します。取り消された許可が約 1 分以内に無効になるよう、エージェントキーの TTL より大幅に短く設定されています。
MESH_MCP_DECIDER_USERNAMEいいえ—ゲート付きタスクに record_owner_decision が回答したとき、decided_by として記録されるユーザー名です。未設定の場合はワークスペースのオーナーになります。
MESH_MCP_LEGACY_TOOL_ALIASESいいえoff1 にすると、以前のツール名も登録します。呼び出し元が引き続き以前の名前を使用するデプロイ向けです。新規インストールではオフのままにしてください。
認証情報なしでの実行

stdio モードでは、MESH_AGENT_KEY が設定されていなくてもサーバーは起動します。その場合も通常どおり initialize と tools/list に応答し、すべてのツール呼び出しで MESH_API_URL と MESH_AGENT_KEY の設定方法を案内します。これにより、キーを取得する前に MCP クライアントやカタログからツール一覧を確認できます。キーが設定されていても起動時に認証が失敗した場合(API に到達できない、キーが拒否されるなど)、サーバーは実行を継続します。ツール一覧は表示され、各呼び出しで認証を再試行し、成功するまで理由を返します。

ツールアノテーション

すべてのツールで、MCP ヒントの readOnlyHint、destructiveHint、idempotentHint、openWorldHint を宣言しています。これにより、クライアントは読み取り専用のツール(get_*、list_*、recall、search_docs、…)と、データを変更または削除するツール(update_*、move_task、forget、…)を見分けられます。

クライアントのメトリクス

各 initialize は、クライアントの clientInfo.name とバージョンとともにログに記録され、Prometheus メトリクス mesh_mcp_initialize_total{client,profile} にカウントされます(SSE モードでは /metrics で公開されます。クライアント名は正規化され、長さが制限されます)。

Claude Code(stdio モード)

プロジェクトの .mcp.json に追加します。

{
  "mcpServers": {
    "evc-mesh": {
      "command": "evc-mesh-mcp",
      "env": {
        "MESH_API_URL": "https://your-mesh-instance.example.com",
        "MESH_AGENT_KEY": "agk_your-workspace_your-key",
        "MESH_MCP_PROFILE": "core"
      }
    }
  }
}
Cursor

Cursor の MCP 設定(Settings → MCP Servers)に追加します。

{
  "evc-mesh": {
    "command": "evc-mesh-mcp",
    "env": {
      "MESH_API_URL": "https://your-mesh-instance.example.com",
      "MESH_AGENT_KEY": "agk_your-workspace_your-key",
      "MESH_MCP_PROFILE": "core"
    }
  }
}
SSE モード(マルチエージェント、共有サーバー)

共有 MCP エンドポイントを介して複数のエージェントを接続する場合:

MESH_API_URL=https://your-mesh-instance.example.com \
MESH_MCP_PORT=8081 \
evc-mesh-mcp --transport sse

SSE モードでは、異なるパスで2 つのプロファイルを同時に提供します。

パスプロファイル説明
/sse + /messagefull69 個のツールすべて(後方互換性あり)
/core/sse + /core/messagecore必須ツール 26 個

同じプロセスでは、Streamable HTTP トランスポートも提供します(ステートレスで、リクエストごとに 1 つのエージェントキーを指定し、Authorization: Bearer または X-Agent-Key ヘッダーで送信します。クエリパラメーターは使用できません)。

パスプロファイル
/mcpfull
/corecore

接続ごとの認証方法:

  • Authorization: Bearer agk_... ヘッダー
  • X-Agent-Key: agk_... ヘッダー
  • ?agent_key=agk_... クエリパラメーター(SSE 接続のみ)
  • Authorization: Bearer mot_... — Mesh インスタンスが発行した OAuth アクセストークン(後述)。ヘッダーのみで、クエリ文字列では使用できません。また、Streamable HTTP エンドポイントでのみ使用できます(SSE 接続にはエージェントキーが必要です)。
OAuth(リモートコネクター)

OAuth でユーザーをサインインさせるクライアント(リモートコネクターディレクトリ、MCP Inspector、MCP 認可仕様に準拠したエディター)は、事前共有キーなしで Streamable HTTP エンドポイントに接続できます。Mesh インスタンスが認可サーバーとして 機能し(動的クライアント登録、PKCE、ユーザーの同意)、このサーバーがリソースサーバーとなって、次の 2 つを行います。

  • チャレンジを返します。 認証情報がないリクエスト、または OAuth アクセストークンを Mesh API が拒否した場合(期限切れ、失効済み、未発行)、401 を返し、

    WWW-Authenticate: Bearer resource_metadata="https://mesh.example.com/.well-known/oauth-protected-resource/mcp", scope="mesh"
    

    ここからクライアントは認可フローを開始します。拒否されたエージェントキーには、引き続き 403 を返します。トークンが無効であると判断するのは、Mesh API がその旨を返した場合(408/429 以外の 4xx)に限られます。Mesh API に接続できない場合や、トークンの有効性について何も示さないエラー(5xx、429)が返された場合は、 Retry-After を付けて 503 を返すため、障害によって有効なトークンが破棄されることはありません。

  • メタデータを提供します(RFC 9728)。 各エンドポイントの URL から導出したウェルノウンパスで提供します。

    エンドポイントメタデータ
    https://mesh.example.com/mcp(full)/.well-known/oauth-protected-resource/mcp
    https://mesh.example.com/mcp/core(core)/.well-known/oauth-protected-resource/mcp/core
    {
      "resource": "https://mesh.example.com/mcp",
      "authorization_servers": ["https://mesh.example.com"],
      "scopes_supported": ["mesh"],
      "bearer_methods_supported": ["header"]
    }
    

    resource は MESH_MCP_PUBLIC_URL です(末尾のスラッシュ、クエリ、フラグメントを削除し、core プロファイルでは /core を追加します)。そのため、ユーザーがクライアントに入力する URL を設定してください。 認可サーバーの既定値はその URL のオリジンです。MESH_MCP_OAUTH_ISSUER で変更できます。

OAuth トークンは、ユーザーがアクセスを許可したときに選択したワークスペース内で、そのユーザーの権限を持つコネクターエージェントとして機能します。使用できるツールと権限モデルは、エージェントキーの場合と同じです。検証済みトークンは 1 分間キャッシュされます(MESH_MCP_OAUTH_CACHE_TTL_SEC)。IP ごとの上限(MESH_MCP_AUTH_FAIL_RPM)が消費されるのは拒否されたトークンであり、検証では消費されません。そのため、同じアドレスを共有する多数のユーザーが、自身のトークン更新によって制限されることはありません。トークンはオーディエンスにバインドされません。Mesh インスタンスが発行した有効なアクセストークンであれば受け入れられます。これは、認可サーバーとこのサーバーが同じデプロイに属する場合を想定した動作です。Authorization または X-Agent-Key のエージェントキー(agk_...)は従来どおり使用でき、stdio モードにも影響しません。

リバースプロキシでは、/.well-known/oauth-protected-resource* をウェブアプリの キャッチオールではなく、このサーバーに転送する必要があります。シングルページアプリは、不明なすべてのパスに 200 text/html で応答するため、クライアントはそれをメタデータが存在しない場合と区別できません。

Agent Context Protocol(ACP)

セッション開始時に、次の 5 つの手順を順番に実行してください。

1. heartbeat(status="online")              → register as alive
2. get_project_knowledge(project_id)       → load accumulated decisions & conventions
3. get_my_rules(project_id)                → understand constraints
4. get_context(project_id)                 → see recent activity + project knowledge
5. get_my_tasks()                          → check assigned work

セッション終了時:

publish_event(type="summary", memory={persist: true})  → broadcast + persist
session_report(model, tokens_in, tokens_out)           → report metrics

MCP ツール — Core プロファイル(26)

ACP とアイデンティティ
ツール説明
heartbeatハートビートを送信します。セッション開始時に status=online で呼び出してください。レスポンスには mesh_version(実行中のバイナリのビルドの git-SHA、またはピン留めされていないローカルビルドの場合は "dev")が含まれます。ホストでシェルコマンドを実行せずに、修正がインストール済みバイナリに実際に反映されたかを手軽に確認できます。
get_project_knowledge永続的なナレッジ(決定事項、規約)をすべて取得します。ACP ステップ 2
get_my_rulesすべてのガバナンスルール(ワークフローと割り当て)を取得します。ACP ステップ 3
get_context最近のアクティビティとプロジェクトのナレッジを取得します。ACP ステップ 4
get_my_tasks完全な説明と、任意の損失のない条件付きレスポンスを含む、割り当て済みタスクを取得します。ACP ステップ 5
タスク管理
ツール説明
list_projectsワークスペースのプロジェクトを一覧表示します
list_tasksフィルター(ステータス、優先度、担当者、検索)を指定してタスクを一覧表示します
get_task任意でコメント、成果物、依存関係を含めてタスクの詳細を取得します
create_task新しいタスクを作成します
update_taskタスクのフィールドを更新します
move_taskスラッグを使ってタスクのステータスを変更します
assign_taskタスクを割り当てる、または割り当てを解除します
get_task_context1 回の呼び出しですべてのタスク情報を取得します
add_vcs_linkタスクをプルリクエスト、コミット、またはブランチにリンクします
コミュニケーション
ツール説明
add_commentタスクにコメントを追加します(Markdown)。レスポンスには @ メンションごとの delivery 配列が含まれ、タスクキューや通知を通じて実際に相手に届いたか、またはスキップ・失敗したかとその理由を示します
publish_eventイベントを公開し、任意で永続化用のメモリーヒントを追加します
メモリー
ツール説明
recallキーワードでメモリーを検索します(デフォルトではコンパクト表示で、各項目の内容は約 300 文字です。すべてを省略せずに取得するには full=true を指定します)
get_memory正確なキーを指定して、1 件のメモリーの全文を取得します
rememberナレッジを保存します(キーに基づいて UPSERT)
forgetメモリーエントリーを削除します
recall_with_graphメモリーを検索し、ナレッジグラフを通じて結果を拡張します
set_project_knowledge構造化されたプロジェクト情報をキーに基づいて書き込みます(upsert)
get_canonical_updates指定した時刻以降に記録された正規の決定事項を取得します
record_owner_decisionワークスペースのオーナーによる決定を、正規のプロジェクトナレッジとして記録します
recall が結果について保証すること

limit は厳格な上限です。 レスポンスに含まれる項目数が limit を超えることはなく、total は常に実際に返された項目数と一致します。ページのサイズが決まった後に項目が追加されることはありません。ピン留めされた行も、グラフ展開された近傍も追加されません。

scope/tags/tags_any の条件を満たさない行は除外され、条件を満たさないことを示す印を付けて返されることもありません。 これは、通常の検索、ピン留め、グラフ展開のいずれで結果に含まれた行にも当てはまります。ピン留めされた行は ランキング の対象外になるだけで、適格性 の対象外にはなりません。つまり「ピン留め」とは「ランキングによって埋もれないようにする」という意味であり、「異なるスコープを指定した呼び出し元にも表示する」という意味ではありません。

グラフの近傍には印が付き、件数にも上限があります。 RECALL_GRAPH_ENABLED=true の場合、recall はナレッジグラフの展開も実行し、hop > 0 の近傍を取り込みます。各項目には graph_boost: true と provenance: via:graph が付与されます。近傍がページ内で占めるのは最大でも limit/4 で(limit >= 2 では最低 1 件、limit < 2 では 0 件)、ページの末尾の枠を使います。末尾に追加されるのではなく、検索結果の中で最も順位の低い項目と入れ替わります。展開によって利用可能な項目が返されなかった場合、ページはベース結果と完全に一致します。この予約枠は上限であり、割り当て数ではありません。graph_boost_count は実際に使われた枠数を示します。

予約枠を設けているのは、ベースの検索結果には score(検索方式ごとの RRF)が付与され、近傍には別の探索から得られる composite_score が付与されるためです。これらは異なるフィールドで、尺度も異なります。共通のキーで両者を並べ替えても、バランスは取れません。実際には、観測されたすべての近傍の順位がベースの検索結果より低くなるため、単純なマージソートではグラフブーストが気付かないうちに無効になります。この予約枠により、そのトレードオフを明示し、調整可能にしています。

プリセットが指定を上書きすることはありません。 recall はクエリを分類し、プロファイルを適用する場合があります(例:複数セッションの場合はページを広げます)。プロファイルが補完するのは、指定されていないパラメーターだけです。明示的に指定した limit が常に優先されます。

ユーティリティ
ツール説明
report_errorタスクのエラーを報告します
session_reportセッションのメトリクス(モデル、トークン、コスト)を報告します

MCP ツール — フルプロファイル(43 個追加、合計 69 個)

追加のタスクツール
ツール説明
get_projectステータスとカスタムフィールドを含むプロジェクトの詳細を取得します
create_subtask親の下にサブタスクを作成します(status_slug は任意です。省略した場合は親のステータスではなく、プロジェクトのデフォルトステータスになります)
add_dependencyタスク間の依存関係を追加します。任意の condition(task_done、access_ready、contract_ready、artifact_published、shipped、deployed、accepted)で、blocks エッジが何を待つかを指定します
update_dependency既存の依存関係エッジに condition/evidence_url を設定します。task_done 以外のエッジに証拠を設定すると、ブロッカーが完了していなくても依存先が解放されます
mark_vcs_deployedPR リンクにデプロイ(sha、env)を記録します。deployed_sha/deployed_env/deployed_at を設定し、deployed エッジで待機している依存先を解放します
remove_dependency依存関係エッジを削除します(task_id はブロックされているタスク、depends_on_task_id はブロッカーです。reason は必須で、ログに記録されます)
checkout_taskマルチエージェント連携のためのアトミックなタスクロックを取得します
release_taskアトミックなタスクロックを解放します
extend_checkout実行時間の長い作業のため、既存のタスクロックを延長します
set_human_gate記録された質問に指定の担当者が回答するまでタスクを凍結します(addressee には担当者を指定する必要があります。supersedes と canonical_key は、回答済みの質問が繰り返された場合に使用します)
clear_human_gateヒューマンゲートを解除します
コメントとアーティファクト
ツール説明
list_commentsタスクのコメントを一覧表示します(デフォルトでは新しい順)
upload_artifactファイル/コード/ログをタスクにアップロードします
list_artifactsタスクのアーティファクトを一覧表示します
get_artifactアーティファクトの詳細を取得します(download_path。バイトデータは以下の 2 段階ダウンロードで取得します)
アーティファクトのダウンロード

アーティファクトのダウンロードには、GET リクエストを 2 回行います。手順 1:ヘッダー X-Agent-Key: <your agent key> を付けて GET /api/v1/artifacts//download をリクエストすると、200 と {"url": "<presigned URL>"} の JSON が返ります。手順 2:その URL にヘッダーを一切付けずに GET をリクエストすると、200 とファイルのバイト列が返ります。注意点:手順 1 で受け付けられるのは X-Agent-Key のみです(X-API-Key と Authorization: Bearer では 401 が返ります)。手順 2 では、特に Authorization を含め、余分なヘッダーを付けると署名付き URL の署名が無効になり、400 が返ります。アーティファクトの download_path は手順 1 のパスです。browser_only_url は人間向けのページであり、エージェントキーに対して意図的に 401 を返します。

イベントバス
ツール説明
publish_summary作業の概要を公開します(便利なラッパー)
subscribe_eventsイベントの Webhook 配信を設定します
poll_tasks新しいタスクの割り当てをロングポーリングします
エージェントとチーム
ツール説明
register_sub_agentサブエージェントを登録します
list_sub_agentsサブエージェントを一覧表示します(再帰的な表示も可能)
get_team_directoryワークスペースのチームディレクトリを取得します
update_agent_profileエージェントの役割、機能、プロフィールを更新します
ガバナンスと設定
ツール説明
get_project_rulesすべてのプロジェクトルールを取得します
get_assignment_rules割り当てルールを取得します
get_workflow_rules呼び出し元の権限に応じたワークフロールールを取得します
import_workspace_configYAML からワークスペース設定をインポートします
export_workspace_configワークスペース設定を YAML としてエクスポートします
定期タスク
ツール説明
create_recurring_task定期タスクのスケジュールを作成します
list_recurring_schedules定期スケジュールを一覧表示します
get_recurring_historyスケジュールのインスタンス履歴を取得します
trigger_recurring_now次のインスタンスをただちに実行します
update_recurring_schedule定期スケジュールを変更または無効化します
delete_recurring_schedule定期スケジュールを削除します(既存のインスタンスは残ります)
ドキュメントとナレッジ
ツール説明
list_docsプロジェクトのドキュメントを一覧表示します(メタデータのみ)
get_docドキュメントを読み取ります(デフォルトではアウトラインを返し、要求に応じて本文も返します)
search_docsプロジェクトのドキュメントを全文検索します
create_docドキュメントを作成します
update_docドキュメントを編集します(base_version を使用した楽観的同時実行制御)
comment_docドキュメントまたは引用箇所にコメントします
list_doc_commentsドキュメントのコメントスレッドを読み取ります
post_project_updateプロジェクトの日次状況レポートを Updates セクションに投稿します
get_project_updatesプロジェクトの Updates フィードを新しい順に読み取ります
get_canonicalトピックに関する厳選された事実と決定事項を照会します

アーキテクチャ

AI Agent (Claude Code / Cursor / Cline / OpenClaw)
    ↕ MCP (stdio or SSE)
EVC Mesh MCP Server (core or full profile)
    ↕ REST API (HTTP)
EVC Mesh API Server
    ↕
PostgreSQL / Redis / NATS / S3

MCP サーバーは軽量なプロキシです。MCP ツール呼び出しを REST API リクエストに変換します。データベースに直接アクセスする必要はありません。

共有 HTTP サーバーの実行

複数のエージェントに 1 つのプロセスからサービスを提供するには、Mesh API の隣でサーバーを SSE モードで実行します (同じイメージを使用できます:docker run -e MESH_MCP_TRANSPORT=sse -e MESH_API_URL=... -p 8081:8081 ghcr.io/entire-vc/evc-mesh-mcp)。そして、 リバースプロキシの背後に配置します。SSE(/sse、/core/sse)と Streamable HTTP(/mcp、/core)の両方を公開し、各接続またはリクエストは それぞれのエージェントキーで認証されます。サーバー自体はデータベースを持ちません。 Mesh REST API を呼び出すため、接続先の Mesh API をアップグレードした後に、このサーバーもアップグレードしてください。

heartbeat ツールは、実行中のバイナリのビルド元コミットである mesh_version を返します。また、--version でも確認できます。

スキルとプラグインの構成

このリポジトリはOpen Pluginsの構成に従っています。plugin.json(マニフェスト)、mcp.json / .mcp.json(stdio サーバー設定。値は環境から取得します)、およびskills/で構成されています。

スキル目的
mesh-tasksセッション開始プロトコル、タスクの取得・更新・終了
mesh-memoryremember / recall / forgetの規約
mesh-coordinationチームディレクトリ、ロック、イベント、引き継ぎ(フルプロファイル)

このサーバーが公開するのはツールのみです。MCP プロンプトやリソースは定義しません。

関連項目

ほかのディレクトリでもご覧いただけます

MCP Badge Glama Smithery

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。