Skip to main content
Glama
freyzo
by freyzo

arXiv Deep Research

Installieren in VS Code Installieren in VS Code Insiders

Ein Model Context Protocol (MCP) Server zum Suchen, Herunterladen und Lesen von arXiv-Papern – konzipiert als spezialisierter Agent für die Integration in Multi-Agenten-Systeme wie Microsoft Magentic-UI und AutoGen.

Die Idee: Anstatt die arXiv-Suche als einfaches Nachschlagewerk zu behandeln, ist dieser Server als erstklassiger Forschungsagent strukturiert – einer, den Sie direkt als McpAgent in ein Team im Magentic-One-Stil einbinden können, wodurch ein Orchestrator Zugriff auf die gesamte wissenschaftliche Literatur als delegierbare Ressource erhält.


Integration mit Magentic-UI

Magentic-UI unterstützt benutzerdefinierte McpAgent-Instanzen über mcp_agent_configs in seiner Konfigurationsdatei. Dieser Server lässt sich direkt einbinden:

# examples/magentic_ui_config.yaml
client:
  mcp_agent_configs:
    - agent_name: ArxivResearcher
      description: >
        Specialist agent for searching and reading arXiv papers.
        Use when the task requires finding academic papers, understanding
        research literature, or retrieving technical details from published work.
      server_params:
        type: StdioServerParams
        command: python
        args: ["-m", "arxiv_mcp_server"]
        env:
          PYTHONPATH: /path/to/arxiv-deep-research/src

Sobald der Magentic-UI-Orchestrator registriert ist, kann er Forschungs-Teilaufgaben an diesen Agenten über das Standard-Muster „Task Ledger / Progress Ledger“ delegieren – genau wie WebSurfer das Webbrowsing handhabt, nur eben für wissenschaftliche Literatur.


Related MCP server: ArXiv Paper MCP

Integration mit AutoGen AgentChat

Siehe examples/autogen_research_team.py für ein vollständiges 3-Agenten-Team:

Orchestrator (MagenticOneGroupChat)
├── ArxivSurfer  ← this MCP server, wrapped via StdioServerParams + mcp_server_tools
└── Coder        ← synthesizes findings into structured markdown reports
pip install "autogen-agentchat" "autogen-ext[openai]" "mcp>=1.2.0"
export OPENAI_API_KEY=...
python examples/autogen_research_team.py

Tools

Tool

Beschreibung

search_papers

arXiv mit erweiterten Filtern abfragen: Datumsbereich, Kategorie, Sortierung nach Relevanz oder Datum

download_paper

Ein Paper als PDF abrufen und für die LLM-Verarbeitung in sauberes Markdown konvertieren

read_paper

Zugriff auf bereits heruntergeladene Paper-Inhalte

list_papers

Alle Paper im lokalen Speicher anzeigen

Unterstützt eine reichhaltige Abfragesyntax – Anführungszeichen für Phrasen, boolesche Operatoren, feldspezifische Suche (ti:, au:, abs:) und Kategoriefilterung:

{
  "query": "\"multi-agent\" AND \"orchestration\" ANDNOT survey",
  "max_results": 10,
  "date_from": "2024-01-01",
  "categories": ["cs.AI", "cs.MA"],
  "sort_by": "relevance"
}

Mehrstufige Forschungspipeline

