AI Research Assistant MCP
AI Research Assistant MCP
学術論文の発見、理解、比較、整理のためのMCP を活用した AI リサーチアシスタントです。
このサーバーは、論文の発見に arXiv を、研究指向の分析に Gemini を利用します。研究者が論文を見つける段階から、その手法、限界、潜在的な研究ギャップを理解する段階へと進むのを支援するように設計されています。
機能
🔎 論文の発見
研究トピックやキーワードを使用して arXiv を検索します。
サーバーは以下を返します:
論文タイトル
著者
要約
公開日
更新日
arXiv URL
PDF URL
📄 論文の取得
arXiv ID または URL を使用して、特定の論文の詳細情報を取得します。
📝 論文の要約
以下をカバーする、構造化された研究指向の要約を生成します:
研究課題
提案されたアプローチ
主な結果
主な貢献
その研究が重要な理由
⚖️ 論文の比較
複数の論文を以下の観点で比較します:
研究課題
コア手法
モデル/検索アーキテクチャ
データセットまたは評価
結果
強み
弱み
相違点
共通する発見
研究機会
🔬 方法論の分析
論文の方法論を抽出して説明します。以下を含みます:
研究目的
アーキテクチャ
主要な手法
使用されたデータ
トレーニング/検索プロセス
評価方法
技術的コンポーネント
⚠️ 限界の分析
論文を以下の観点で分析します:
明示的な限界
方法論上の弱点
評価の限界
データセットの限界
一般化に関する懸念
計算上の懸念
将来の研究課題
このアシスタントは、論文によって明示的に裏付けられた限界と、利用可能な情報から推測される潜在的な研究課題を区別します。
💡 研究ギャップの発見
研究トピックと複数の論文が与えられた場合、潜在的な研究ギャップを特定し、以下を提供します:
ギャップ
文献からの証拠
そのギャップが重要な理由
考えられる研究課題
考えられる実験
期待される貢献
このシステムは、未検証のギャップを確定した事実として提示しないように指示されています。
💾 研究ライブラリ
論文をローカルに保存して、個人の研究ライブラリを作成できます。
利用可能な操作は次のとおりです:
論文を保存
保存済み論文の一覧表示
保存済み論文の検索
保存された論文は saved_papers.json に保存されます。
Related MCP server: LitSynth MCP Server
アーキテクチャ
AI Client
│
│ MCP
▼
┌─────────────────────┐
│ AI Research │
│ Assistant Server │
└──────────┬──────────┘
│
┌───────┴────────┐
│ │
▼ ▼
arXiv Gemini
Paper Search AI Analysis
│ │
└───────┬────────┘
▼
Research Insightsこのサーバーは FastMCP で実装されており、研究機能を MCP ツールとして公開しています。
MCP ツール
現在のサーバーが提供するもの:
search_papers() get_paper() summarize_paper() compare_papers() extract_methodology() extract_limitations() find_research_gaps() save_paper() list_saved_papers() search_saved_papers()
技術スタック
Python 3.11+
FastMCP
Model Context Protocol (MCP)
arXiv API
Google Gemini API
Requests
JSON ベースのローカルストレージ
プロジェクト構造
research-assistant/
│
├── src/
│ └── research_assistant/
│ └── __init__.py
│
├── server.py
├── pyproject.toml
├── README.md
├── .gitignore
└── .python-versionセットアップ
以下のコマンドでプロジェクトの依存関係をインストールします:
uv syncGemini API キーを環境変数として設定します:
GEMINI_API_KEY=your_api_keyAPI キーや .env ファイルを GitHub にコミットしないでください。
サーバーの実行
MCP サーバーをローカルで実行します:
uv run server.pyMCP Inspector でのテスト
以下を実行します:
uv run fastmcp dev inspector server.pyMCP Inspector を使用して、利用可能なツールをテストし、その応答を検証できます。
ワークフロー例
典型的な研究ワークフローは次のようになります:
研究トピック ↓ 論文の検索 ↓ 関連論文の選択 ↓ 論文詳細の取得 ↓ 論文の要約 ↓ 論文の比較 ↓ 方法論の分析 ↓ 限界の分析 ↓ 潜在的な研究ギャップの特定 ↓ 重要な論文の保存
例: text "Find papers about retrieval augmented generation and identify potential research gaps."
このアシスタントは、文献を検索し、関連論文を取得して分析し、利用可能な論文情報を使用して潜在的な研究の方向性を特定できます。
研究の焦点
このプロジェクトは、生成 AI と検索拡張生成 (RAG) の研究に特に関心を持って開発されています。
将来の研究ワークフローには、以下の研究が含まれる可能性があります:
CRAG
Self-RAG
RAG 評価
検索品質
幻覚の低減
意味的検索
矛盾する証拠
研究論文の比較
文献ギャップの発見
現在のステータス
🚧 開発中
現在の機能は以下に焦点を当てています:
論文の発見 → 論文の分析 → 論文の比較 → 研究ギャップの探索 → 個人の論文ライブラリ
将来のバージョンでは、より深い論文レベルの分析、全文研究、保存された論文に対する検索、より高度な研究ワークフローに拡張できます。
著者
Khushi Sonwane
生成 AI、MCP、学術研究ワークフロー、RAG システムを探求する実践的なプロジェクトとして構築されました。
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