research-agent
Research memory for AI agents — index arXiv/S2/PDF papers into SQLite, find coverage gaps, file survey reports. Rust CLI + 18-tool MCP server, also a 5-host plugin.
Install / Use
claude mcp add epicsagas -- npx -y github:epicsagas/research-agentIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AI & Machine LearningSupported Platforms
Our assessment of research-agent
research-agent scores 83/100 on our quality scale, 660th of 945 AI & Machine Learning skills we index.
Its MCP Server is 17 KB long, well organised into 25 sections with 12 code examples: a thorough specification that gives an agent plenty to work with.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 8 days ago, so research-agent is actively maintained.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands (1 minor note below). An AI review of the same text found nothing harmful.
- noteInstalls by piping a downloaded script into a shellline 182
irm https://github.com/epicsagas/research-agent/releases/latest/download/install.ps1 | iex
AI review by kimi-k2.7-code on 2026-11-01. Automated pattern scan on 2026-11-01. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
research-agent compared with similar skills
All 4 of these similar skills score higher than research-agent; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| research-agent (this skill)by epicsagas | 83 | 3 | 8d ago | MCP Server |
| claude-memby thedotmack | 100 | 108.0k | today | CLAUDE.md |
| Agent-Reachby Panniantong | 100 | 107.3k | 7d ago | CLAUDE.md |
| Understand-Anythingby Egonex-AI | 100 | 89.4k | 6d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.5k | 1d ago | CLAUDE.md |
Frequently asked questions
- How do I install research-agent?
- Run
claude mcp add epicsagas -- npx -y github:epicsagas/research-agent. The install tabs above show the steps for each supported agent. - Which AI agents does research-agent work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is research-agent safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands (1 minor note below). An AI review of the same text found nothing harmful. It is Apache-2.0-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is research-agent still maintained?
- The repository was last updated 8 days ago, so research-agent is actively maintained.
Skill content
View source on GitHubresearch-agent
<p align="center"> <a href="https://github.com/epicsagas/research-agent/stargazers"><img alt="Stars" src="https://img.shields.io/github/stars/epicsagas/research-agent?style=for-the-badge&labelColor=0d1117&color=ffd700&logo=github&logoColor=white" /></a> <a href="https://github.com/epicsagas/research-agent/issues"><img alt="Issues" src="https://img.shields.io/github/issues/epicsagas/research-agent?style=for-the-badge&labelColor=0d1117&color=ff6b6b&logo=github&logoColor=white" /></a> <a href="https://github.com/epicsagas/research-agent/commits/main"><img alt="Last commit" src="https://img.shields.io/github/last-commit/epicsagas/research-agent?style=for-the-badge&labelColor=0d1117&color=58a6ff&logo=git&logoColor=white" /></a> </p> <p align="center"> <a href="https://github.com/epicsagas/research-agent/releases"><img alt="Version" src="https://img.shields.io/github/v/release/epicsagas/research-agent?style=for-the-badge&labelColor=0d1117&color=fc8d62&logo=github&logoColor=white" /></a> <a href="https://github.com/epicsagas/research-agent/releases"><img alt="Downloads" src="https://img.shields.io/github/downloads/epicsagas/research-agent/total?style=for-the-badge&labelColor=0d1117&color=3498db&logo=github&logoColor=white" /></a> <a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-Apache--2.0-3fb950?style=for-the-badge&labelColor=0d1117" /></a> </p> <p align="center"> <b>English</b> | <a href="docs/i18n/ko/README.md">한국어</a> | <a href="docs/i18n/ja/README.md">日本語</a> | <a href="docs/i18n/zh-Hans/README.md">简体中文</a> | <a href="docs/i18n/zh-Hant/README.md">繁體中文</a> | <a href="docs/i18n/es/README.md">Español</a> | <a href="docs/i18n/fr/README.md">Français</a> | <a href="docs/i18n/de/README.md">Deutsch</a> | <a href="docs/i18n/pt/README.md">Português</a> | <a href="docs/i18n/ru/README.md">Русский</a> | <a href="docs/i18n/it/README.md">Italiano</a> </p> </div>Your long-term research memory — papers indexed, gaps found, reports generated
What is this?
research-agent is a research server for AI agents: it indexes papers (arXiv, Semantic Scholar, local PDFs) into a local SQLite library, and your agent drives it over MCP — ingesting, searching, tracking reading progress, analyzing coverage gaps with its own model, and filing survey reports. No API key required.
The same binary also works as a standalone CLI for terminals and scripts.
Web UI
<p align="center"> <img width="48%" src="./assets/overview.png" alt="dashboard-overview" /> <img width="48%" src="./assets/papers.png" alt="dashboard-overview" /> </p>Showcase
The Ontology Lineage — 2,300 years of ontology research distilled into one static page (Korean · English): a lineage timeline, an integrated architecture, a five-stage learning route, and a browser for all 425 papers — collected, gap-analyzed, and organized with research-agent. The Uncanny Valley of AI Writing — why readers turn away from AI-generated text, fact-checked (Korean · English): 5 cited sources independently verified, 86 papers from arXiv/OpenAlex mapped across 7 themes, counter-evidence, and a 4-gap ledger — collected, gap-analyzed, and organized with research-agent.
Features
| | Feature | Why it matters |
|--|---------|----------------|
| 🤖 | MCP server | 18 tools your agent drives directly over stdio — no API key needed |
| 🧠 | Agent-native analysis | Gap analysis and reports run inside your agent: tools hand over structured state, the agent reasons, results are persisted |
| 🔗 | Citation graph | Paper-to-paper reference edges from OpenAlex, forward and reverse, optionally labeled with Semantic Scholar citation intents |
| 📚 | Paper indexing | arXiv, Semantic Scholar, OpenAlex, Europe PMC (PubMed), bioRxiv-style preprints, local PDFs, and Zotero (a running instance or its export files) |
| 🔍 | Full-text search | FTS5 trigram over title, abstract, notes, tags, keywords and body — works offline |
| 📂 | Topic trees | Organize research hierarchically with sub-topics |
| 📖 | Reading tracker | Queue, track, and rate what you've read |
| ⚡ | Single binary | No runtime, no server — just research |
Quick Start
Install it as a plugin in your AI agent — no Rust toolchain needed:
Claude Code
claude plugin marketplace add epicsagas/research-agent
claude plugin install research-agent@research-agent
Codex
codex plugin marketplace add epicsagas/research-agent
codex plugin add research-agent@research-agent
Antigravity (agy)
agy plugin install https://github.com/epicsagas/research-agent
agy plugin enable research-agent
Grok Build
grok plugin marketplace add epicsagas/research-agent
grok plugin install research-agent@research-agent --trust
Hermes Agent
hermes plugins install https://github.com/epicsagas/research-agent
hermes plugins enable research-agent
Hermes loads the root plugin.yaml and register(ctx) in __init__.py.
It has no MCP support, so the agent drives research through the bundled
skill's CLI commands — install the binary first (brew install epicsagas/tap/research-agent or the curl installer); the SessionStart
auto-install hook does not apply to hermes. If skills_guard blocks the
install scan, set plugins.scan_on_install: false in the hermes config.
The plugin auto-installs the research binary on session start and exposes
18 MCP tools, so the agent can ingest, search, analyze with its own model, and file reports on its own.
Once installed, ask your agent things like:
- "Ingest recent papers on graph neural network training from arXiv"
- "What gaps are left in my <topic> coverage?"
- "Generate a survey report for <topic>"
What those requests look like on the tool level:
| You ask | The agent chains |
|---------|------------------|
| Survey a topic end to end | init → topic_add → ingest (arXiv/S2, linked to the topic) → topic_brief → the agent reasons over the brief with its own model → gaps_record → ingest again aimed at the recorded gaps → report_material → report_save |
| Find something already in the library | query_papers → paper_body(id, query=...) quotes the matching passage with its section and page |
| Track what you have read | update_read (status, 1-5 rating); state for the coverage overview |
| Open the dashboard | Bash: research dashboard, then it tells you http://127.0.0.1:7777 is up |
Everything runs against one local SQLite library (default
~/.research/research.db). For a project-private library, point the server at
a different file once in the host's MCP config ("args": ["mcp", "--db", "./project.research.db"], --db is a global flag), or have the agent pass
--db on skill/CLI invocations.
How your agent uses it
The plugin auto-installs the research binary on session start and starts the
stdio MCP server (research mcp) — the agent discovers and calls the tools
directly; no human typing CLI commands.
Tools (18): init · ingest · index_rebuild · import_papers ·
paper_body · paper_references · query_papers · topic_brief ·
gaps_record · list_gaps · report_material · report_save ·
topics_list · topic_add · state · update_read ·
papers_missing_keywords · enrich_paper.
Analysis is agent-native: topic_brief and report_material hand over the
structured library state (papers, reading progress, recorded gaps, coverage),
the agent reasons over it with its own model, and gaps_record / report_save
persist the findings. When inspecting text, paper_body accepts an optional query
to return anchored evidence snippets (with section and page) instead of the whole body,
saving context. No [llm] config or API key is required anywhere in the
MCP flow.
Smoke test the server over raw JSON-RPC:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"t","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
| research mcp 2>/dev/null
The mcp cargo feature is on by default; build CLI-only with
cargo build --no-default-features.
Standalone CLI (secondary)
Prefer driving it by hand? The same binary works as a plain CLI.
# macOS / Linux — pre-built binary, no Rust required
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/epicsagas/research-agent/releases/latest/download/install.sh | sh
# Windows — pre-built binary, no Rust required
irm https://github.com/epicsagas/research-agent/releases/latest/download/install.ps1 | iex
# Homebrew (macOS / Linux)
brew install epicsagas/tap/research-agent
Using the dashboard
Same database, visual side. Launch it from a terminal, browse it in a browser:
research dashboard # then open http://127.0.0.1:7777 (loopback only)
| Screen | What it shows |
|--------|---------------|
| Overview | Library size, reading depth, pipeline funnel, topic coverage |
| Papers | The library table; click a row for details, open the built-in reader for page-anchored bodies or the stored PDF, edit reading status and rating |
| Pipeline | Where every paper sits from discovered to deep read |
| History | Reverse-chronological feed of everything that happened |
| Results | Knowledge gaps and generated reports |
| Config | Edit [llm], workspace path, dashboard bind settings (token required off loopback) |
Typical loop: check Overview for topic coverage, open Results for the recorded gaps, go back to the terminal and aim the next ingest at those gaps, then track reading progress under Papers.
First-run onboarding
Run research init in a terminal and it walks you through the settings that
matter: database location, the LLM provider used for gap analysis and reports
(the key itself is read from the env var you name, never stored in the file).
Local servers (Ollama, LM Studio) are probed for their
loaded models so you pick from what actually exists. Re-running it is safe:
existing values become the defaults and nothing is reset.
Everything that is configurable shows up in ~/.research/config.toml:
options you have not set appear as commented-out lines with their defaults,
so the file documents itself. research init --no-onboard skips the prompts
(also automatic when stdin is not a terminal, so scripts are never blocked).
Updating
| Method | Command |
|--------|---------|
| curl installer (macOS/Linux) | Re-run the install script above |
| PowerShell installer (Windows) | Re-run the install command above |
| Homebrew | brew upgrade epicsagas/tap/research-agent |
Verify the installed version:
research --version
Commands
| Command | Description |
|---------|-------------|
| research init | Initialize research workspace (interactive onboarding in a terminal: provider, env-var key name; --no-onboard to skip) |
| research ingest <query> [--source arxiv\|s2\|openalex\|europepmc\|preprints\|all] [--limit <n>] [--topic <id>] | Ingest papers from arXiv, Semantic Scholar, OpenAlex, Europe PMC (PubMed), or preprint servers (bioRxiv, medRxiv, …); optionally link directly to a topic |
| research ingest [--source zotero] [query] [--topic <id>] | Read papers from a running Zotero over its local API (ZOTERO_BASE_URL overrides default endpoint, needs "Allow other applications on this computer to communicate with Zotero" enabled); no query pulls the whole library. Not part of --source all — a personal library is not a discovery source |
| research ingest --source pdf --path <file\|dir> [--topic <id>] | Ingest local PDF files (full body text is stored and searchable) |
| `researc
Truncated for display — read the full file on GitHub.
Related Skills
claude-mem
108.0kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Agent-Reach
107.3kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
Understand-Anything
89.4kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
headroom
78.5kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