Auf einer hohen Ebene führt arxiv-deep-research eine einfache, aber leistungsstarke mehrstufige Schleife aus:

  1. Planung der Forschungsaufgabe

    • Ein Koordinationsagent (zum Beispiel der AutoGen MagenticOneGroupChat-Orchestrator) nimmt das Benutzerziel entgegen und unterteilt es in Teilaufgaben.

  2. Entdeckung von Kandidaten-Papern

    • Der Koordinator ruft das MCP-Tool search_papers auf, um relevante arXiv-Paper nach Thema, Kategorie und Datum zu finden.

  3. Herunterladen und Normalisieren von Inhalten

    • Für ausgewählte IDs ruft er download_paper auf, das das PDF abruft und für das Lesen durch LLMs in sauberes Markdown konvertiert.

  4. Tiefe Paper-Analyse

    • Der Koordinator (oder ein anderer Agent) verwendet den Prompt deep-paper-analysis, um eine strukturierte Analyse einer bestimmten Paper-ID anzufordern, optional über mehrere Aufrufe hinweg, während Sie verwandte Arbeiten erkunden.

  5. Synthese und Berichterstattung

    • Ein nachgelagerter Agent wie Coder (im AutoGen-Beispiel) verwandelt diese Analysen in einen abschließenden Forschungsbericht: Zusammenfassungen, Vergleichstabellen, offene Probleme und Vorschläge für nächste Schritte.

Sie können diese Pipeline manuell ausführen, indem Sie die Tools und Prompts von jedem MCP-fähigen Client aufrufen, oder automatisch unter Verwendung des Beispiel-AutoGen-Teams.


Evaluierungs-Benchmark

Das Repository enthält einen Benchmark für die Abrufqualität (eval/benchmark.py), der Folgendes misst:

  • Precision@K — Anteil der relevanten Ergebnisse unter den Top-K

  • Recall@K — Anteil der bekannten relevanten Paper, die in den Top-K gefunden wurden

  • MRR — Mean Reciprocal Rank des ersten relevanten Ergebnisses

Ground-Truth-Abfragen basieren auf wegweisenden Papern (AutoGen 2308.08155, Magentic-One 2411.04468, RAG 2005.11401, CoT 2201.11903) und können automatisch mithilfe der unten beschriebenen Pipeline für synthetische Daten erweitert werden.

python eval/benchmark.py --k 10 --output results.json

Generierung synthetischer Evaluierungsdaten (AgentInstruct-Stil)

scripts/generate_eval_tasks.py implementiert eine 4-stufige Pipeline, die diverse Benchmark-Abfragen aus arXiv-Abstracts generiert – nach dem Vorbild des AgentInstruct-Ansatzes:

Stage 1: Seed collection     → fetch paper abstracts from arXiv by category
Stage 2: Content transform   → extract key concepts and problem statements
Stage 3: Instruction gen     → generate realistic research queries via GPT-4o-mini
Stage 4: Instruction refine  → create harder variants at subtopic intersections
export OPENAI_API_KEY=...
python scripts/generate_eval_tasks.py --seed-category cs.AI --num-seeds 20 --output eval/generated_queries.json

Die Ausgabe enthält Schwierigkeitsgrade (einfach/mittel/schwer) für eine stratifizierte Evaluierung.


Beobachtbarkeit: OpenTelemetry Tracing

Jeder Tool-Aufruf ist mit OpenTelemetry-Spans instrumentiert (spiegelt die eingebaute OTel-Unterstützung von AutoGen v0.4 wider):

# Console output (no infrastructure needed)
export ARXIV_MCP_TRACE_CONSOLE=true
python -m arxiv_mcp_server

# OTLP export to Jaeger / Azure Monitor
docker run -d --name jaeger -p 16686:16686 -p 4317:4317 jaegertracing/all-in-one
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
export OTEL_SERVICE_NAME=arxiv-mcp-server
python -m arxiv_mcp_server
# View traces: http://localhost:16686

Aufgezeichnete Spans: mcp.tool.search_papers, mcp.tool.download_paper, mcp.tool.read_paper – jeweils mit Abfrage, Kategorien, Ergebnisanzahl, Latenz und Fehlerstatus als Attribute.

Tracing ist ein Zero-Cost-No-Op, wenn opentelemetry-sdk nicht installiert ist.


Installation

Erfordert Python 3.11+

git clone https://github.com/freyzo/arxiv-deep-research
cd arxiv-deep-research
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

# Optional: OTel tracing
pip install -e ".[tracing]"

Claude Desktop

