evc-mesh-mcp について
evc-mesh-mcpは、人とAIエージェントが協働するチーム向けに、EVC Meshワークスペースへ接続するMCPサーバーです。タスク調整、引き継ぎ、共有プロジェクトメモリを、選択可能なツールプロファイルで扱えます。
主な機能
- 01担当タスクの取得とチェックアウト
- 02コメントとワークフロー上のタスク移動
- 03チームメンバーへの作業引き継ぎ
- 04共有プロジェクトメモリの参照と更新
- 05coreまたはfullのツールプロファイル選択
活用シーン
- 01エージェントの担当作業を確認
- 02他のエージェント向けにプロジェクトの決定事項を記録
- 03エージェントからチームメンバーへタスクを引き継ぐ
MCP 対応
Meshワークスペースの操作をMCPクライアントに公開するMCPサーバーです。タスク作業、共有メモリ、コメント、引き継ぎ、ワークスペース管理のツールを備え、stdio、SSE、Streamable HTTPに対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mesh.entire.host/mcpclaude mcp add --transport http entire-vc-evc-mesh https://mesh.entire.host/mcp{"mcpServers":{"entire-vc-evc-mesh":{"type":"http","url":"https://mesh.entire.host/mcp"}}}Cursor で開く{"servers":{"entire-vc-evc-mesh":{"type":"http","url":"https://mesh.entire.host/mcp"}}}VS Code で開く{"mcpServers":{"entire-vc-evc-mesh":{"type":"http","url":"https://mesh.entire.host/mcp"}}}{"mcpServers":{"entire-vc-evc-mesh":{"serverUrl":"https://mesh.entire.host/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mesh.entire.host/mcp認証が必要https://mesh.entire.host/mcp/sse認証が必要ツール
詳細
EVC Mesh MCP サーバー
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 種類のプロファイルをサポートしています。
| プロファイル | ツール数 | コンテキストのオーバーヘッド | 最適な用途 |
|---|---|---|---|
| core | 26 | 約 8K トークン(200K の 4%) | Claude Code、Cursor、コンテキストの小さいモデル |
| full | 69 | 約 18K トークン(200K の 9%) | パワーユーザー、自動化エージェント、管理操作 |
MESH_MCP_PROFILE 環境変数で設定します。デフォルトは、バイナリでは full、Docker イメージでは core です(-e MESH_MCP_PROFILE=full で切り替えられます)。
Configuration
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
MESH_API_URL | はい | http://localhost:8005 | Mesh 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.0 | SSE サーバーのバインド先ホスト |
MESH_MCP_PORT | いいえ | 8081 | SSE サーバーのバインド先ポート |
MESH_MCP_AUTH_FAIL_RPM | いいえ | 20 | SSE モード:/sse、/core/sse、/mcp、/mcp/core への、まだキャッシュされていないエージェントキーを使った認証試行の IP ごとの上限です。上限を超えると、Mesh API を呼び出さずに 429 を返します。0 にすると無効になります。 |
MESH_MCP_SESSION_CACHE_TTL_MIN | いいえ | 15 | SSE モード:認証成功後、キーを再確認するまでの信頼期間です。再起動せずに、取り消されたキーが有効であり続ける時間を制限します。 |
MESH_MCP_AUTH_FAIL_CACHE_SEC | いいえ | 30 | SSE モード:認証失敗(無効または不明なキー)を記憶する時間です。同じ無効なキーが繰り返されても、リクエストのたびに 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 | いいえ | 60 | SSE モード:検証済み OAuth アクセストークンを信頼する時間です。その後、Mesh API に再確認します。取り消された許可が約 1 分以内に無効になるよう、エージェントキーの TTL より大幅に短く設定されています。 |
MESH_MCP_DECIDER_USERNAME | いいえ | — | ゲート付きタスクに record_owner_decision が回答したとき、decided_by として記録されるユーザー名です。未設定の場合はワークスペースのオーナーになります。 |
MESH_MCP_LEGACY_TOOL_ALIASES | いいえ | off | 1 にすると、以前のツール名も登録します。呼び出し元が引き続き以前の名前を使用するデプロイ向けです。新規インストールではオフのままにしてください。 |
認証情報なしでの実行
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 + /message | full | 69 個のツールすべて(後方互換性あり) |
/core/sse + /core/message | core | 必須ツール 26 個 |
同じプロセスでは、Streamable HTTP トランスポートも提供します(ステートレスで、リクエストごとに 1 つのエージェントキーを指定し、Authorization: Bearer または X-Agent-Key ヘッダーで送信します。クエリパラメーターは使用できません)。
| パス | プロファイル |
|---|---|
/mcp | full |
/core | core |
接続ごとの認証方法:
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/mcphttps://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_context | 1 回の呼び出しですべてのタスク情報を取得します |
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_deployed | PR リンクにデプロイ(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_config | YAML からワークスペース設定をインポートします |
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-memory | remember / recall / forgetの規約 |
mesh-coordination | チームディレクトリ、ロック、イベント、引き継ぎ(フルプロファイル) |
このサーバーが公開するのはツールのみです。MCP プロンプトやリソースは定義しません。
関連項目
- evc-mesh — コアプラットフォーム(API + Web UI)
- evc-mesh-openclaw-skill — OpenClaw スキル(bash スクリプト)
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。