Skip to main content
Glama
FlynnLachendro

methods-mcp

methods-mcp

PyPI Python License: MIT

Servidor MCP ligero y bajo demanda para extracción estructurada de métodos + heurísticas de reproducibilidad en artículos académicos. Construido para el reto de construcción de la Worldwide AI Science Fellowship.

⚠️ Estado: alpha (0.1.x). La superficie de herramientas y las formas de salida pueden cambiar entre versiones menores. Fija una versión exacta en producción. Los informes de errores son muy bienvenidos a través de GitHub Issues.

Demo rápida

$ 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 es un servidor Model Context Protocol pequeño y de alcance muy definido. Proporciona a cualquier agente de IA (Claude Code, Claude Desktop, tu script del Agent SDK, etc.) ocho herramientas que convierten la URL de un artículo académico en:

  • metadatos canónicos,

  • texto completo con mejor esfuerzo + división en secciones,

  • un objeto de métodos estructurado validado con Pydantic (pasos / reactivos / equipos / análisis),

  • el repositorio de código asociado al artículo (descubrimiento con mejor esfuerzo),

  • un veredicto de reproducibilidad sin necesidad de ejecución para ese repositorio, y

  • un resumen multimodo.

La cuña: pipelines de gran peso como Paper2Agent (Stanford) tardan de 30 minutos a horas en digerir un artículo en herramientas listas para agentes. methods-mcp es el complemento invocable por agentes y bajo demanda — cada herramienta devuelve resultados en segundos, sin clonar ni ejecutar.


Related MCP server: paperstack

Instalación

uv add methods-mcp
# or, install globally:
uv tool install methods-mcp
# or, classic pip:
pip install methods-mcp

Claves de API

Para un mejor rendimiento, configura ambas:

Variable

¿Obligatoria?

Qué obtienes sin ella

ANTHROPIC_API_KEY

Obligatoria para extract_methods, summarize_paper, methods_repro_review

Esas herramientas lanzan RuntimeError: ANTHROPIC_API_KEY not set. Las herramientas que no usan LLM (fetch_paper_text, find_code_repo, assess_repo_reproducibility) siguen funcionando correctamente.

GITHUB_TOKEN

Opcional pero recomendada para assess_repo_reproducibility / methods_repro_review

Estás limitado al límite de tasa no autenticado de GitHub (60 req/h por IP). Cada evaluación de repositorio requiere ~3 llamadas, así que alcanzarás el techo después de ~15–20 repos/h. Con un token: 5,000 req/h (prácticamente ilimitado).

export ANTHROPIC_API_KEY=sk-ant-...
export GITHUB_TOKEN=ghp_...          # optional but recommended

Ninguna clave se registra ni se persiste; se envían únicamente a api.anthropic.com y api.github.com respectivamente. Consulta SECURITY.md.

Úsalo desde Claude Code

/mcp add methods-mcp methods-mcp

Luego, en cualquier chat de Claude Code:

Toma https://arxiv.org/abs/2509.06917 y ejecuta methods_repro_review. Resume qué hace el artículo, los pasos de los métodos y cuán reproducible parece el repositorio.

Úsalo desde el 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)

Herramientas

Herramienta

Qué hace

health

Comprobación de disponibilidad del servidor + configuración.

get_paper_metadata(input_str)

Resuelve URL / ID de arXiv / DOI a metadatos canónicos. Las entradas de arXiv usan la API de exportación de arXiv para título/autores/resumen.

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

Texto completo + división en secciones. Por defecto usa HTML de ar5iv para artículos de arXiv (barato, estructurado), con respaldo a PDF en otros casos.

extract_methods(input_str, model=None)

Extracción estructurada de métodos impulsada por LLM y validada con Pydantic. Devuelve {steps, reagents, equipment, analyses, confidence}.

find_code_repo(input_str)

Descubre el repositorio de código del artículo mediante texto del artículo → resumen → Papers With Code.

assess_repo_reproducibility(repo_url, paper_id=None)

Evaluación heurística de reproducibilidad sin clonar, mediante la API REST de GitHub. Señales ponderadas (README, dependencias, fixtures, notebooks, scripts de figuras, mantenimiento reciente, licencia) → {verdict, score, recommended_entrypoint}.

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

Resumen con LLM en tres profundidades.

methods_repro_review(input_str)

Compuesta — metadatos + métodos + repositorio + reproducibilidad en una sola llamada.

Todas las herramientas devuelven modelos Pydantic v2 (validados, serializables a JSON). Consulta src/methods_mcp/schemas.py para la superficie completa de tipos.

Notas de diseño

  • extract_methods usa el uso de herramientas de Anthropic para forzar al modelo a emitir una instancia del esquema Pydantic MethodsStructured. Ante un fallo de validación, enviamos un mensaje de reparación con el error de validación y lo intentamos de nuevo antes de lanzar una excepción.

  • assess_repo_reproducibility no clona ni ejecuta nada. Puntúa el repositorio a partir de metadatos de GitHub legibles públicamente + el listado recursivo del árbol. Esta es la cuña deliberada contra las herramientas por lotes que intentan reejecutar el artículo.

  • fetch_paper_text prefiere HTML de ar5iv sobre el análisis de PDF para artículos de arXiv. Usa pypdf como respaldo para entradas que no son de arXiv.

  • El modelo por defecto es claude-sonnet-4-6. Se puede sobrescribir con la variable de entorno METHODS_MCP_MODEL o con el argumento model= por llamada.

  • methods_repro_review devuelve una respuesta autodescriptiva. Cada llamada establece un status de nivel superior ("ok" / "partial" / "empty") y una cadena narrative que resume todo lo recuperado en inglés sencillo, incluida cada puntuación numérica en contexto. Un lector que lea solo narrative + status obtiene la imagen completa sin necesidad de aprender las formas de los subobjetos. Los subobjetos pueden ser null cuando no están disponibles (por ejemplo, repro_assessment: null en un artículo sin repositorio detectado — status permanece "ok" porque "no hay repositorio" no es un fallo). Los subpasos fallidos contribuyen con una entrada estructurada a errors con {step, error_type, message, hint}, donde hint es una sugerencia accionable en inglés sencillo para patrones reconocidos (claves de API faltantes, límites de tasa, 404, tiempos de espera, etc.) y null en caso contrario.