{
  "mcpServers": {
    "arxiv": {
      "command": "/path/to/.venv/bin/python",
      "args": ["-m", "arxiv_mcp_server", "--storage-path", "/path/to/papers"]
    }
  }
}

Cursor

{
  "mcpServers": {
    "arxiv": {
      "command": "python",
      "args": ["-m", "arxiv_mcp_server"],
      "env": { "PYTHONPATH": "/path/to/arxiv-deep-research/src" }
    }
  }
}

Prompts

deep-paper-analysis

Umfassender Analyse-Workflow, der eine Zusammenfassung für Führungskräfte, Methodik, Ergebnisse, Implikationen und zukünftige Richtungen abdeckt:

{ "paper_id": "2401.12345" }

Ausführen und Fortsetzen von Forschungssitzungen

Es gibt heute zwei Hauptwege, Forschungssitzungen durchzuführen.

1. AutoGen Multi-Agenten-Team (empfohlene Demo)

Dies verwendet OpenAI-Modelle, um einen vollständigen Forschungsworkflow zu koordinieren.

cd arxiv-deep-research
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
pip install "autogen-agentchat" "autogen-ext[openai]" "mcp>=1.2.0"

export OPENAI_API_KEY=your_openai_key
python examples/autogen_research_team.py

Dies startet eine interaktive Konsolen-UI, in der:

  • der Orchestrator die Arbeit plant,

  • ArxivSurfer Paper über MCP sucht und herunterlädt, und

  • Coder den abschließenden Markdown-Bericht schreibt.

Um eine Sitzung fortzusetzen, können Sie:

  • das Skript erneut ausführen und die vorherige Zusammenfassung als Teil einer neuen Aufgabe einfügen, oder

  • dieselbe Konsolensitzung offen lassen und dem Team eine Folgeanweisung geben (zum Beispiel: „Konzentriere dich jetzt auf Sicherheits-Trade-offs“).

2. Direkte MCP-Nutzung von Tools wie Claude Desktop oder Cursor

Sie können auch direkt mit dem MCP-Server sprechen und Ihre eigene Schleife aufbauen:

cd arxiv-deep-research
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

export ARXIV_MCP_TRACE_CONSOLE=true   # optional
python -m arxiv_mcp_server

Während dieser Server läuft, kann jeder MCP-fähige Client:

  • search_papers und download_paper aufrufen,

  • read_paper verwenden, um Inhalte in den Chat zu ziehen, und

  • den deep-paper-analysis-Prompt mehrfach aufrufen.

Der Prompt-Handler behält einen einfachen globalen Forschungskontext bei, sodass wiederholte Aufrufe im selben Prozess zuvor analysierte Paper-IDs erwähnen und das Modell dazu ermutigen, diese miteinander zu verknüpfen. In der Praxis bedeutet das „Fortsetzen“ einer Forschungssitzung:

  • den MCP-Serverprozess am Laufen zu halten, und

  • neue deep-paper-analysis-Aufrufe für neue Paper-IDs vom selben Client oder Arbeitsbereich aus zu tätigen.


Repository-Struktur

arxiv-deep-research/
├── src/arxiv_mcp_server/
│   ├── server.py          # MCP server + OTel init
│   ├── tracing.py         # @trace_tool decorator, OTLP + console exporters
│   ├── config.py
│   ├── tools/             # search, download, read, list
│   └── prompts/           # deep research analysis prompt
├── examples/
│   ├── autogen_research_team.py   # Magentic-One-style 3-agent team
│   └── magentic_ui_config.yaml    # McpAgent config for Magentic-UI
├── eval/
│   └── benchmark.py       # Precision@K / Recall@K / MRR harness
├── scripts/
│   └── generate_eval_tasks.py     # AgentInstruct-style query generator
└── pyproject.toml

Umgebungsvariablen

Variable

Standardwert

Beschreibung

ARXIV_STORAGE_PATH

~/.arxiv-mcp-server/papers

Speicherort für Paper

ARXIV_MCP_TRACE_CONSOLE

