methods-mcp
methods-mcp
Легковесный MCP-сервер по требованию для структурированного извлечения методов + эвристик воспроизводимости для академических статей. Создан для челленджа Worldwide AI Science Fellowship.
⚠️ Статус: alpha (0.1.x). Поверхность инструментов и формы вывода могут меняться между минорными версиями. Зафиксируйте точную версию в продакшене. Баг-репорты приветствуются через GitHub Issues.
Быстрая демонстрация
$ uvx --from methods-mcp methods-mcp --version
methods-mcp 0.1.6
# In a Claude Code session:
> /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"})
# Returns a MethodsReproReview object. Read `narrative` first — it explains
# everything else in plain English, so no tool-learning is required:
{
"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 — это небольшой, узконаправленный сервер Model Context Protocol. Он предоставляет любому ИИ-агенту (Claude Code, Claude Desktop, вашему скрипту Agent SDK и т.д.) восемь инструментов, которые превращают URL академической статьи в:
канонические метаданные,
полный текст с разбивкой по секциям (best-effort),
структурированный объект методов, проверенный Pydantic (шаги / реагенты / оборудование / анализы),
репозиторий кода статьи (обнаружение best-effort),
вердикт о воспроизводимости без выполнения для этого репозитория,
сводку в нескольких режимах.
Ключевая идея: тяжёлые пайплайны, такие как Paper2Agent (Stanford), тратят от 30 минут до часов на переработку статьи в готовые к использованию инструменты. methods-mcp — это вызываемый агентом, по требованию комплемент — каждый инструмент возвращает результат за секунды, без клонирования и выполнения.
Related MCP server: paperstack
Установка
uv add methods-mcp
# or, install globally:
uv tool install methods-mcp
# or, classic pip:
pip install methods-mcpКлючи API
Для лучшей производительности установите оба:
Переменная | Обязательна? | Что вы получаете без неё |
| Обязательна для | Эти инструменты вызывают |
| Необязательна, но рекомендуется для | Вы ограничены неаутентифицированным лимитом GitHub (60 запросов/час на IP). Каждая оценка репозитория — это ~3 вызова, так что вы упрётесь в потолок после ~15–20 репозиториев/час. С токеном: 5,000 запросов/час (практически безлимитно). |
export ANTHROPIC_API_KEY=sk-ant-...
export GITHUB_TOKEN=ghp_... # optional but recommendedНи один ключ не логируется и не сохраняется — они отправляются только на api.anthropic.com и api.github.com соответственно. См. SECURITY.md.
Использование из Claude Code
/mcp add methods-mcp methods-mcpВозьмите https://arxiv.org/abs/2509.06917 и выполните
methods_repro_review. Опишите, что делает статья, шаги методов и насколько воспроизводимым выглядит репозиторий.
Использование из Claude Agent SDK
from claude_agent_sdk import ClaudeAgentOptions, ClaudeSDKClient
options = ClaudeAgentOptions(
mcp_servers={
"methods-mcp": {
"type": "stdio",
"command": "methods-mcp",
"args": [],
}
},
allowed_tools=["mcp__methods-mcp__methods_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)Инструменты
Инструмент | Что делает |
| Проверка живости сервера и конфигурации. |
| Разрешение URL / arXiv ID / DOI в канонические метаданные. Для arXiv-входов используется экспортный API arXiv для получения названия, авторов и аннотации. |
| Полный текст + разбивка по секциям. По умолчанию для arXiv-статей используется ar5iv HTML (дёшево, структурировано), иначе PDF-фолбэк. |
| Управляемое LLM, проверенное Pydantic структурированное извлечение методов. Возвращает |
| Обнаружение репозитория кода статьи через текст статьи → аннотацию → Papers With Code. |
| Эвристическая оценка воспроизводимости без клонирования через GitHub REST API. Взвешенные сигналы (README, зависимости, фикстуры, ноутбуки, скрипты для графиков, недавняя поддержка, лицензия) → |
| Сводка LLM на трёх уровнях глубины. |
| Композитный — метаданные + методы + репозиторий + воспроизводимость одним вызовом. |
Все инструменты возвращают модели Pydantic v2 (проверенные, сериализуемые в JSON). Полный список типов см. в src/methods_mcp/schemas.py.
Заметки по дизайну
extract_methodsиспользует tool-use от Anthropic, чтобы заставить модель выдать экземпляр Pydantic-схемыMethodsStructured. При ошибке валидации мы отправляем одно сообщение с ошибкой валидации и пробуем снова перед тем, как поднять исключение.assess_repo_reproducibilityне клонирует и не выполняет ничего. Он оценивает репозиторий по публично читаемым метаданным GitHub + рекурсивному дереву файлов. Это осознанный компромисс против пакетных инструментов, которые пытаются реально перезапустить статью.fetch_paper_textпредпочитает ar5iv HTML парсингу PDF для arXiv-статей. Для не-arXiv входов используется фолбэк наpypdf.Модель по умолчанию —
claude-sonnet-4-6. Переопределяется через переменную окруженияMETHODS_MCP_MODELили аргументmodel=при вызове.methods_repro_reviewвозвращает самодокументируемый ответ. Каждый вызов устанавливает верхнеуровневыйstatus("ok"/"partial"/"empty") и строкуnarrative, которая резюмирует всё полученное на простом английском — включая каждую числовую оценку в контексте. Читатель, который читает толькоnarrative+status, получает полную картину без необходимости изучать формы под-объектов. Под-объекты могут бытьnull, когда недоступны (например,repro_assessment: nullдля статьи без обнаруженного репозитория —statusостаётся"ok", потому что "нет репозитория" — не ошибка). Неудачные под-шаги добавляют структурированную запись вerrorsс{step, error_type, message, hint}, гдеhint— это практическая подсказка на простом английском для распознанных паттернов (отсутствующие ключи API, лимиты скорости, 404, таймауты и т.д.), иnullв противном случае.
Объяснение оценок и вердиктов
Выводы инструментов содержат три числовых поля, которые выглядят похоже, но означают очень разные вещи. Это сигналы для триажа, помогающие агенту решить, стоит ли копать глубже в статью, а не калиброванные утверждения о корректности.
Поле | Диапазон | Как вычисляется | Как читать |
| 0–1 | Самоотчёт LLM. Модель-экстрактор устанавливает его по инструкциям в системном промпте: | Мягкий сигнал для "это влажная лабораторная статья с конкретной процедурой или разреженная системная статья?" Полезен как флаг; не воспринимайте как процент доверия. |
| 0–1 | Зависит от | Показывает, как был найден репозиторий и насколько решительно. Высокий балл + |
| 0–1 | Взвешенная сумма 8 бинарных сигналов, все вычисляются из GitHub REST API (без клонирования и выполнения): | Единственная полностью детерминированная оценка из трёх. Всё равно эвристика, а не доказательство — высокий балл означает, что репозиторий выглядит хорошо структурированным для воспроизведения. Для реальной валидации см. Paper2Agent. |
Вердиктные корзины (repro_assessment.verdict) — это пороги на overall_score:
Verdict | Score | Meaning |
| ≥ 0.70 | Присутствует большинство сигналов, благоприятных для воспроизведения. Стоит попробовать запустить. |
| ≥ 0.45 | Есть некоторая инфраструктура, вероятны пробелы. Будьте готовы восполнить недостающие части. |
| ≥ 0.20 | Минимальный сигнал. Возможно, просто выгрузка кода без каркаса для повторного запуска. |
| < 0.20 или репозиторий недоступен | Недостаточно данных для выводов. Не делайте выводов ни в ту, ни в другую сторону. |
Значения перечислений, которые вы увидите в выводах:
code_repo.detection_method:paper-text|abstract-link|papers-with-code|metadata|nonemetadata.source:arxiv|biorxiv|doi|url|unknown
Безопасность и ограничения
Что этот сервер фактически делает при установке и запуске:
Сетевые вызовы только к:
export.arxiv.org,ar5iv.labs.arxiv.org,arxiv.org(PDF),api.github.com,paperswithcode.com,api.anthropic.com. Никакой телеметрии, никакой аналитики, никаких обращений домой.Читает
ANTHROPIC_API_KEY(обязателен для LLM-инструментов) и опциональноGITHUB_TOKENиз переменных окружения. Они отправляются только в Anthropic / GitHub соответственно. Никогда не логируются и не сохраняются на диск.Ничего не записывает в вашу файловую систему. Никаких кэш-каталогов, скачанных PDF или временных файлов.
Не выполняет пользовательский код. Никаких
eval,exec,subprocess,pickle.loadsили вызовов оболочки. Инструмент воспроизводимости намеренно не клонирует и не запускает репозитории — он оценивает только через GitHub REST API.
Ограничения, о которых стоит знать:
Враждебные статьи могут давать вводящий в заблуждение структурированный вывод. Инструмент
extract_methodsотправляет текст статьи в Claude. Статья с контентом для prompt-инъекций может дать неверные (но валидные по схеме) структурированные методы. Относитесь к выводу как к вспомогательному средству исследования, а не к истине в последней инстанции.Вердикт о воспроизводимости — это эвристика, а не доказательство. Высокий балл означает, что репозиторий выглядит хорошо структурированным для воспроизведения; это не гарантирует, что запуск кода воспроизведёт статью. Для полной валидации см. Paper2Agent.
Предназначен для локального использования через stdio. HTTP/SSE-транспорты предоставлены для удобства разработки, но должны быть доступны только в доверенных сетях (нет защиты от SSRF сверх того, что предоставляет httpx).
Сообщение о проблемах:
Проблемы безопасности: пожалуйста, напишите на flynnlachendro@hotmail.co.uk (также см. SECURITY.md). Функциональные ошибки: откройте issue на GitHub.
Совместное использование с paper-mcp
Для более широкого поиска статей / инструментов графа цитирования запустите paper-mcp (Bhvaik) в той же сессии Claude Code. paper-mcp выполняет поиск по заголовкам, получение полных текстов, цитаты и ссылки; methods-mcp добавляет поверх слой структурированных методов + воспроизводимости. Эти два инструмента намеренно спроектированы для совместной работы.
Локальная разработка
git clone https://github.com/FlynnLachendro/methods-mcp
cd methods-mcp
uv sync --extra dev --extra agent
uv run pytest # 49 tests, offline (respx-mocked httpx + unittest.mock for Anthropic)
uv run ruff format .
uv run ruff check . --fix
uv run mypy src
uv run methods-mcp --helpЛицензия
MIT — см. LICENSE.
Благодарности
Создано для первого набора Worldwide AI Science Fellowship. Спасибо Michael Raspuzzi за свободное техническое задание.
Построено на основе:
FastMCP 3.x — каркас MCP-сервера.
Claude Agent SDK — агентский цикл в демо.
ar5iv.labs.arxiv.org — чистый HTML для статей arXiv.
Anthropic Claude — LLM, стоящая за структурированным извлечением.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables discovery and analysis of research ecosystems by extracting metadata from paper URLs, GitHub repositories, and research names. Automatically finds related papers, code repositories, models, datasets, and authors across platforms like arXiv, HuggingFace, and GitHub.
- AlicenseNot gradedqualityDmaintenanceEnables arXiv paper search, PDF download, text extraction, and context chunking for LLM pipelines, along with advanced features like citation graphs and reproducibility scoring.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables users to search and analyze academic papers from multiple sources, fetch metadata and full text, and build structured outputs like literature maps and paper comparisons.21MIT
- FlicenseAqualityDmaintenanceEnables agents to search papers across Semantic Scholar and arXiv, read and extract text from arXiv PDFs, align records across sources, and produce structured literature-analysis digests.101
Related MCP Connectors
Reliable PDF table extraction. Pass a URL, get structured JSON tables with citations.
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
Turns any URL into SEO metadata, contacts, tech stack, and AI-ready Markdown, in one call.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FlynnLachendro/methods-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server