Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Evc Mesh MCP

by entire-vcversion 0.1.6i★ –iComputer or cloud
Registry nameio.github.entire-vc/evc-mesh-mcp

Install

Overview

Description from the maker (original English)

Tasks, comments, shared memory and handoffs for teams of people and AI agents, over MCP.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Computer or cloud
  • Transport: stdio, Streamable HTTP, SSE
  • Category: Search & AI memory
  • You need to fill in: MESH_API_URL, MESH_AGENT_KEY, X-Agent-Key

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 3 of 3 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • You fill in yourself: MESH_API_URL, MESH_AGENT_KEY, MESH_MCP_PROFILE, X-Agent-Key

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Or run it on your computer

Download the maker’s .mcpb file

The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.

Run this in your terminal

claude mcp add --transport http evc-mesh https://mesh.entire.host/mcp --header 'X-Agent-Key: your-value'

Or run it on your computer

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

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "evc-mesh": {
      "url": "https://mesh.entire.host/mcp",
      "headers": {
        "X-Agent-Key": "your-value"
      }
    }
  }
}

Or run it on your computer

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.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"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "evc-mesh": {
      "type": "http",
      "url": "https://mesh.entire.host/mcp",
      "headers": {
        "X-Agent-Key": "your-value"
      }
    }
  }
}

Or run it on your computer

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "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"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • MESH_API_URL required env
    Base URL of your Mesh instance, e.g. https://mesh.example.com
  • MESH_AGENT_KEY secret required env
    Agent API key issued by Mesh (agk_...)
  • MESH_MCP_PROFILE env
    Tool profile: core (26 tools, lower context overhead) or full (69 tools). The container image defaults to core.
  • X-Agent-Key secret required HTTP header
    Agent API key issued by Mesh (agk_...)

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

The server asks you to sign in before it lists its tools.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 9, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account entire-vc, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • ✓ Pass

    Endpoint responds

    Responded in 1231 ms (HTTP 401)

  • ✓ Pass

    Sign-in with OAuth

    Declares OAuth sign-in, so your AI app can take you to log in

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Search & AI memoryi

  • More stars than 0% of the other 5759 servers in this category
  • Published to the registry more recently than 72% of the other 5759 servers in this category
  • Basic checks equal to or better than 100% of the other 5759 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Evc Mesh MCP safe?

It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: MESH_API_URL, MESH_AGENT_KEY, X-Agent-Key

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.1.6) reached the registry 14 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Context7, Codebase Memory, Exa

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Context7

Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.

by upstashWidely used↓ 972.7K/wk★ 64.2KUpdated 3 days ago

Computer or cloud

Codebase Memory

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

by DeusDataWidely used↓ 18K/wk★ 48.1KUpdated 23 days ago

Runs on your computer

Exa

Connect AI agents to Exa for web search, content fetching, and multi-step research.

by exa-labsWidely used★ 5.2KUpdated 2 months ago

Runs in the cloud✓ exa.ai

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

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:

ProfileToolsContext overheadBest for
core34~8K tokens (4% of 200K)Claude Code, Cursor, small-context models
full84~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

VariableRequiredDefaultDescription
MESH_API_URLYeshttp://localhost:8005Base URL of the Mesh API
MESH_AGENT_KEYYes (stdio)—Agent API key (agk_...)
MESH_CHAT_TOKEN_FILENo—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_PROFILENofull (Docker image: core)Tool profile for stdio: core or full (SSE serves both)
MESH_MCP_TRANSPORTNostdioTransport mode: stdio or sse
MESH_MCP_HOSTNo0.0.0.0SSE server bind host
MESH_MCP_PORTNo8081SSE server bind port
MESH_MCP_AUTH_FAIL_RPMNo20SSE 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_MINNo15SSE 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_SECNo30SSE 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_URLNo—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_ISSUERNoorigin of MESH_MCP_PUBLIC_URLSSE 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_SECNo60SSE 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_USERNAMENo—Username recorded as decided_by when record_owner_decision answers a gated task. Unset: the workspace owner.
MESH_MCP_LEGACY_TOOL_ALIASESNooff1 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:

PathProfileDescription
/sse + /messagefullAll 84 tools (backward compatible)
/core/sse + /core/messagecore34 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):

PathProfile
/mcpfull
/corecore

Authentication per connection via:

  • Authorization: Bearer agk_... header
  • X-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 401 and
  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:
EndpointMetadata
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
  1. get_project_knowledge(project_id) → load accumulated decisions & conventions
  2. get_my_rules(project_id) → understand constraints
  3. get_context(project_id) → see recent activity + p

Only the beginning is shown; read the rest in the repo

Ask PopNx