Context7
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Tasks, comments, shared memory and handoffs for teams of people and AI agents, over MCP.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
MESH_API_URL, MESH_AGENT_KEY, MESH_MCP_PROFILE, X-Agent-Keyค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน
ลิงก์ไปที่ไฟล์ของผู้ทำเอง เราไม่ได้เก็บหรือแพ็กใหม่ เปิดไฟล์แล้ว Claude Desktop จะติดตั้งให้
พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http evc-mesh https://mesh.entire.host/mcp --header 'X-Agent-Key: ใส่ค่าของคุณ'claude mcp add evc-mesh --env MESH_API_URL='ใส่ค่าของคุณ' --env MESH_AGENT_KEY='ใส่ค่าของคุณ' --env MESH_MCP_PROFILE='ใส่ค่าของคุณ' -- 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": "ใส่ค่าของคุณ"
}
}
}
}วางในไฟล์ .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": "ใส่ค่าของคุณ",
"MESH_AGENT_KEY": "ใส่ค่าของคุณ",
"MESH_MCP_PROFILE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"evc-mesh": {
"type": "http",
"url": "https://mesh.entire.host/mcp",
"headers": {
"X-Agent-Key": "ใส่ค่าของคุณ"
}
}
}
}วางในไฟล์ .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": "ใส่ค่าของคุณ",
"MESH_AGENT_KEY": "ใส่ค่าของคุณ",
"MESH_MCP_PROFILE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
MESH_MCP_PROFILE envX-Agent-Key ความลับ จำเป็น HTTP headerค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
server ให้ล็อกอินก่อนจึงจะแสดงรายการเครื่องมือ
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub entire-vc ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตอบกลับใน 1231 ms (HTTP 401)
ประกาศวิธีล็อกอินแบบ OAuth ให้โปรแกรม AI พาไปล็อกอินเอง
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: MESH_API_URL, MESH_AGENT_KEY, X-Agent-Key
ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.6) เข้า registry 13 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Context7, Codebase Memory, Exa
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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.
agk_...)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 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).
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).
| 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. |
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.
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, …).
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).
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" } } } }
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" } } }
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)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:
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.
| 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.
At session start, follow these 5 steps in order:
1. heartbeat(status="online") → register as alive
ตัดมาแค่ช่วงต้น อ่านต่อใน repo