Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MCP server for structured methods extraction + reproducibility heuristics on academic papers.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ANTHROPIC_API_KEY, GITHUB_TOKEN, METHODS_MCP_MODELค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"methods": {
"command": "uvx",
"args": [
"methods-mcp"
],
"env": {
"ANTHROPIC_API_KEY": "ใส่ค่าของคุณ",
"GITHUB_TOKEN": "ใส่ค่าของคุณ",
"METHODS_MCP_MODEL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add methods --env ANTHROPIC_API_KEY='ใส่ค่าของคุณ' --env GITHUB_TOKEN='ใส่ค่าของคุณ' --env METHODS_MCP_MODEL='ใส่ค่าของคุณ' -- uvx methods-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"methods": {
"command": "uvx",
"args": [
"methods-mcp"
],
"env": {
"ANTHROPIC_API_KEY": "ใส่ค่าของคุณ",
"GITHUB_TOKEN": "ใส่ค่าของคุณ",
"METHODS_MCP_MODEL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"methods": {
"type": "stdio",
"command": "uvx",
"args": [
"methods-mcp"
],
"env": {
"ANTHROPIC_API_KEY": "ใส่ค่าของคุณ",
"GITHUB_TOKEN": "ใส่ค่าของคุณ",
"METHODS_MCP_MODEL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
METHODS_MCP_MODEL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub FlynnLachendro ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: ANTHROPIC_API_KEY, GITHUB_TOKEN
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.7) เข้า registry 7 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Reelsaw
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว 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.
Drive a self-hosted Reelsaw: turn long videos into vertical clips, edit, re-render and export them.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Lightweight, on-demand MCP server for structured methods extraction + reproducibility heuristics on academic papers. Built for the Worldwide AI Science Fellowship build challenge.
⚠️ Status: alpha (0.1.x). The tool surface and output shapes may shift between minor versions. Pin to an exact version in production. Bug reports very welcome via GitHub Issues.
$ uvx --from methods-mcp methods-mcp --version
methods-mcp 0.1.6
/mcp add methods-mcp methods-mcp
Run methods_repro_review on https://arxiv.org/abs/2509.06917
→ tool: methods_repro_review({"input_str":"https://arxiv.org/abs/2509.06917"})
narrative first — it explains{ "status": "ok", "narrative": "Resolved the paper: 'Paper2Agent' by Miao et al. (arxiv 2509.06917, " "2025-09-08). Extracted 11 methods steps at moderate self-reported " "confidence (0.72) — the procedure is clearly described but hyperparameters " "and software versions are absent. Detected the associated code repository " "https://github.com/jmiao24/Paper2Agent from an inline link in the paper " "text (detection confidence 0.94). The repo scored 0.90/1.00 on the " "reproducibility heuristic — verdict: likely reproducible. Present signals: " "substantive README, dependencies file, notebooks, figure-plotting script, " "recent activity, permissive license. Missing: data/fixtures directory. " "Suggested entrypoint: python make_figures.py.", "metadata": { ... }, # PaperMetadata "methods": { ... }, # MethodsStructured (null if extraction failed) "code_repo": { ... }, # CodeRepo (null only if input unresolvable) "repro_assessment": { ... }, # ReproAssessment (null if no repo detected) "errors": [] # [{step, error_type, message, hint}] on partial }
methods-mcp is a small, sharply-scoped Model Context Protocol server. It gives any AI agent (Claude Code, Claude Desktop, your Agent SDK script, etc.) eight tools that turn an academic paper URL into:
The wedge: heavyweight pipelines like Paper2Agent (Stanford) take 30 minutes to hours to digest a paper into agent-ready tools. methods-mcp is the agent-callable, on-demand complement — every tool returns in seconds, no clone, no execution.
uv add methods-mcp
uv tool install methods-mcp
pip install methods-mcp
For best performance, set both:
| Variable | Required? | What you get without it |
|---|---|---|
ANTHROPIC_API_KEY | Required for extract_methods, summarize_paper, methods_repro_review | Those tools raise RuntimeError: ANTHROPIC_API_KEY not set. Non-LLM tools (fetch_paper_text, find_code_repo, assess_repo_reproducibility) still work fine. |
GITHUB_TOKEN | Optional but recommended for assess_repo_reproducibility / methods_repro_review | You're capped at the GitHub unauthenticated rate limit (60 req/hr per IP). Each repo assessment is ~3 calls, so you'll hit the ceiling after ~15–20 repos/hr. With a token: 5,000 req/hr (effectively unlimited). |
export ANTHROPIC_API_KEY=sk-ant-...
export GITHUB_TOKEN=ghp_... # optional but recommended
Neither key is logged or persisted — they're sent only to api.anthropic.com and api.github.com respectively. See SECURITY.md.
/mcp add methods-mcp methods-mcp
Then in any Claude Code chat:
Take https://arxiv.org/abs/2509.06917 and run
methods_repro_review. Summarise what the paper does, the methods steps, and how reproducible the repo looks.
from claude_agent_sdk import ClaudeAgentOptions, ClaudeSDKClient
options = ClaudeAgentOptions( mcp_servers={ "methods-mcp": { "type": "stdio", "command": "methods-mcp", "args": [], } }, allowed_tools=["mcpmethods-mcpmethods_repro_review"], )
async with ClaudeSDKClient(options=options) as client: await client.query( "Run methods_repro_review on https://arxiv.org/abs/2509.06917 " "and tell me whether the repo looks reproducible." ) async for msg in client.receive_response(): print(msg)
| Tool | What it does | ||
|---|---|---|---|
health | Server liveness + config check. | ||
get_paper_metadata(input_str) | Resolve URL / arXiv ID / DOI to canonical metadata. arXiv inputs hit the arXiv export API for title/authors/abstract. | ||
| `fetch_paper_text(input_str, prefer="auto"\ | "html"\ | "pdf")` | Full text + section split. Defaults to ar5iv HTML for arXiv papers (cheap, structured), PDF fallback otherwise. |
extract_methods(input_str, model=None) | LLM-driven, Pydantic-validated structured methods extraction. Returns {steps, reagents, equipment, analyses, confidence}. | ||
find_code_repo(input_str) | Discover the paper's code repo via paper text → abstract → Papers With Code. | ||
assess_repo_reproducibility(repo_url, paper_id=None) | Heuristic, no-clone reproducibility assessment via the GitHub REST API. Weighted signals (README, deps, fixtures, notebooks, figure scripts, recent maintenance, license) → {verdict, score, recommended_entrypoint}. | ||
| `summarize_paper(input_str, mode="tldr"\ | "abstract"\ | "exec")` | LLM summary in three depths. |
methods_repro_review(input_str) | Composite — metadata + methods + repo + repro in one call. |
All tools return Pydantic v2 models (validated, JSON-serialisable). See src/methods_mcp/schemas.py for the full type surface.
pypdf for non-arXiv inputs.METHODS_MCP_MODEL env var or per-call model= arg.status ("ok" / "partial" / "empty") and a narrative string that summarises everything retrieved in plain English — including every numeric score in context. A reader who reads only narrative + status gets the full picture without needing to learn the sub-object shapes. Sub-objects can be null when unavailable (e.g. repro_assessment: null on a paper with no detected repo — status stays "ok" because "no repo" isn't a failure). Failed sub-steps contribute a structured entry to errors with {step, error_type, message, hint}, where hint is an actionable plain-English suggestion for recognised patterns (missing API keys, rate-limits, 404s, timeouts, etc.) and null otherwise.Tool outputs contain three numeric fields that look similar but mean very different things. They are triage signals for an agent deciding whether a paper is worth digging into, not calibrated claims about correctness.
| Field | Range | How it's computed | How to read it |
|---|---|---|---|
methods.confidence | 0–1 | LLM self-report. The extractor model sets it per instructions in the system prompt: ≥0.8 only if the paper gives explicit reagents/volumes/equipment, ~0.3 if the methods section is sparse. Uncalibrated. | Soft signal for *"is this a wet-lab paper with concrete procedure, or a sparse systems paper?"* Useful as a flag; don't treat as a trust percentage. |
code_repo.confidence | 0–1 | Varies by `detection_method`. papers-with-code: fixed 0.95 (authoritative paper→repo API). paper-text: computed as 0.6 + 0.2·(strong-phrase-present) + 0.015·score_margin, capped at 0.95. abstract-link: fixed 0.85. none: 0.0. | Tells you how the repo was found and how decisively. High score + paper-text means a strong phrase like *"code is available at …"* sat next to the URL. |
repro_assessment.overall_score | 0–1 | Weighted sum of 8 binary signals, all computed from the GitHub REST API (no clone, no execution): has_readme (0.10), readme_substantial (0.15), has_dependencies_file (0.20), has_data_or_fixtures (0.10), has_notebook (0.10), has_figure_script (0.20), actively_maintained (0.10), permissive_license (0.05). Each present signal contributes its weight. | The only fully-deterministic score of the three. Still a heuristic, not a proof — a high score means the repo looks well-structured for reproduction. For actual validation see Paper2Agent. |
Verdict buckets (repro_assessment.verdict) are thresholds on overall_score:
| Verdict | Score | Meaning |
|---|---|---|
likely-reproducible | ≥ 0.70 | Most repro-friendly signals present. Worth trying to run. |
partial | ≥ 0.45 | Some infrastructure, likely gaps. Expect to fill in missing pieces. |
unlikely | ≥ 0.20 | Minimal signal. Possible code dump without the scaffolding to rerun it. |
insufficient-info | < 0.20 *or* repo unreachable | Not enough to tell. Don't draw conclusions either way. |
Enum values you'll see in outputs:
code_repo.detection_method: paper-text | abstract-link | papers-with-code | metadata | nonemetadata.source: arxiv | biorxiv | doi | url | unknownWhat this server *actually* does when you install and run it:
export.arxiv.org, ar5iv.labs.arxiv.org, arxiv.org (PDFs), api.github.com, paperswithcode.com, api.anthropic.com. No telemetry, no analytics, no phone-home.ANTHROPIC_API_KEY (required for LLM tools) and optionally GITHUB_TOKEN from environment variables. These are sent only to Anthropic / GitHub respectively. Never logged, never persisted to disk.eval, exec, subprocess, pickle.loads, or shell-outs. The reproducibility tool deliberately *does not* clone or run repositories — it scores from the GitHub REST API only.Limitations to be aware of:
extract_methods tool sends paper text to Claude. A paper containing prompt-injection content could yield wrong (but schema-valid) structured methods. Treat the output as a research aid, not ground truth.ตัดมาแค่ช่วงต้น อ่านต่อใน repo