Puntuaciones y veredictos explicados

Las salidas de las herramientas contienen tres campos numéricos que parecen similares pero significan cosas muy diferentes. Son señales de triaje para un agente que decide si vale la pena profundizar en un artículo, no afirmaciones calibradas sobre corrección.

Campo

Rango

Cómo se calcula

Cómo leerlo

methods.confidence

0–1

Autoreporte del LLM. El modelo extractor lo establece según las instrucciones del prompt del sistema: ≥0.8 solo si el artículo da reactivos/volúmenes/equipos explícitos, ~0.3 si la sección de métodos es escasa. Sin calibrar.

Señal suave para "¿es un artículo de laboratorio húmedo con procedimiento concreto, o un artículo de sistemas escaso?" Útil como indicador; no lo trates como un porcentaje de confianza.

code_repo.confidence

0–1

Varía según detection_method. papers-with-code: fijo 0.95 (API autoritativa artículo→repositorio). paper-text: calculado como 0.6 + 0.2·(strong-phrase-present) + 0.015·score_margin, con tope en 0.95. abstract-link: fijo 0.85. none: 0.0.

Te dice cómo se encontró el repositorio y con qué decisión. Puntuación alta + paper-text significa que una frase fuerte como "el código está disponible en …" estaba junto a la URL.

repro_assessment.overall_score

0–1

Suma ponderada de 8 señales binarias, todas calculadas desde la API REST de GitHub (sin clonar, sin ejecutar): 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). Cada señal presente contribuye con su peso.

La única puntuación totalmente determinista de las tres. Sigue siendo una heurística, no una prueba — una puntuación alta significa que el repositorio parece bien estructurado para la reproducción. Para validación real, consulta Paper2Agent.

Categorías de veredicto (repro_assessment.verdict) son umbrales sobre overall_score:

Veredicto

Puntuación

Significado

likely-reproducible

≥ 0.70

La mayoría de las señales favorables a la reproducción están presentes. Vale la pena intentar ejecutarlo.

partial

≥ 0.45

Algo de infraestructura, probablemente con carencias. Espera tener que completar las piezas que faltan.

unlikely

≥ 0.20

Señal mínima. Posible volcado de código sin el andamiaje para volver a ejecutarlo.

insufficient-info

< 0.20 o repositorio inaccesible

No hay suficiente información para saberlo. No saques conclusiones en ningún sentido.

Valores de enumeración que verás en las salidas:

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

  • metadata.source: arxiv | biorxiv | doi | url | unknown

Seguridad y limitaciones

Lo que este servidor realmente hace cuando lo instalas y ejecutas:

  • Llamadas de red solo a: export.arxiv.org, ar5iv.labs.arxiv.org, arxiv.org (PDFs), api.github.com, paperswithcode.com, api.anthropic.com. Sin telemetría, sin análisis, sin llamadas a casa.

  • Lee ANTHROPIC_API_KEY (necesaria para las herramientas LLM) y opcionalmente GITHUB_TOKEN de las variables de entorno. Estos se envían solo a Anthropic / GitHub respectivamente. Nunca se registran ni se persisten en disco.

  • Escribe nada en tu sistema de archivos. Sin directorios de caché, sin PDFs descargados, sin archivos temporales.

  • Ejecuta ningún código proporcionado por el usuario. Sin eval, exec, subprocess, pickle.loads ni llamadas al shell. La herramienta de reproducibilidad deliberadamente no clona ni ejecuta repositorios: solo puntúa desde la API REST de GitHub.

Limitaciones a tener en cuenta:

  • Los artículos adversarios pueden producir salida estructurada engañosa. La herramienta extract_methods envía el texto del artículo a Claude. Un artículo que contenga contenido de inyección de prompts podría producir métodos estructurados incorrectos (pero válidos según el esquema). Trata la salida como una ayuda de investigación, no como una verdad absoluta.

  • El veredicto de reproducibilidad es una heurística, no una prueba. Una puntuación alta significa que el repositorio parece bien estructurado para la reproducción; no garantiza que ejecutar el código reproduzca el artículo. Para una validación completa, consulta Paper2Agent.

  • Diseñado para uso local con stdio. Los transportes HTTP/SSE se proporcionan por conveniencia de desarrollo, pero solo deben exponerse en redes de confianza (sin protección SSRF más allá de la que proporciona httpx).

Informe de problemas:

Problemas de seguridad: envía un correo a flynnlachendro@hotmail.co.uk (consulta también SECURITY.md). Errores funcionales: abre un issue en GitHub.

Combínalo con paper-mcp

Para un conjunto de herramientas más amplio de búsqueda de artículos / grafo de citas, ejecuta paper-mcp (Bhvaik) junto con el mismo en la misma sesión de Claude Code. paper-mcp realiza búsqueda por título, obtención de texto completo, citas y referencias; methods-mcp añade la capa de métodos estructurados + reproducibilidad encima. Los dos fueron diseñados intencionalmente para componerse.

Desarrollo local

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

Licencia

MIT — consulta LICENSE.

Agradecimientos

Construido para la cohorte inaugural de la Worldwide AI Science Fellowship. Gracias a Michael Raspuzzi por el encargo abierto.

Construido sobre:

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