Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
The MCP server index that vets servers, not just lists them. Advisory screen before you install.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://mcpindex.ai/api/mcpเปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"mcpindex": {
"command": "npx",
"args": [
"-y",
"mcp-server-mcpindex"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http mcpindex https://mcpindex.ai/api/mcpclaude mcp add mcpindex -- npx -y mcp-server-mcpindexวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"mcpindex": {
"url": "https://mcpindex.ai/api/mcp"
}
}
}วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"mcpindex": {
"command": "npx",
"args": [
"-y",
"mcp-server-mcpindex"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"mcpindex": {
"type": "http",
"url": "https://mcpindex.ai/api/mcp"
}
}
}วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"mcpindex": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-server-mcpindex"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://mcpindex.ai/api/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 9 พ.ย. 2569
ผู้ลงทะเบียน (gautamgb) ไม่ใช่เจ้าของ repo (mcpindex-ai) อาจเป็นคนอื่นที่นำมาลงต่อ
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 0 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.4.0) เข้า registry 3 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, alalanet — check before you pay
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Check packages, MCP servers and x402 endpoints before agents install or pay. Signed.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
An MCP server for finding MCP servers, plus advisory trust verdicts agent frameworks can call before invoking a tool - from mcpindex.ai.
A drop-in MCP server that lets your agent discover, compare, install, and pre-flight other MCP servers from inside the agent loop. Backed by mcpindex.ai - the agent-native MCP server index of the official registry (live count at mcpindex.ai/stats), screened and drift-monitored daily.
Live site · npx mcp-server-mcpindex · Remote MCP · Install gate · Docs · Trust
npm install -g mcp-server-mcpindex
This is the directory / advisory client (recommend, search, trust). It does not install the in-path drift gate — that is curl -fsSL https://mcpindex.ai/install.sh | sh.
Requires Node 20+. Speaks both protocol eras on stdio: the 2026-07-28 revision (server/discover, per-request _meta envelope) and the initialize handshake every current client uses (2025-11-25 down to 2024-10-07), selected per connection.
Prefer not to install anything? mcpindex is also a hosted remote MCP server. Point any client that supports remote MCP (Claude connectors, Cursor, etc.) at:
https://mcpindex.ai/api/mcp
Streamable HTTP, no credentials. Same six tools as the npm package.
claude mcp add --scope user mcpindex -- npx -y mcp-server-mcpindex@latest
gemini mcp add -s user mcpindex npx -y mcp-server-mcpindex@latest
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": { "mcpindex": { "command": "npx", "args": ["-y", "mcp-server-mcpindex@latest"] } } }
@latestkeeps you current: this is the advisory discovery server (not the in-path drift
gate), so it carries no version pin —
npxfetches the newest on your next host restart, no
manual upgrade step.
Restart Claude Desktop. Then ask:
"Find me an MCP server that can read PDFs and write the contents to S3."
Claude calls recommend_mcp_for_task and returns the top 3 ranked servers with install commands.
Add to .cursor/mcp.json:
{
"mcpServers": { "mcpindex": { "command": "npx", "args": ["-y", "mcp-server-mcpindex@latest"] } } }
Add to cline_mcp_settings.json:
{
"mcpServers": { "mcpindex": { "command": "npx", "args": ["-y", "mcp-server-mcpindex@latest"] } } }
Zed reads MCP servers from context_servers, not mcpServers. Add to ~/.config/zed/settings.json:
{
"context_servers": { "mcpindex": { "command": "npx", "args": ["-y", "mcp-server-mcpindex@latest"] } } }
| Tool | What it does |
|---|---|
recommend_mcp_for_task | Pass a natural-language task. Returns top 3 servers with reasoning, install commands, quality scores. |
search_mcp_servers | Keyword + semantic search across the full registry. Optional category filter. |
get_install_command | Get the exact install JSON/CLI for a server + client (Claude Desktop, Claude Code, Cursor, Gemini CLI, Cline, Zed). |
compare_servers | Side-by-side comparison of 2-5 servers - quality scores, install paths, env vars. |
check_tool_trust | Pre-invocation advisory verdict for a specific tool on a server. Fail-CLOSED: returns UNVERIFIED when no verdict on file. |
assess_server | Aggregated pre-flight verdict across all tools on a server. Same shape as check_tool_trust. |
check_tool_trust is the directory client integration surface (not the in-path mcpindex-gate). It lets agent frameworks (Composio, Mastra, LangChain, DSPy, raw LLM-tool-call loops) ask for an advisory screen verdict before dispatching a call. At v1 you will see REVIEW or UNVERIFIED — not a safety clearance.
Using Mastra? The sibling package
@mcp-index/mastraships this exact screen as a ready-madebeforeToolCallhook -npm i @mcp-index/mastra, no wiring required.
The tool returns the API's verdict as the API sent it (same fields and values the hosted endpoint at /api/mcp returns) plus four flat convenience fields this client adds at the end: server_id, tool_name, source_url, fetched_at.
{
"subject": { "server_id": "github", "tool_name": "create_pull_request", "tool_verified": false }, "directive": "ALLOW" | "DENY" | "REVIEW" | "UNVERIFIED", "status": "EVALUATED" | "PARTIAL" | "STALE" | "ERROR", "granularity": "description-level" | null, // scope of a PARTIAL screen "dimensions": [ { "id": "tool_safety", "verdict": "PASS", "severity": "INFO" } ], "expires_at": "2026-06-30T00:00:00Z", "honest_limits": [ "semantic_only_no_conformance", "calibrated_false_v1", "description_level_screen", "advisory", "tool_name_not_independently_verified" ], "verdict_contract_version": "1.1.0", "server_id": "github", "tool_name": "create_pull_request", "source_url": "https://mcpindex.ai/api/v1/trust/tool/github/create_pull_request", "fetched_at": "2026-05-28T18:42:11.118Z" }
verdict_contract_version is the API's own version and is never rewritten by this client. subject.tool_verified: false means the API did not confirm the tool name exists on the server: today's screens are description-level, so any tool name on a screened server gets that server's verdict.
The free-tier verdict ships directives + dimensions + freshness. Evidence quotes, LLM rationale, and chain history are paid-tier surfaces and intentionally omitted here.
honest_limits is the API's list, relayed verbatim; your gate SHOULD surface it on every dispatch decision. A screened verdict carries the screen's own limits (for example semantic_only_no_conformance, description_level_screen, tool_name_not_independently_verified). When there is no verdict on file, or the client fails closed, the list is the v1 floor:
conformance_monitored_not_enforced - publishers self-declare; mcpindex monitors drift but does not block at the network layer.calibrated_false_v1 - dimension severities are not yet calibrated against real-world incident data.advisory_deployment - the verdict is advisory; the agent (or human reviewing the agent) is the decision-maker.The client never merges the floor into a list the API sent, since that could contradict it.
History anchoring: OTS Bitcoin-anchored history; Bitcoin-finalized at N=6 confirmations (~1 hr); pending in ~10 min. Sub-window precision asserted, not proven.
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
const mcpindex = new Client({ name: 'gate', version: '1.0.0' }, { capabilities: {} }); await mcpindex.connect(new StdioClientTransport({ command: 'npx', args: ['-y', 'mcp-server-mcpindex@latest'], }));
// gateToolCall wraps any agent tool dispatch. Plug it in front of // the LangChain / DSPy / Mastra / Composio tool-call hook. async function gateToolCall({ serverId, toolName, invoke, askHuman }) { const res = await mcpindex.callTool({ name: 'check_tool_trust', arguments: { server_id: serverId, tool_name: toolName }, }); const verdict = JSON.parse(res.content[0].text);
// Pin the v1 caveats in the audit log no matter what. audit.log({ verdict, caveats: verdict.honest_limits });
switch (verdict.directive) { case 'REVIEW': // Fail-CLOSED to human. Do NOT auto-execute on REVIEW. // At v1 this is the common screened outcome (semantic-only). return askHuman({ verdict, action: ${serverId}/${toolName} });
case 'UNVERIFIED': // No verdict on file (or upstream unreachable). Fail-CLOSED. // Recommend human review. Do NOT fail-open to invoke(). return askHuman({ verdict, action: ${serverId}/${toolName}, note: 'No trust verdict on file. Human review required before first use.', });
case 'ALLOW': // Reserved in the contract — not produced by the v1 public screen. // Keep the branch for future conformance-earned ALLOW; do not expect it today. return invoke();
case 'DENY': // Reserved in the contract — not produced by the v1 public screen. throw new Error( mcpindex denied ${serverId}/${toolName}: ${JSON.stringify(verdict.dimensions)}, );
default: // Unknown directive. Fail-CLOSED. return askHuman({ verdict, action: ${serverId}/${toolName} }); } }
If the verdict endpoint is unreachable, returns a non-2xx status, times out, returns malformed JSON, gets a server_id / tool_name that would walk the API path (.., /, empty), or has no verdict on file yet for that server, check_tool_trust returns directive: "UNVERIFIED" + status: "ERROR". It never silently coerces to ALLOW. Your gate code SHOULD treat UNVERIFIED as "human review required", never as "looks fine, ship it."
status is telemetry about screen completeness, distinct from the directive trust decision: EVALUATED (full screen), PARTIAL (only part of the surface, e.g. description-level — see granularity), STALE (verdict past its freshness window), ERROR (unreachable / no verdict on file). A PARTIAL screen is never reported as EVALUATED.
This is tested. See test/trust.test.mjs.
The trust client is also exported as a plain ES module:
import { checkToolTrust, assessServer } from 'mcp-server-mcpindex/src/trust.mjs';
const verdict = await checkToolTrust({ serverId: 'github', toolName: 'create_pull_request', });
if (verdict.directive !== 'ALLOW') { // Hand to a human, log, or block. }
By default, calls go to https://mcpindex.ai. Override with MCPINDEX_API_BASE=... if you self-host.
The free tier is rate-limited to 60 req/min/IP. Paid keys are coming for higher throughput and the full evidence-bearing verdict (evidence quotes, LLM rationale, chain history).
Three ways to bring mcpindex into an agent, for different surfaces:
| Package | Install | What it does |
|---|
| `mcp-server-mcpindex` *(this package)* | npm i -g mcp-server-mcpindex | Directory + advisory screen as an MCP server: find servers by task,
ตัดมาแค่ช่วงต้น อ่านต่อใน repo