Arxivum
This server is a local research assistant that searches arXiv, builds a personal paper library, and uses local LLMs to summarize, generate ideas, verify novelty, and query papers—all without cloud calls.
Search and import papers from arXiv with optional field-specific queries, category filters, enrichment (citation counts via Semantic Scholar), and summaries.
Query the local library using hybrid vector + metadata retrieval with optional cross-encoder reranking, citation/venue/category filters.
Get detailed paper info including metadata, citation metrics, summaries, and generated ideas.
Generate structured summaries (problem statement, methodology, findings, ablations, discussion, limitations, overall) with caching and section selection.
Generate novel research ideas based on a paper's constraints and inductive biases, including search queries for novelty checks.
Verify novelty of generated ideas against the local library and arXiv, returning verdicts: likely_novel, needs_review, or similar_exists.
List and filter the paper library with pagination, sorting by citations/date, and venue/category filters.
Remove papers and their derived data (summaries, embeddings, cached files).
Monitor agent activity via a detailed action log (search, import, summarize, idea, novelty, query, remove, enrich).
Search and import papers from arXiv into a local library.
Enrich papers with citation counts, venue, and impact data from Semantic Scholar.
Click on "Install 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., "@Arxivumsearch arXiv for recent papers on reinforcement learning and summarize them"
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.
What it does
Search arXiv and import papers into a local library with one tool call.
Enrich every paper with citation counts, venue, and impact data from Semantic Scholar. Free, no API key required.
Summarise papers into structured sections: problem statement, methodology, findings, ablations, discussion, limitations, and an overall assessment. Generated by a local LLM.
Generate ideas grounded in each paper's constraints, assumptions, and inductive biases. Each idea includes suggested search queries for novelty verification.
Verify novelty by checking generated ideas against your local library and arXiv. The LLM judges overlap and returns a verdict: likely novel, needs review, or similar exists.
Query the library with hybrid vector + metadata retrieval and cross-encoder reranking for precise results.
Supervise everything through a visual web panel. Inspect papers, approve or reject ideas, and watch every agent action in real time.
Everything runs on your CPU or a small GPU. No cloud LLM calls. No data leaves your machine.
Related MCP server: paper-mcp
Quick start
1. Install
git clone <repo>
cd arxivum
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,llm]"On Windows, activate the venv with .venv\Scripts\activate instead.
The [llm] extra installs llama-cpp-python, which needs CMake and a C++
compiler. On Windows, install Visual Studio Build Tools first. Without
[llm], everything works except local LLM generation (summaries, ideas,
novelty checks). You can still search, import, enrich, and query the library.
2. Configure
cp .env.example .envEdit .env and add your HF_TOKEN. This is used only for downloading
models from Hugging Face Hub. No remote inference is performed.
3. Download models (~1.5 GB)
python scripts/download_models.pyThis downloads BGE embedding and reranker models (cached by sentence-transformers) and Qwen2.5-1.5B-Instruct GGUF (Q4_K_M, ~1 GB) for local LLM inference.
4. Initialise the database
python scripts/migrate.py5. Run
MCP server for coding agents (Claude Code, Cursor, Freebuff):
python -m src.mcp_serverCommunicates over stdio by default. Set MCP_TRANSPORT=sse in .env for
SSE mode.
Web API + visual panel for human supervision:
python -m src.api.mainVisual panel:
http://localhost:8000Demo page:
http://localhost:8000/demoAPI docs:
http://localhost:8000/docs
MCP tools
The server exposes nine tools, all prefixed with research_:
Tool | Description |
| Search arXiv, import results, optionally enrich and summarise. |
| Hybrid vector + metadata search over your local library. |
| Full metadata, metrics, summaries, and ideas for a paper. |
| Remove a paper and all derived data. |
| Generate or retrieve structured summaries. |
| Generate novel ideas from a paper's constraints. |
| Re-verify an idea's novelty against the library and arXiv. |
| List papers with pagination and filters. |
| Return recent agent actions for supervision. |
Configuration
All settings come from environment variables loaded from .env.
See .env.example for the full list and defaults. Key options:
Variable | Default | Purpose |
|
| SQLite database + ChromaDB location. |
|
| GGUF model file location. |
|
| LLM context window size. |
|
| CPU threads for LLM inference. |
|
| GPU layers to offload (0 = pure CPU). |
|
| MCP transport: |
| unset |
|
| none | Hugging Face token (model download only). |
Testing
pytestUnit, component, and integration tests. Mocked and offline. Runs in ~3 seconds.
Smoke tests require real models and network access. Run them after downloading models:
pytest tests/smoke/ -v -sHow it works
Coding Agent ──MCP stdio──▶ MCP Server ──▶ arXiv API + Semantic Scholar
│
FastAPI + Visual Panel
│
┌───────────────┴───────────────┐
ChromaDB SQLite
(vectors) (metadata/ideas)
│
llama-cpp-python (Qwen2.5-1.5B GGUF)
sentence-transformers (BGE embed/rerank)Retrieval pipeline:
arXiv search results are imported into SQLite (metadata) and ChromaDB (vector embeddings of abstracts and titles).
Semantic Scholar enrichment adds citation counts and venue data.
Generated summary sections are also indexed as vector chunks for fine-grained RAG retrieval.
Library queries use hybrid vector search with metadata pre-filtering, followed by cross-encoder reranking for precision.
Memory management: On constrained machines, only one heavy model
(embedder, reranker, or LLM) is resident at a time. The model manager
automatically unloads the previous model before loading the next. Set
WARM_RESIDENCY=1 on hosts with ≥ 8 GB free RAM to skip the swap and
keep all three loaded. On a 1.5B Q4_K_M GGUF this trades ~1 GB of RAM
for eliminating ~175× cold-load latency (see the
Warm-residency: rows in tests/benchmark/BENCHMARK_RESULTS.md).
Scope
This is a local-only POC. All models, databases, and services run on the user's machine. Cloud and HPC scaling is future work.
License
MIT. See LICENSE.
Available Tools
9 toolsresearch_generate_ideasA
Generate novel research ideas based on a paper's constraints and inductive biases. Each idea includes suggested search queries for novelty verification.
Args: arxiv_id: Source paper's arXiv ID. num_ideas: Number of ideas (1–5, default 3). focus_area: theoretical, applied, methodological, or hybrid.
| Name | Required | Description | Default |
|---|---|---|---|
| arxiv_id | Yes | ||
| num_ideas | No | ||
| focus_area | No | methodological |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the burden. It mentions output includes search queries for novelty verification, but does not disclose other behaviors like computational cost or potential limitations.
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 concise with no unnecessary words. It front-loads the purpose and uses a clear Args list for parameters.
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 presence of an output schema and simple inputs, the description sufficiently covers the tool's behavior. However, it lacks context on when to choose this tool over related tools, which is a minor 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?
Schema description coverage is 0%, but the description's Args section clearly explains each parameter's meaning, including constraints (num_ideas 1-5) and valid values (focus_area options). This adds significant value beyond the schema.
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 generates novel research ideas based on a paper, with a specific verb and resource. It is distinct from sibling tools like research_generate_summary or research_verify_novelty.
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 explicit guidance on when to use this tool versus siblings. The description does not provide context for selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_generate_summaryA
Generate or retrieve a structured summary of a paper. Sections: problem_statement, methodology, findings, ablations, discussion, limitations, overall.
Args: arxiv_id: arXiv ID of the paper. sections: Which sections to generate (default: all). force: Regenerate even if cached (default False).
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | ||
| arxiv_id | Yes | ||
| sections | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses the caching/regenerate behavior via the 'force' parameter but does not mention destructive potential, required permissions, or side effects. It is adequate but not thorough.
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 relatively concise with a clear header sentence, a bullet list of sections, and separate parameter explanations. However, it could be slightly more streamlined.
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 presence of an output schema (so return format is handled), the description covers the main purpose, parameters, and caching behavior. It lacks integration context with sibling tools but is otherwise complete for its complexity.
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%, so the description compensates by explaining 'arxiv_id' (arXiv ID), 'sections' (which sections, default all, lists them), and 'force' (regenerate even if cached). This adds significant meaning beyond the bare schema.
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 action ('Generate or retrieve a structured summary') and the resource ('a paper'). It lists specific sections, making the output explicit. The tool is well-distinguished from siblings like research_get_paper_details and research_generate_ideas.
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 usage by naming parameters but lacks explicit guidance on when to prefer this tool over alternatives. No when-not or sibling comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_get_activity_logB
Return recent agent actions from the activity log for supervision.
Args: limit: Number of entries (default 50). action_type: Optional filter — search, import, summarize, idea, novelty, query, remove, enrich.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| action_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It does not mention that this is a read-only operation, potential rate limits, or any side effects. The description 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 short (two sentences plus an arg list) and immediately states the purpose. However, it could be better structured by front-loading the key information more prominently.
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 (2 optional params, no nested objects) and the presence of an output schema (not shown but indicated), the description adequately covers purpose and parameters. However, it lacks behavioral context like whether entries are ordered or paginated.
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?
Although schema description coverage is 0%, the description compensates by listing the allowed values for action_type (search, import, etc.) and explaining the limit parameter's role. This adds meaning beyond the raw schema.
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 returns recent agent actions from the activity log for supervision. The name and description together uniquely identify this tool among siblings, which are all paper/library-focused.
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?
There is no guidance on when to use this tool versus alternatives like research_search_papers or research_list_library. No exclusions or context about selecting this tool are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_get_paper_detailsA
Get full metadata, citation metrics, summaries, and ideas for a paper in the local library.
Args: arxiv_id: Normalized arXiv ID (e.g. 2106.00001).
| Name | Required | Description | Default |
|---|---|---|---|
| arxiv_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the tool returns metadata, citation metrics, summaries, and ideas, implying it is a read-only operation. However, it does not mention error handling for missing papers or prerequisites like the paper being in the library.
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 two sentences plus an Args section, front-loading the purpose and immediately providing parameter details without any superfluous content.
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 one parameter, an output schema, and low complexity, the description adequately explains what is returned and the parameter format. It could mention the requirement that the paper exists in the library, but overall it is sufficiently complete.
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?
With 0% schema description coverage, the description adds value by clarifying the arxiv_id format ('Normalized arXiv ID (e.g. 2106.00001)'), which is not obvious from the schema alone.
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 retrieves 'full metadata, citation metrics, summaries, and ideas' for a specific paper, distinguishing it from sibling tools like 'research_search_papers' (searching) and 'research_remove_paper' (removing).
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 usage for papers already in the local library and specifies the arxiv_id format, but does not explicitly guide when to use this tool over siblings like 'research_generate_summary' or 'research_generate_ideas'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_list_libraryA
List papers in the local library with pagination and optional filters.
Args: limit: Page size (default 20). offset: Pagination offset (default 0). sort_by: Sort key — citation_count, published, or created_at. primary_category: Optional arXiv category filter (e.g. cs.LG). min_citations: Filter out papers with fewer citations (0 = no filter). venue: Partial venue/conference name filter (e.g. "NeurIPS").
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| venue | No | ||
| offset | No | ||
| sort_by | No | created_at | |
| min_citations | No | ||
| primary_category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of behavioral disclosure. It correctly implies a read-only operation ('List'), but does not explicitly mention that it is non-destructive or discuss permissions, rate limits, or other behavioral traits.
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 concise, front-loaded with the main purpose, and each sentence adds value by detailing a parameter. There is no redundant or irrelevant content.
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 that an output schema exists, the description need not cover return values. It comprehensively explains input parameters and basic behavior, but lacks details such as sorting direction (asc/desc) or pagination limits, which would enhance completeness for a list tool.
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 fully compensates by explaining all 6 parameters (limit, offset, sort_by, primary_category, min_citations, venue) with their purpose, defaults, and examples (e.g., 'e.g. cs.LG', 'e.g. NeurIPS'), adding significant meaning beyond the schema properties.
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 'List papers in the local library with pagination and optional filters', specifying the action (list), resource (papers in local library), and distinguishing features (pagination and filters) that differentiate it from sibling tools like research_search_papers and research_query_library.
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 usage for listing papers with filters and pagination, but it does not explicitly state when to use this tool versus alternatives, nor does it provide any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_query_libraryA
Search the local library for papers relevant to query using hybrid vector + metadata retrieval. Returns JSON with scored results including abstract snippets and citation counts.
Args: query: Natural-language query. top_k: Number of results (default 5). min_citations: Filter out papers with fewer citations (0 = no filter). venue: Partial venue/conference name filter (e.g. "NeurIPS"). primary_category: arXiv category filter (e.g. cs.LG). rerank: Apply cross-encoder reranking (default True).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No | ||
| venue | No | ||
| rerank | No | ||
| min_citations | No | ||
| primary_category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as whether the tool modifies data (it appears read-only but not stated), authorization requirements, or rate limits. It only describes the search algorithm.
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 concise, with a clear structure: first sentence states purpose and method, followed by a bulleted Args list. Every sentence is informative and necessary, with no 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?
Given the tool's complexity (6 parameters, output schema exists), the description covers input meaning, method, and return type adequately. However, it does not mention prerequisites like the library being initialized, but this is minor for a query tool.
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%, but the description includes an Args section that clearly explains each parameter's purpose, default behavior, and acceptable values (e.g., 'Natural-language query', 'Filter out papers with fewer citations'). This fully compensates for the lack of schema descriptions.
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: searching the local library using hybrid vector + metadata retrieval. It specifies the return format (JSON with scored results, abstracts, citations), making the purpose 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?
The description implies usage for searching the local library, contrasting with potential global search siblings, but does not explicitly state when to use this tool versus alternatives like research_search_papers or research_list_library.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_remove_paperA
Remove a paper and all derived data (summaries, ideas, embeddings) from the local library.
Args: arxiv_id: arXiv ID of the paper to remove. delete_files: Also delete cached files (default True).
| Name | Required | Description | Default |
|---|---|---|---|
| arxiv_id | Yes | ||
| delete_files | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that removal affects 'all derived data (summaries, ideas, embeddings)', which is important behavioral context. However, it does not state whether removal is permanent or reversible, nor does it mention any confirmation requirement. With no annotations, this is adequate but incomplete.
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 concise, with a clear structure: a one-line summary of purpose followed by an Args section that explains each parameter. No extraneous information; every sentence adds value.
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 removal tool with two parameters and an output schema, the description covers the main action and side effects. It does not detail error handling or prerequisites (e.g., paper must exist), but it is largely complete for typical 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?
The description adds meaning to both parameters: 'arxiv_id' is described as 'arXiv ID of the paper to remove', and 'delete_files' as 'Also delete cached files (default True)'. Since the input schema has 0% description coverage, the description compensates well by explaining the purpose and default behavior.
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 action 'Remove a paper and all derived data' and specifies the resource 'from the local library'. It distinguishes this tool from siblings like research_search_papers and research_list_library by focusing on deletion.
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 does not provide explicit guidance on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., paper must exist) or situations where removal is not recommended. Siblings like research_get_paper_details or research_verify_novelty are not mentioned in contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_search_papersA
Search arXiv for papers matching query and import them into the local library. Returns a JSON list of imported papers with their arXiv IDs, titles, and citation counts (if enriched).
Args: query: arXiv search query (natural language or field-specific). max_results: Maximum papers to return (1–50, default 10). primary_category: Optional arXiv category filter (e.g. cs.LG). auto_enrich: If True, fetch Semantic Scholar metrics (slower). summarize: If True, generate summaries after import (much slower).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| summarize | No | ||
| auto_enrich | No | ||
| max_results | No | ||
| primary_category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses that it imports papers (mutation), returns a list with specific fields, and notes performance impacts of enrich and summarize options.
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?
Concise 4-line description with clear docstring structure. Front-loaded with purpose, parameter details in bullet list, no wasted words.
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?
Covers all 5 parameters meaningfully, mentions return structure (arXiv IDs, titles, citation counts), and notes performance trade-offs. Output schema exists, so return details need not be exhaustive.
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%, but description fully compensates by explaining query format, max_results range (1-50), primary_category as optional filter, auto_enrich as Semantic Scholar fetch, and summarize as post-import generation.
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?
Description clearly states it searches arXiv and imports papers into the local library, with specific verb (search) and resource (arXiv papers). Differentiates from siblings like research_query_library (queries existing library) and research_get_paper_details.
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?
Provides guidance on parameters like max_results, auto_enrich, and summarize with speed implications. Lacks explicit when-to-use versus alternatives but gives enough context for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_verify_noveltyA
Run a novelty re-verification on a previously generated idea. Checks the local library and arXiv for similar work, then uses the LLM to judge overlap. Returns a verdict: likely_novel, needs_review, or similar_exists.
Args: idea_id: Database ID of the idea (from generate_ideas output). search_query: Optional override query for the arXiv check.
| Name | Required | Description | Default |
|---|---|---|---|
| idea_id | Yes | ||
| search_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description covers behavior: checks library and arXiv, uses LLM for overlap, returns verdicts. However, no mention of side effects, permissions, or cost implications.
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?
Description is structured with purpose, process, and args. It is slightly lengthy but each sentence adds value. Could be more concise without the verbatim typo.
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?
With an output schema, return values are not required, but description mentions verdicts. It covers inputs, process, and output clearly. Lacks error handling or performance notes.
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 has 0% description coverage, but description's Args section fully explains both parameters: idea_id (from generate_ideas) and search_query (optional override). This adds critical meaning beyond schema.
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?
Description uses specific verb 'Run' on resource 'novelty re-verification on a previously generated idea'. It clearly distinguishes from siblings like research_search_papers and research_query_library by focusing on re-verification of existing ideas.
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?
Description states the tool is for ideas from generate_ideas, implying post-generation usage. It explains the verification process but lacks explicit when-not-to-use or alternatives.
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. Dates show when Glama detected each change.
9 tool updates
v0.1.0- First observed
research_generate_ideas - First observed
research_generate_summary - First observed
research_get_activity_log - First observed
research_get_paper_details - First observed
research_list_library - First observed
research_query_library - First observed
research_remove_paper - First observed
research_search_papers - First observed
research_verify_novelty
TDQS
Each tool targets a distinct action and resource: searching/importing vs. querying local library vs. retrieving details vs. removing vs. generating summaries vs. generating ideas vs. verifying novelty vs. listing papers vs. activity log. There is no overlap or ambiguity between them.
All tools follow a consistent pattern: `research_` prefix + imperative verb + optional noun (e.g., `research_search_papers`, `research_generate_summary`). All use snake_case with no mixed conventions, making the pattern predictable and readable.
With 9 tools, the server is well-scoped for an academic research assistant. Each tool provides essential functionality without overloading the interface, covering search, import, retrieval, generation, and verification. The count is within the ideal 3–15 range.
The tools cover the core lifecycle: importing, querying, retrieving details, removing, generating summaries/ideas, and verifying novelty. Minor gaps exist—for example, no tool to manually add a paper by ID or to directly edit metadata—but agents can work around these using existing tools.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Academic research MCP server for paper search, citation checks, graphs, and deep research.
An MCP server that gives your AI access to the source code and docs of all public github repos
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA remote MCP server for searching arXiv papers, extracting paper details, and generating structured prompts for LLM agents.1-
- FlicenseAqualityDmaintenanceA local MCP server for searching and reading arXiv papers, enabling paper search, retrieval, and summarization through Claude.6-
- FlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI assistants to search arXiv papers, retrieve metadata, and access PDFs.-
- AlicenseNot gradedqualityDmaintenanceA MCP server for searching and downloading academic papers from arXiv, PubMed, bioRxiv, and more. It integrates with LLMs like Claude Desktop for paper discovery.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/eddisonpham/Arxivum'
If you have feedback or need assistance with the MCP directory API, please join our Discord server