Skip to main content
Glama
FlynnLachendro

methods-mcp

methods-mcp

PyPI Python License: MIT

Легковесный 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

Для лучшей производительности установите оба:

Переменная

Обязательна?

Что вы получаете без неё

ANTHROPIC_API_KEY

Обязательна для extract_methods, summarize_paper, methods_repro_review

Эти инструменты вызывают RuntimeError: ANTHROPIC_API_KEY not set. Не-LLM инструменты (fetch_paper_text, find_code_repo, assess_repo_reproducibility) продолжают работать нормально.

GITHUB_TOKEN

Необязательна, но рекомендуется для assess_repo_reproducibility / methods_repro_review

Вы ограничены неаутентифицированным лимитом 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)

Инструменты

Инструмент

Что делает

health

Проверка живости сервера и конфигурации.

get_paper_metadata(input_str)

Разрешение URL / arXiv ID / DOI в канонические метаданные. Для arXiv-входов используется экспортный API arXiv для получения названия, авторов и аннотации.

fetch_paper_text(input_str, prefer="auto"|"html"|"pdf")

Полный текст + разбивка по секциям. По умолчанию для arXiv-статей используется ar5iv HTML (дёшево, структурировано), иначе PDF-фолбэк.

extract_methods(input_str, model=None)

Управляемое LLM, проверенное Pydantic структурированное извлечение методов. Возвращает {steps, reagents, equipment, analyses, confidence}.

find_code_repo(input_str)

Обнаружение репозитория кода статьи через текст статьи → аннотацию → Papers With Code.

assess_repo_reproducibility(repo_url, paper_id=None)

Эвристическая оценка воспроизводимости без клонирования через GitHub REST API. Взвешенные сигналы (README, зависимости, фикстуры, ноутбуки, скрипты для графиков, недавняя поддержка, лицензия) → {verdict, score, recommended_entrypoint}.

summarize_paper(input_str, mode="tldr"|"abstract"|"exec")

Сводка LLM на трёх уровнях глубины.

methods_repro_review(input_str)

Композитный — метаданные + методы + репозиторий + воспроизводимость одним вызовом.

Все инструменты возвращают модели 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 в противном случае.

Объяснение оценок и вердиктов

Выводы инструментов содержат три числовых поля, которые выглядят похоже, но означают очень разные вещи. Это сигналы для триажа, помогающие агенту решить, стоит ли копать глубже в статью, а не калиброванные утверждения о корректности.

Поле

Диапазон

Как вычисляется

Как читать

methods.confidence

0–1

Самоотчёт LLM. Модель-экстрактор устанавливает его по инструкциям в системном промпте: ≥0.8 только если в статье даны явные реагенты/объёмы/оборудование, ~0.3 если раздел методов скудный. Некалиброванный.

Мягкий сигнал для "это влажная лабораторная статья с конкретной процедурой или разреженная системная статья?" Полезен как флаг; не воспринимайте как процент доверия.

code_repo.confidence

0–1

Зависит от detection_method. papers-with-code: фиксированный 0.95 (авторитетный API статья→репозиторий). paper-text: вычисляется как 0.6 + 0.2·(strong-phrase-present) + 0.015·score_margin, с потолком 0.95. abstract-link: фиксированный 0.85. none: 0.0.

Показывает, как был найден репозиторий и насколько решительно. Высокий балл + paper-text означает, что сильная фраза вроде "код доступен по адресу …" находилась рядом с URL.

repro_assessment.overall_score

0–1

Взвешенная сумма 8 бинарных сигналов, все вычисляются из GitHub REST API (без клонирования и выполнения): 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). Каждый присутствующий сигнал добавляет свой вес.

Единственная полностью детерминированная оценка из трёх. Всё равно эвристика, а не доказательство — высокий балл означает, что репозиторий выглядит хорошо структурированным для воспроизведения. Для реальной валидации см. Paper2Agent.

Вердиктные корзины (repro_assessment.verdict) — это пороги на overall_score:

Verdict

Score

Meaning

likely-reproducible

≥ 0.70

Присутствует большинство сигналов, благоприятных для воспроизведения. Стоит попробовать запустить.

partial

≥ 0.45

Есть некоторая инфраструктура, вероятны пробелы. Будьте готовы восполнить недостающие части.

unlikely

≥ 0.20

Минимальный сигнал. Возможно, просто выгрузка кода без каркаса для повторного запуска.

insufficient-info

< 0.20 или репозиторий недоступен

Недостаточно данных для выводов. Не делайте выводов ни в ту, ни в другую сторону.

Значения перечислений, которые вы увидите в выводах:

  • code_repo.detection_method: paper-text | abstract-link | papers-with-code | metadata | none

  • metadata.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 за свободное техническое задание.

Построено на основе:

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
8Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables arXiv paper search, PDF download, text extraction, and context chunking for LLM pipelines, along with advanced features like citation graphs and reproducibility scoring.
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    21
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables 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.
    10
    1

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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