Evc Mesh MCP
概览
作者提供的说明(英文原文)
Tasks, comments, shared memory and handoffs for teams of people and AI agents, over MCP.
PopNx MCP 的三大支柱
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
- 用户评价i暂无评价评价功能将在后续阶段与账户功能一起开放
- 我们的基础检查i3 项中通过 3 项依据公开信息检查;尚未扫描代码
- 使用情况i非常新★ –
它能帮你做什么
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
- 连接方式: 电脑或云端
- 传输方式: stdio, Streamable HTTP, SSE
- 分类: 搜索与 AI 记忆
- 你需要填写:MESH_API_URL, MESH_AGENT_KEY, X-Agent-Key
安装
选择你使用的 AI 应用,然后复制设置。
安装之前
- 基础检查:3 项中通过 3 项
- 在作者的服务器上运行:你向它提出的内容会经过他们的服务器。
- 需要你自己填写:
MESH_API_URL,MESH_AGENT_KEY,MESH_MCP_PROFILE,X-Agent-Key
标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
或者在你的电脑上运行
链接指向作者自己的文件;我们不托管也不重新打包它。打开文件后,Claude Desktop 会进行安装。
在终端中运行这条命令
claude mcp add --transport http evc-mesh https://mesh.entire.host/mcp --header 'X-Agent-Key: your-value'或者在你的电脑上运行
claude mcp add evc-mesh --env MESH_API_URL=your-value --env MESH_AGENT_KEY=your-value --env MESH_MCP_PROFILE=your-value -- docker run -i --rm -e MESH_API_URL -e MESH_AGENT_KEY -e MESH_MCP_PROFILE ghcr.io/entire-vc/evc-mesh-mcp:0.1.6运行前请先填写空着的值。
或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"evc-mesh": {
"url": "https://mesh.entire.host/mcp",
"headers": {
"X-Agent-Key": "your-value"
}
}
}
}或者在你的电脑上运行
或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"evc-mesh": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MESH_API_URL",
"-e",
"MESH_AGENT_KEY",
"-e",
"MESH_MCP_PROFILE",
"ghcr.io/entire-vc/evc-mesh-mcp:0.1.6"
],
"env": {
"MESH_API_URL": "your-value",
"MESH_AGENT_KEY": "your-value",
"MESH_MCP_PROFILE": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"evc-mesh": {
"type": "http",
"url": "https://mesh.entire.host/mcp",
"headers": {
"X-Agent-Key": "your-value"
}
}
}
}或者在你的电脑上运行
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"evc-mesh": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MESH_API_URL",
"-e",
"MESH_AGENT_KEY",
"-e",
"MESH_MCP_PROFILE",
"ghcr.io/entire-vc/evc-mesh-mcp:0.1.6"
],
"env": {
"MESH_API_URL": "your-value",
"MESH_AGENT_KEY": "your-value",
"MESH_MCP_PROFILE": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
你的选择通过 Cookie 保存在这台设备上,无需账户。
需要你填写的值
- Base URL of your Mesh instance, e.g. https://mesh.example.com
- Agent API key issued by Mesh (agk_...)
MESH_MCP_PROFILEenvTool profile: core (26 tools, lower context overhead) or full (69 tools). The container image defaults to core.X-Agent-Key机密 必填 HTTP headerAgent API key issued by Mesh (agk_...)
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它能做什么
服务器要求先登录,才会列出它的工具。
基础检查i
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日
- ✓ 通过
作者与仓库一致
注册名称已通过 GitHub 账户 entire-vc 验证,该账户拥有此仓库
- … 尚未检查
仍在维护
我们还没有从 GitHub 读取这个仓库
- … 尚未检查
有许可证
我们还没有从 GitHub 读取这个仓库
- ✓ 通过
端点有响应
在 1231 毫秒内响应(HTTP 401)
- ✓ 通过
使用 OAuth 登录
声明支持 OAuth 登录,你的 AI 应用可以带你去登录
- … 尚未检查
工具描述中没有隐藏指令
尚未检查;我们会在检查端点时读取工具列表
与“搜索与 AI 记忆”中的其他服务器比较i
- 星标数多于此分类中其他 5767 个服务器的 0%
- 发布到注册中心的时间比此分类中其他 5767 个服务器的 72% 更新
- 基础检查结果等于或优于此分类中其他 5767 个服务器的 100%
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
常见问题
Evc Mesh MCP 安全吗?
它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
它需要哪些密钥或代码?
你需要填写:MESH_API_URL, MESH_AGENT_KEY, X-Agent-Key
它在我的电脑上运行还是在云端?
两种方式都可以:安装在你的电脑上,或者连接云端版本。
它还在维护吗?
GitHub 仓库最后更新于–,最新版本(0.1.6)于14天前进入注册中心。
哪些应用可以使用它?
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
有什么可以替代它?
同一分类中有:Context7, Codebase Memory, Exa
替代选择
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者的 README
打开 README
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
EVC Mesh MCP Server
Tasks, comments, shared memory and handoffs for teams of people and AI agents, over MCP.
EVC Mesh is an open-source task manager built for teams where people and AI agents work side by side. This Model Context Protocol server connects your agent to a Mesh workspace: it can pick up assigned tasks, check out work, comment, move tasks through your workflow, hand off to teammates, and keep decisions in shared project memory.
Two tool profiles: core (34 tools, for everyday task work) and full (84 tools, including recurring tasks, docs and workspace admin). Every tool is marked read-only or write, so clients can ask before changing anything.
You need a Mesh workspace and an agent key from it. Mesh is self-hosted (Apache-2.0, docker compose setup in the evc-mesh repository). Set MESH_API_URL to your instance and MESH_AGENT_KEY to the agent's key. Workspaces on the hosted instance are by invitation.
Works with Cursor, Cline, OpenClaw and other MCP clients.
This is the actively developed copy. evc-mesh also ships an MCP server (./cmd/mcp, same internal/mcp tool set) that it builds and deploys itself — the two exist because Go's internal/ visibility rules mean one repo can't import the other's package, not because they're meant to diverge. New tools and fixes land here first.
Prerequisites
- Go 1.22+
- Running EVC Mesh instance
- Agent registered in Mesh with an API key (
agk_...)
Installation
go install github.com/entire-vc/evc-mesh-mcp@latest
Or build from source:
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 is required — the server speaks MCP over stdio, and Docker only wires up stdin when the container runs interactively. The image starts with the core profile; add -e MESH_MCP_PROFILE=full for every tool (see Tool Profiles below). The image is published for linux/amd64 and linux/arm64 from Dockerfile in this repo on every tagged release (docs/RELEASING.md).
Tool Profiles
The MCP server supports two profiles to optimize context window usage:
| Profile | Tools | Context overhead | Best for |
|---|---|---|---|
| core | 34 | ~8K tokens (4% of 200K) | Claude Code, Cursor, small-context models |
| full | 84 | ~18K tokens (9% of 200K) | Power users, automation agents, admin ops |
Set via MESH_MCP_PROFILE environment variable. Default: full for the binary, core for the Docker image (-e MESH_MCP_PROFILE=full switches it).
Configuration
| Variable | Required | Default | Description |
|---|---|---|---|
MESH_API_URL | Yes | http://localhost:8005 | Base URL of the Mesh API |
MESH_AGENT_KEY | Yes (stdio) | — | Agent API key (agk_...) |
MESH_CHAT_TOKEN_FILE | No | — | Stdio chat mode: path to a file holding a chat-session token (cst_...), sent as Authorization: Bearer and re-read on every request. Replaces MESH_AGENT_KEY; if both are set the agent key is ignored. |
MESH_MCP_PROFILE | No | full (Docker image: core) | Tool profile for stdio: core or full (SSE serves both) |
MESH_MCP_TRANSPORT | No | stdio | Transport mode: stdio or sse |
MESH_MCP_HOST | No | 0.0.0.0 | SSE server bind host |
MESH_MCP_PORT | No | 8081 | SSE server bind port |
MESH_MCP_AUTH_FAIL_RPM | No | 20 | SSE mode: per-IP budget for authentication attempts against a not-yet-cached agent key on /sse, /core/sse, /mcp, /mcp/core. Over budget → 429 without calling Mesh API. 0 disables. |
MESH_MCP_SESSION_CACHE_TTL_MIN | No | 15 | SSE mode: how long a successful authentication is trusted before the key is re-checked — bounds how long a revoked key keeps working without a restart. |
MESH_MCP_AUTH_FAIL_CACHE_SEC | No | 30 | SSE mode: how long a failed authentication (bad/unknown key) is remembered, so repeating the same bad key doesn't call Mesh API every request. |
MESH_MCP_PUBLIC_URL | No | — | SSE mode: the URL the MCP root is reachable at from outside, e.g. https://mesh.example.com/mcp. Used for the absolute SSE endpoint and as the OAuth resource URL (see OAuth). Unset: derived from each request's host, which is only right when clients reach this server directly — behind a proxy set it, or the derived core URL (/core) will not match the public one (/mcp/core). |
MESH_MCP_OAUTH_ISSUER | No | origin of MESH_MCP_PUBLIC_URL | SSE mode: the OAuth authorization server named in the protected-resource metadata — your Mesh instance's public origin. Set it only if the MCP server is served from a different origin than the Mesh API. |
MESH_MCP_OAUTH_CACHE_TTL_SEC | No | 60 | SSE mode: how long a verified OAuth access token is trusted before Mesh API is asked again. Deliberately much shorter than the agent-key TTL so a revoked grant stops working within about a minute. |
MESH_MCP_DECIDER_USERNAME | No | — | Username recorded as decided_by when record_owner_decision answers a gated task. Unset: the workspace owner. |
MESH_MCP_LEGACY_TOOL_ALIASES | No | off | 1 also registers the tools' earlier names, for deployments whose callers still use them. Leave off for new installs. |
Running without credentials
In stdio mode the server also starts when MESH_AGENT_KEY is not set. It then answers initialize and tools/list as usual, and every tool call returns instructions for setting MESH_API_URL and MESH_AGENT_KEY. This lets MCP clients and catalogs inspect the tool list before you have a key. If a key is set but authentication fails at startup (API unreachable, key rejected), the server keeps running: tools are listed, and each call retries authentication and returns the reason until it succeeds.
Tool annotations
Every tool declares the MCP hints readOnlyHint, destructiveHint, idempotentHint and openWorldHint, so clients can tell read-only tools (get_*, list_*, recall, search_docs, …) from ones that change or remove data (update_*, move_task, forget, …).
Client metrics
Each initialize is logged with the client's clientInfo.name and version, and counted in the Prometheus metric mesh_mcp_initialize_total{client,profile} (exposed on /metrics in SSE mode; client names are normalised and capped).
Claude Code (stdio mode)
Add to your project's .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
Add to Cursor MCP settings (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 Mode (multi-agent, shared server)
For connecting multiple agents through a shared MCP endpoint:
MESH_API_URL=https://your-mesh-instance.example.com \
MESH_MCP_PORT=8081 \ evc-mesh-mcp --transport sse
SSE mode serves two profiles simultaneously on different paths:
| Path | Profile | Description |
|---|---|---|
/sse + /message | full | All 84 tools (backward compatible) |
/core/sse + /core/message | core | 34 essential tools |
The same process also serves the Streamable HTTP transport (stateless, one agent key per request, sent in the Authorization: Bearer or X-Agent-Key header — the query parameter is refused there):
| Path | Profile |
|---|---|
/mcp | full |
/core | core |
Authentication per connection via:
Authorization: Bearer agk_...headerX-Agent-Key: agk_...header?agent_key=agk_...query parameter (SSE connect only)Authorization: Bearer mot_...— an OAuth access token issued by your Mesh instance (see below); the header only, never the query string, and on the Streamable HTTP endpoints only (SSE connections need an agent key)
OAuth (remote connectors)
Clients that sign users in with OAuth — remote-connector directories, MCP Inspector, editors that follow the MCP authorization spec — connect to the Streamable HTTP endpoints without a pre-shared key. Your Mesh instance is the authorization server (dynamic client registration, PKCE, user consent); this server is the resource server and does two things:
- Challenges. A request with no credential, or with an OAuth access token Mesh API rejects (expired, revoked, never issued), gets
401and
WWW-Authenticate: Bearer resource_metadata="https://mesh.example.com/.well-known/oauth-protected-resource/mcp", scope="mesh"
which is where a client starts the authorization flow. A rejected agent key keeps answering 403. Only a verdict from Mesh API (a 4xx other than 408/429) makes a token invalid: if Mesh API cannot be reached or answers with an error that says nothing about the token (5xx, 429), the answer is 503 with Retry-After, so a valid token is not thrown away over an outage.
- Serves the metadata (RFC 9728) at the well-known path derived from each endpoint's URL:
| Endpoint | Metadata |
|---|---|
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 is MESH_MCP_PUBLIC_URL (trailing slash, query and fragment removed; /core appended for the core profile), so set it to the URL your users paste into the client. The authorization server defaults to that URL's origin; override it with MESH_MCP_OAUTH_ISSUER.
An OAuth token acts as a connector agent in the workspace the user chose when they granted access, with that agent's permissions — the same tools, the same permission model as an agent key. Verified tokens are cached for a minute (MESH_MCP_OAUTH_CACHE_TTL_SEC). The per-IP budget (MESH_MCP_AUTH_FAIL_RPM) is spent by *rejected* tokens, not by verifications, so many users behind one address are not throttled by their own token refreshes. The token is not audience-bound: any valid access token from your Mesh instance is accepted, which is the intent while the authorization server and this server belong to the same deployment. Agent keys (agk_...) in Authorization or X-Agent-Key work exactly as before, and stdio mode is unaffected.
Your reverse proxy must send /.well-known/oauth-protected-resource* to this server instead of the web app's catch-all: a single-page app answers every unknown path with 200 text/html, which a client cannot tell from missing metadata.
Agent Context Protocol (ACP)
At session start, follow these 5 steps in order:
1. heartbeat(status="online") → register as alive
- get_project_knowledge(project_id) → load accumulated decisions & conventions
- get_my_rules(project_id) → understand constraints
- get_context(project_id) → see recent activity + p
只显示了开头部分;其余内容请在仓库中阅读