false

Konsolen-Trace-Ausgabe aktivieren

OTEL_EXPORTER_OTLP_ENDPOINT

—

OTLP-Endpunkt (z. B. http://localhost:4317)

OTEL_SERVICE_NAME

arxiv-mcp-server

Dienstname in Traces

Wenn Sie den optionalen Evaluierungsdatengenerator verwenden, benötigen Sie zusätzlich:

Variable

Beschreibung

OPENAI_API_KEY

Wird von scripts/generate_eval_tasks.py verwendet, um mit gpt-4o-mini zu kommunizieren


Bekannte Probleme

  • Modellunterstützung ist derzeit nur auf OpenAI beschränkt.

    • Das AutoGen-Forschungsteam und der synthetische Evaluierungsgenerator rufen beide OpenAI-Modelle (gpt-4o / gpt-4o-mini) über das OpenAI Python SDK auf.

    • Es gibt noch keine erstklassige google-genai / Gemini- oder Gemma-Integration, obwohl das Design dies unterstützen würde.

  • Noch keine MCP-Ressourcen.

    • Paper werden nur über Tools (read_paper) bereitgestellt, nicht als MCP-Ressourcen mit stabilen arxiv://-URIs. MCP-Clients, die Ressourcen bevorzugen, können Paper noch nicht auflisten.

  • Begrenzte Tests.

    • Die Kernlogik für Abruf und Evaluierung verfügt nur über sehr wenige automatisierte Tests; Metrikfunktionen und Tool-Handler sollten im Laufe der Zeit Unit-Tests erhalten.


Roadmap

Geplante Verbesserungen (Änderungen vorbehalten):

  • Gemini / Gemma-Unterstützung via google-genai

    • Hinzufügen einer optionalen google-genai-Abhängigkeit und eines kleinen Runners, der Gemini/Gemma-Modelle mit GEMINI_API_KEY aufrufen kann.

    • Bereitstellung als alternatives Backend für die Forschungsteam-Demo und den Evaluierungsgenerator.

  • MCP-Ressourcen für heruntergeladene Paper

    • Implementierung von list_resources / read_resource, damit heruntergeladene PDFs als arxiv://paper_id-Ressourcen in MCP-Clients erscheinen.

  • Stärkere Tests und Evaluierungen

    • Hinzufügen von Unit-Tests für Metriken, Suchhilfen und Prompt-Handler.

    • Automatisierung der Ausführung von eval/benchmark.py und Verfolgung von Regressionen im Zeitverlauf.

  • Reichhaltigere Forschungssitzungen

    • Ersetzen des einfachen globalen Forschungskontexts durch explizite Sitzungs-IDs und persistierten Status, sodass „Sitzung X fortsetzen“ zu einem erstklassigen Feature über Neustarts hinweg wird.


Available Tools

4 tools
download_paperC

Download a paper and create a resource for it

ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYesThe arXiv ID of the paper to download
check_statusNoIf true, only check conversion status without downloading

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'download a paper and create a resource', implying a write operation, but doesn't specify details like file format, storage location, permissions required, or error handling. For a tool with no annotations, this is insufficient to inform the agent adequately.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It is front-loaded with the core action ('download a paper') and avoids unnecessary details, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (involving download and resource creation), no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like what 'create a resource' entails, potential side effects, or return values. This leaves significant gaps for the agent to understand the tool fully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, clearly documenting both parameters ('paper_id' and 'check_status'). The description adds no additional meaning beyond the schema, such as explaining the resource creation process or default behaviors. With high schema coverage, the baseline score of 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('download a paper') and resource ('create a resource for it'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'read_paper' or 'list_papers', which might involve similar paper-related operations without the download aspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'read_paper' or 'search_papers'. It lacks context such as prerequisites (e.g., needing a valid arXiv ID) or exclusions (e.g., not for checking status only). This leaves the agent without clear usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_papersA

List all existing papers available as resources

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description bears full responsibility for behavioral disclosure. It fails to mention that the operation is read-only, whether pagination exists, or any limits, which is insufficient for a listing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no unnecessary words. Every word is meaningful and succinct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description should compensate by describing return format or behavior. It only states 'papers' without any detail on what fields or structure is returned, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and 100% schema coverage, the baseline is 4. The description adds meaning by specifying the scope ('all existing papers, available as resources'), which is not present in the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List all existing papers available as resources' clearly states the action (list) and resource (papers), differentiating from siblings get_paper_content and search_papers which focus on individual paper content or search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining a list of all papers, but does not provide when-to-use or when-not-to-use guidance relative to sibling tools, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_paperC

Read the full content of a stored paper in markdown format

ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYesThe arXiv ID of the paper to read

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states the basic operation. It does not disclose behavioral traits such as permissions needed, error handling (e.g., for invalid paper_id), rate limits, or whether it's a read-only operation (implied but not confirmed). More context is needed for a mutation-sensitive agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste—front-loaded with the core action and resource, and includes the output format. Every word earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool that retrieves content. It lacks details on return values (e.g., markdown structure, error responses), behavioral context, or usage relative to siblings, leaving gaps for an agent to operate effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the parameter 'paper_id' fully documented as 'The arXiv ID of the paper to read'. The description adds no additional meaning beyond this, such as format examples or constraints, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('read the full content') and resource ('stored paper'), specifying the output format ('in markdown format'). It distinguishes from siblings like 'download_paper' (which might retrieve files) and 'list_papers'/'search_papers' (which list or search metadata), but does not explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'download_paper' (e.g., for raw files vs. markdown content) or 'list_papers'/'search_papers' (e.g., for browsing vs. reading). The description implies usage for accessing content but lacks explicit context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_papersA

Search for papers on arXiv with advanced filtering and query optimization.

QUERY CONSTRUCTION GUIDELINES:

  • Use QUOTED PHRASES for exact matches: "multi-agent systems", "neural networks", "machine learning"

  • Combine related concepts with OR: "AI agents" OR "software agents" OR "intelligent agents"

  • Use field-specific searches for precision:

    • ti:"exact title phrase" - search in titles only

    • au:"author name" - search by author

    • abs:"keyword" - search in abstracts only

  • Use ANDNOT to exclude unwanted results: "machine learning" ANDNOT "survey"

  • For best results, use 2-4 core concepts rather than long keyword lists

ADVANCED SEARCH PATTERNS:

  • Field + phrase: ti:"transformer architecture" for papers with exact title phrase

  • Multiple fields: au:"Smith" AND ti:"quantum" for author Smith's quantum papers

  • Exclusions: "deep learning" ANDNOT ("survey" OR "review") to exclude survey papers

  • Broad + narrow: "artificial intelligence" AND (robotics OR "computer vision")

CATEGORY FILTERING (highly recommended for relevance):

  • cs.AI: Artificial Intelligence

  • cs.MA: Multi-Agent Systems

  • cs.LG: Machine Learning

  • cs.CL: Computation and Language (NLP)

  • cs.CV: Computer Vision

  • cs.RO: Robotics

  • cs.HC: Human-Computer Interaction

  • cs.CR: Cryptography and Security

  • cs.DB: Databases

EXAMPLES OF EFFECTIVE QUERIES:

  • ti:"reinforcement learning" with categories: ["cs.LG", "cs.AI"] - for RL papers by title

  • au:"Hinton" AND "deep learning" with categories: ["cs.LG"] - for Hinton's deep learning work

  • "multi-agent" ANDNOT "survey" with categories: ["cs.MA"] - exclude survey papers

  • abs:"transformer" AND ti:"attention" with categories: ["cs.CL"] - attention papers with transformer abstracts

DATE FILTERING: Use YYYY-MM-DD format for historical research:

  • date_to: "2015-12-31" - for foundational/classic work (pre-2016)

  • date_from: "2020-01-01" - for recent developments (post-2020)

  • Both together for specific time periods

RESULT QUALITY: Results sorted by RELEVANCE (most relevant papers first), not just newest papers. This ensures you get the most pertinent results regardless of publication date.

TIPS FOR FOUNDATIONAL RESEARCH:

  • Use date_to: "2010-12-31" to find classic papers on BDI, SOAR, ACT-R

  • Combine with field searches: ti:"BDI" AND abs:"belief desire intention"

  • Try author searches: au:"Rao" AND "BDI" for Anand Rao's foundational BDI work

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query using quoted phrases for exact matches (e.g., '"machine learning" OR "deep learning"') or specific technical terms. Avoid overly broad or generic terms.
max_resultsNoMaximum number of results to return (default: 10, max: 50). Use 15-20 for comprehensive searches.
date_fromNoStart date for papers (YYYY-MM-DD format). Use to find recent work, e.g., '2023-01-01' for last 2 years.
date_toNoEnd date for papers (YYYY-MM-DD format). Use with date_from to find historical work, e.g., '2020-12-31' for older research.
categoriesNoStrongly recommended: arXiv categories to focus search (e.g., ['cs.AI', 'cs.MA'] for agent research, ['cs.LG'] for ML, ['cs.CL'] for NLP, ['cs.CV'] for vision). Greatly improves relevance.
sort_byNoSort results by 'relevance' (most relevant first, default) or 'date' (newest first). Use 'relevance' for focused searches, 'date' for recent developments.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description fully discloses behavioral traits: results sorted by relevance by default, date filtering format, category filtering recommendations, and query optimization. No contradictions or omissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with sections, examples, and readability. Slightly verbose but each section adds value. Front-loaded core purpose, but could be more concise without losing utility.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Completely covers all 6 parameters with usage patterns and examples. No output schema expected; description compensates by explaining result relevance and filtering. No missing critical information for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%. The description adds significant value beyond schema by explaining query syntax, category codes, date formats, and sort behavior, enabling precise use.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool searches for papers on arXiv with advanced filtering. Distinguishes from sibling tools like get_paper_content and list_papers by emphasizing search and filtering capabilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides extensive guidelines on query construction, category filtering, date filtering, and examples. However, it does not explicitly state when not to use the tool or directly mention alternatives, though sibling names imply use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.3.1
    • First observeddownload_paper
    • First observedlist_papers
    • First observedread_paper
    • First observedsearch_papers

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a distinct and clear purpose: download_paper fetches new papers, list_papers shows existing resources, read_paper accesses stored content, and search_papers finds papers on arXiv. There is no overlap in functionality, making it easy for an agent to select the correct tool for any task.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (e.g., download_paper, list_papers, read_paper, search_papers). This uniformity enhances readability and predictability, allowing agents to easily understand and use the toolset.

Tool Count5/5

With 4 tools, the server is well-scoped for its arXiv paper management domain. Each tool serves a specific and necessary function—searching, downloading, listing, and reading papers—without being overly sparse or bloated, making it efficient for agent workflows.

Completeness5/5

The toolset provides complete coverage for the core arXiv paper workflow: search_papers finds papers, download_paper acquires them, list_papers manages resources, and read_paper accesses content. This covers the full lifecycle from discovery to consumption, with no obvious gaps for typical agent tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to search and access arXiv research papers through a simple Message Control Protocol interface, allowing for paper search, download, listing, and reading capabilities.
    4
    7
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    Enables searching, retrieving, and parsing academic papers from arXiv, including keyword search, PDF downloads, content extraction from HTML/PDF formats, and accessing the latest AI research papers.
    4
    10 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables searching and retrieving academic papers from arXiv with support for advanced filtering by author, category, and date, plus full paper content extraction.
    6
    15
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables agents to search, analyze, and explore arXiv academic papers with advanced multi-field search, author lookup, category browsing, citation extraction, and bibliography export.
    29 npm
    Apache 2.0