AI Research Assistant MCP
Provides tools for discovering, retrieving, and analyzing academic papers from arXiv, including search, detailed paper retrieval, summarization, comparison, methodology extraction, limitation analysis, and research gap identification.
Uses Google Gemini for AI-powered research analysis, enabling structured summarization, paper comparison, methodology explanation, limitation analysis, and research gap discovery on academic papers.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AI Research Assistant MCPFind recent papers on retrieval augmented generation and identify potential research gaps."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AI Research Assistant MCP
An MCP-powered AI research assistant for discovering, understanding, comparing, and organizing academic papers.
The server connects to arXiv for paper discovery and uses Gemini to perform research-oriented analysis. It is designed to help researchers move from finding papers to understanding their methods, limitations, and potential research gaps.
Features
π Paper Discovery
Search arXiv using a research topic or keyword.
The server returns:
Paper title
Authors
Abstract
Publication date
Updated date
arXiv URL
PDF URL
π Paper Retrieval
Retrieve detailed information about a specific paper using its arXiv ID or URL.
π Paper Summarization
Generate a structured research-oriented summary covering:
Research problem
Proposed approach
Key results
Main contribution
Why the work matters
βοΈ Paper Comparison
Compare multiple papers across:
Research problem
Core method
Model/retrieval architecture
Dataset or evaluation
Results
Strengths
Weaknesses
Differences
Common findings
Research opportunities
π¬ Methodology Analysis
Extract and explain the methodology of a paper, including:
Research objective
Architecture
Main technique
Data used
Training/retrieval process
Evaluation method
Technical components
β οΈ Limitation Analysis
Analyze papers for:
Explicit limitations
Methodological weaknesses
Evaluation limitations
Dataset limitations
Generalization concerns
Computational concerns
Future research questions
The assistant distinguishes between limitations explicitly supported by the paper and potential research questions inferred from the available information.
π‘ Research Gap Discovery
Given a research topic and multiple papers, identify potential research gaps and provide:
Gap
Evidence from the literature
Why the gap matters
Possible research question
Possible experiment
Expected contribution
The system is instructed not to present an unverified gap as an established fact.
πΎ Research Library
Papers can be saved locally to create a personal research library.
Available operations include:
Save a paper
List saved papers
Search saved papers
Saved papers are stored in saved_papers.json.
Related MCP server: LitSynth MCP Server
Architecture
AI Client
β
β MCP
βΌ
βββββββββββββββββββββββ
β AI Research β
β Assistant Server β
ββββββββββββ¬βββββββββββ
β
βββββββββ΄βββββββββ
β β
βΌ βΌ
arXiv Gemini
Paper Search AI Analysis
β β
βββββββββ¬βββββββββ
βΌ
Research InsightsThe server is implemented with FastMCP and exposes research capabilities as MCP tools.
MCP Tools
The current server provides:
search_papers() get_paper() summarize_paper() compare_papers() extract_methodology() extract_limitations() find_research_gaps() save_paper() list_saved_papers() search_saved_papers()
Technology Stack
Python 3.11+
FastMCP
Model Context Protocol (MCP)
arXiv API
Google Gemini API
Requests
JSON-based local storage
Project Structure
research-assistant/
β
βββ src/
β βββ research_assistant/
β βββ __init__.py
β
βββ server.py
βββ pyproject.toml
βββ README.md
βββ .gitignore
βββ .python-versionSetup
Install the project dependencies with:
uv syncSet your Gemini API key as an environment variable:
GEMINI_API_KEY=your_api_keyDo not commit API keys or .env files to GitHub.
Running the Server
Run the MCP server locally:
uv run server.pyTesting with MCP Inspector
Run:
uv run fastmcp dev inspector server.pyThe MCP Inspector can then be used to test the available tools and verify their responses.
Example Workflow
A typical research workflow can look like:
Research Topic β Search Papers β Select Relevant Papers β Retrieve Paper Details β Summarize Papers β Compare Papers β Analyze Methodology β Analyze Limitations β Identify Potential Research Gaps β Save Important Papers
For example: text "Find papers about retrieval augmented generation and identify potential research gaps."
The assistant can search the literature, retrieve relevant papers, analyze them, and use the available paper information to identify potential research directions.
Research Focus
The project is being developed with a particular interest in Generative AI and Retrieval-Augmented Generation (RAG) research.
Potential future research workflows include studying:
CRAG
Self-RAG
RAG evaluation
Retrieval quality
Hallucination reduction
Semantic retrieval
Conflicting evidence
Research-paper comparison
Literature-gap discovery
Current Status
π§ Active development
Current capabilities focus on:
Paper discovery β Paper analysis β Paper comparison β Research-gap exploration β Personal paper library
Future versions can extend this into deeper paper-level analysis, full-text research, retrieval over saved papers, and more advanced research workflows.
Author
Khushi Sonwane
Built as a hands-on project exploring Generative AI, MCP, academic research workflows, and RAG systems.
Available Tools
10 toolscompare_papersB
Compare multiple research papers.
Each paper should contain:
title
abstract
| Name | Required | Description | Default |
|---|---|---|---|
| papers | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only specifies input requirements (each paper should have title and abstract) but does not explain what the comparison produces, whether it is a read-only analysis, or any side effects. The agent cannot anticipate the output or side effects from the description alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with a front-loaded purpose and a clear list of required fields. Every sentence earns its place; there is no fluff or redundancy. The structure is effective for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal and lacks essential context for correct invocation. It does not explain what kind of comparison is performed (e.g., similarity scoring, thematic overlap), how many papers are expected (though 'multiple' implies at least two), or any potential limitations. While the presence of an output schema may cover return values, the description does not prepare the agent for making a suitable comparison request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description is the only source of parameter meaning. It adds valuable semantics by specifying that each paper object must contain 'title' and 'abstract', which constrains the otherwise permissive schema (array of arbitrary objects). This helps the agent construct valid input, though it could go further by indicating optional fields or the expected number of papers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Compare') and resource ('research papers'), which distinguishes it from sibling tools like summarize_paper or extract_methodology that focus on single-paper analysis. However, it does not specify what aspect is compared (e.g., abstracts, methodology, findings), leaving some ambiguity about the tool's exact scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or context signals that would help an agent decide between compare_papers and other tools like get_paper or summarize_paper. The verb 'compare' implies a general use case, but no direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_limitationsA
Identify limitations and weaknesses mentioned or implied by the provided paper information.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| abstract | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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. The description says 'identify', implying a read-only analysis, but does not explicitly state that the tool makes no modifications, nor does it mention any permissions, limitations, or side effects. It also does not hint at the output format, though an output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence that front-loads the purpose. It contains no filler or redundant phrases and is appropriately concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple extraction tool with only two string parameters and an output schema available, the description covers the essential context: it identifies limitations from paper information, implying the inputs are the title and abstract. It does not specify edge cases or expectations beyond that, but given the simplicity, this is adequate. The presence of an output schema mitigates the need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters, but it does not. It refers generically to 'provided paper information' without explicitly naming 'title' and 'abstract' or clarifying their role. The schema itself is simple (two strings), and the description adds no detail about how these inputs are used or any constraints on them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: identifying limitations and weaknesses in provided paper information. It uses a specific verb ('identify') and resource ('paper information'), and it is distinct from siblings like extract_methodology or summarize_paper, which focus on different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the tool's name and descriptionβif an agent needs limitations, this is the obvious choice. However, there is no explicit guidance on when to use this tool over alternatives, nor any conditions that would make it inappropriate. The usage context is clear but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_methodologyC
Extract the methodology and technical approach from a paper.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| abstract | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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. The one-line description does not state whether this is a read-only operation, whether the paper must already be retrieved/known to the system, whether it returns a structured or narrative result, or any limitations of the extraction. For a tool with zero annotation coverage, this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler; every word contributes to the stated purpose. It is appropriately front-loaded and free of redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and only two parameters, the description is under-specified. It omits the wider context an agent needs: whether this operates on papers already in the system, how it relates to sibling extraction tools like extract_limitations, and what distinguishes its behavior from summarize_paper. A slightly richer description would materially improve call success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no parameter detail β title and abstract are documented only as bare strings. The phrase 'from a paper' loosely suggests these identify the source paper, but the description does not explain their format, relationship, or required content. The description fails to compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Extract') and resource ('methodology and technical approach from a paper'), making the tool's job clear. However, it does not distinguish itself from the sibling extract_limitations, which shares the same extraction pattern β an agent must infer the difference from the resource type alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It neither mentions extract_limitations, summarize_paper, or find_research_gaps, nor states any conditions or exclusions. Usage timing is only implied by the verb-noun phrasing, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_research_gapsC
Analyze multiple papers and identify potential research gaps.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| papers | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 only says 'analyze,' which implies a non-destructive operation, but it doesn't explicitly state whether it modifies state, what side effects exist, or how it handles the papers (e.g., reading vs. fetching). This is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates the core action and outcome without any wasted words. It's appropriately concise for a tool that might need more detail but doesn't have it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no annotations, 0% schema coverage, and an output schema (whose content is unknown), the description is insufficient. It fails to tell the agent how to construct the 'papers' input, what the output will look like, or any constraints on the analysis. More context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description provides no explanation of the parameters. It doesn't clarify what 'topic' should be, how 'papers' should be structured (even though the schema allows any objects), or any required properties within those objects. The description completely fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'analyze' and the resource 'multiple papers' with the specific goal of identifying research gaps. This distinguishes it from siblings like compare_papers (comparison) and extract_limitations (limitations extraction), so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It doesn't mention any conditions or contrast with siblings, leaving the agent to infer when research-gap analysis is appropriate versus other paper-analysis tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_paperA
Retrieve detailed information about a specific arXiv paper.
Example: get_paper("2402.19473")
| Name | Required | Description | Default |
|---|---|---|---|
| arxiv_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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. 'Retrieve' implies a read operation with no side effects, and the example shows input format, but nothing is disclosed about behavior on invalid IDs, response shape, or network dependence. Adequate but thin for a tool with zero annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One purposeful sentence plus a runnable example, with the core purpose front-loaded. No wasted words; the example earns its place by clarifying parameter format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter retrieval tool with an output schema present (so return values needn't be spelled out), the description covers the essential contract: what it does and what input it expects. Slightly light on usage guidance, but essentially complete for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does not describe arxiv_id in prose, but the example '2402.19473' concretely demonstrates the expected arXiv ID format. This adds value beyond the bare string type, though it stops short of explaining accepted variants (e.g., with/without version suffix).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieve) and resource (detailed information about a specific arXiv paper). The qualifier 'specific' plus the example distinguishes it from siblings such as search_papers (finding papers) and summarize_paper (summarizing). An agent can tell it apart from the search/extraction siblings without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is only implied: 'specific arXiv paper' suggests this is for fetching details for a known ID rather than searching, but no explicit when-to-use, when-not-to-use, or named alternatives are given. It doesn't route away from search_papers or list_saved_papers the way an explicit note would.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_saved_papersB
Return all papers saved in the research library.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states the basic function. It does not mention potential behaviors such as pagination, ordering, rate limits, or the possibility of a large response set, leaving the agent without expectations for edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no fluff. It front-loads the essential action and resource, making it easy to parse. It could be slightly more detailed, but for a parameterless list operation it is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with an output schema present, the description is mostly adequate. However, it lacks context about when to prefer this over 'search_saved_papers' or any notes on scale/performance, which would help an agent decide between tools confidently. The absence of usage guidance reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool has zero parameters, so the schema is vacuous. Per the rubric, a 0-param tool earns a baseline of 4; there is nothing to add parameter-wise, and the description doesn't attempt to mislead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Return' and the resource 'all papers saved in the research library', making the primary purpose clear. It implies a comprehensive listing, which distinguishes it from the 'search_saved_papers' sibling that filters saved papers, though it doesn't explicitly name the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like 'search_saved_papers'. The description simply states what it does without context on scenarios where listing all saved papers is appropriate or when a search would be better.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_paperC
Save a research paper to the local research library.
| Name | Required | Description | Default |
|---|---|---|---|
| paper | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 disclosing side effects. 'Save' only implies a write to the library; it does not disclose behavior on duplicate papers, whether the paper is validated for required fields, whether existing entries are replaced or merged, or what outcome is returned on success/failure. There is an output schema present, but the description itself reveals almost no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with zero waste, appropriately sized for a one-parameter tool. It loses a point only because it is so terse that it borders on under-specification for a persistence operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple save operation with an output schema present, the return format does not need explanation. However, the open paper parameter is entirely unexplained, and with no annotations or schema coverage the description leaves a meaningful gap: an agent cannot know what constitutes a valid or complete paper to save. The low complexity is the only thing preventing a score of 1.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does nothing to compensate. The only parameter, paper, is an open object (additionalProperties: true), yet the description never hints at what fields an agent should populate (title, authors, content, URL, metadata, etc.). With the schema being permissive, an agent has no guidance on constructing a valid paper object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (save) and resource (research paper) plus a destination (local research library), which is clear. It also distinguishes the tool from its purely read/transform siblings (search_papers, get_paper, summarize_paper, compare_papers), since saving is the only write-persist operation. It drops one point because 'research library' is somewhat vague about what the library is or where it lives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as list_saved_papers, search_saved_papers, or get_paper. Nothing states whether the paper should come from a prior search_papers/get_paper call, whether it overwrites on duplicate, or when a user should save vs. just retrieve. The usage context is only implied by the verb 'save'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_papersB
Search academic papers on arXiv.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Research topic or keywords. | |
| max_results | No | Number of papers to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations to fall back on, and the description does not disclose any behavioral traits beyond the basic action. It does not mention pagination, result format, rate limits, or any side effects. For a search tool, this is a minimal disclosure leaving the agent without knowledge of what to expect from the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that states the core function without any wasted words. It is appropriately sized for a simple search tool and the information is front-loaded in the opening phrase.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is largely complete: it identifies the domain (arXiv) and the action. The schema already covers parameter details and there is an output schema, so the description need not elaborate on return values. However, it could improve by noting the distinction from saved-paper search, but that is a usage guideline gap rather than a completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters (`query` and `max_results`), so the baseline is 3. The description adds no extra meaning about the parameters; it does not, for example, explain how to structure a good query or what the default result count implies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and a specific resource ('academic papers on arXiv'). It clearly identifies the domain (arXiv) and distinguishes from sibling tools that search saved papers or perform other actions. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not mention when to use this tool versus alternatives like `search_saved_papers`, nor any exclusions or prerequisites. An agent receives no indication of the appropriate context for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_saved_papersC
Search through papers saved in the local research library.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the action ('Search through papers') without clarifying whether it is read-only, what kinds of queries are supported, pagination behavior, or any result constraints. The lack of detail leaves the agent to assume typical search semantics, which is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It is efficient and to the point, though it sacrifices depth for brevity. The structure is appropriate for a simple tool but lacks the informative detail that would warrant a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, but the description fails to convey essential context such as the distinction from sibling tools like 'list_saved_papers' or 'search_papers', the scope of the search, or potential limitations. For a search tool with one parameter and an output schema, more clarity on what is searched and how it differs from alternatives is expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description provides no additional meaning about the 'query' parameter beyond the verb 'Search'. It does not specify whether it accepts full-text keywords, metadata filters, or any query syntax, leaving the agent to guess the expected input format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Search') and a specific resource ('papers saved in the local research library'), making the tool's purpose immediately understandable. It does not explicitly differentiate from sibling 'search_papers', which likely searches a broader set, but the phrase 'saved in the local research library' adequately scopes it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'search_papers' or 'list_saved_papers'. The description implies a use case but does not state explicit conditions, exclusions, or alternatives. An agent must infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_paperC
Generate a research-oriented summary of a paper.
The summary covers:
Problem
Approach
Results
Contribution
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| abstract | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavior. It only states what the summary covers, omitting any mention of side effects, read-only nature, or limitations (e.g., dependence on the provided abstract). It does not contradict annotations because none exist, but it fails to convey critical behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tight and front-loaded: the core action appears first, followed by a clear bullet list of content areas. There is no filler or redundant phrasing, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a complex generative output and two simple inputs, but the description omits operational details like how the abstract should be formatted, whether the summary uses only the abstract or the full paper, and any constraints on input quality. Even though an output schema exists (not shown), the description leaves too much unspecified for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters. It does not mention `title` or `abstract` at all, leaving their roles and expected formats entirely to inference. This is a critical gap that forces the agent to guess what data to pass.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool generates a research-oriented summary of a paper and lists the four covered sections (Problem, Approach, Results, Contribution). This gives an unambiguous purpose, though it does not explicitly differentiate it from sibling tools like extract_methodology or compare_papers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool is for creating a general summary, but it never explicitly says when to prefer it over alternatives such as extract_limitations or find_research_gaps. There is no guidance on prerequisites or scenarios that would route an agent here versus other tools.
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.
10 tool updates
v0.1.0- First observed
compare_papers - First observed
extract_limitations - First observed
extract_methodology - First observed
find_research_gaps - First observed
get_paper - First observed
list_saved_papers - First observed
save_paper - First observed
search_papers - First observed
search_saved_papers - First observed
summarize_paper
TDQS
Scored across 10 tools
Each tool addresses a distinct research task: searching external papers, retrieving details, summarizing, comparing, extracting methodology, managing a personal library, identifying limitations, finding gaps, and saving papers. No two tools overlap in intent; even summarize_paper and extract_methodology focus on different aspects (overall summary vs. specific technical approach).
All tool names follow a consistent verb_noun pattern using snake_case (e.g., search_papers, get_paper, list_saved_papers, find_research_gaps). The verbs clearly describe the action and the nouns the target, making the naming predictable and easy to parse.
With 10 tools, the server is well-scoped for a research assistant. Each tool serves a necessary function in the search-analyze-save pipeline, and the count is neither sparse nor bloated, matching the domain scope appropriately.
The tool surface covers the core research workflow: search, retrieve, summarize, compare, extract methodology, identify limitations, find gaps, and manage a saved library. The only minor omission is a removal/delete operation for saved papers, but this does not create a dead end for typical use cases.
Maintenance
Related MCP Connectors
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Academic literature search, retrieval, and private library management on top of OpenAlex.
Find academic papers across major sources like arXiv, PubMed, bioRxiv, and more. Download PDFs wheβ¦
Search and download academic papers from arXiv, PubMed, bioRxiv, medRxiv, Google Scholar, Semanticβ¦
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI-powered academic paper discovery, search, and analysis from arXiv with advanced features like semantic search, citation network analysis, and multi-format exports (BibTeX, RIS, JSON, CSV). Provides intelligent research assistance through specialized AI prompts for summarization, trend tracking, and literature review automation.17MIT
- FlicenseNot gradedqualityDmaintenanceEnables intelligent academic paper discovery through ArXiv search and AI-powered semantic similarity analysis. Helps researchers find and rank the most relevant papers using natural language queries and state-of-the-art sentence transformers.-
- AlicenseAqualityDmaintenanceEnables searching, downloading, and managing academic papers from arXiv.org through natural language interactions. Provides tools for paper discovery, PDF downloads, and local paper collection management.41MIT
- AlicenseNot gradedqualityDmaintenanceManages arXiv papers: search, download, analyze, and save AI-generated summaries. Enables AI assistants to interact with the arXiv platform.MIT