Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Research Guard

FreeNot checked

An MCP server that detects duplicated research directions and probes blind spots before committing to a project, helping researchers avoid wasted effort.

GitHubEmbed

About

An MCP server that detects duplicated research directions and probes blind spots before committing to a project, helping researchers avoid wasted effort.

README

CI License: Apache-2.0 Python 3.11+ Code style: ruff

Detect duplicated research directions before you waste months on them.

An MCP server that makes your AI agent check "has this been done before, where are the pitfalls, what are my blind spots" before cheering you on.

Why?

The most painful cost for researchers is not money - it's time. "Halfway through, I found out someone already did it" is a nightmare almost every researcher has lived through.

Existing research AI tools (Elicit, Consensus, Semantic Scholar) help you find known information faster. Research Guard helps you discover what you don't know you don't know.

How it differs from similar projects

Project Type Focus Limitation
paper-search-mcp / semantic-scholar-mcp MCP server Multi-source paper search & download Search only, no novelty assessment
idea_novelty_checker (AI2/MSR) Research code Novelty assessment benchmark (ACL 2025) Paper reproduction code, not an installable tool
SciSpace Paper Novelty Check Commercial SaaS Pre-submission novelty check Closed-source, paid, not agent-integrable
Research Guard MCP server Pre-project novelty check + blind spot probing See Scope & limitations

Methodology

The pipeline follows the literature-validated retrieve-then-rerank design (Shahid et al., Literature-Grounded Novelty Assessment of Scientific Ideas, SDP@ACL 2025, arXiv:2506.22026). Their ablations show that keyword-only retrieval flags non-novel ideas with just 5.2% accuracy, while facet-based re-ranking reaches 89.7% - which is exactly why Research Guard does not do naive keyword matching.

idea → ① contribution triplet decomposition → ② 5-dimension concept expansion
     → ③ multi-path retrieval (3 sources, concurrent) → ④ citation network expansion
     → ⑤ facet re-ranking (purpose/mechanism/evaluation/application)
     → ⑥ facet-grounded novelty assessment → ⑦ blind spot probing
     → RED / YELLOW / GREEN / UNKNOWN

Novelty definition (facet-based, from the paper above): an idea is novel if and only if it differs from all retrieved papers in at least one core facet (purpose, mechanism, or evaluation), or uniquely combines known facets / applies them to a new application domain.

Core capabilities

Capability Description
Novelty check Decomposes the idea into a "problem + method + innovation" triplet and matches contribution structure, not text similarity
Facet re-ranking LLM re-ranks candidates by facet priority, focusing on the most overlap-prone prior work
Concept expansion 5-dimension terminology expansion: synonyms, paradigm upshifts, alternative methods, cross-domain transfer, known critiques
Citation network expansion Forward citations + backward references to find related work that keyword search misses
Blind spot probing Forced counter-evidence retrieval: surfaces approaches and negative results you haven't considered

Data sources

Three built-in sources, all enabled by default and searched concurrently; results are deduplicated by paper id (papers indexed under different ids across sources may still appear more than once):

Source API key Citation graph Notes
OpenAlex Not required 250M+ works; set OPENALEX_MAILTO to join the polite pool for faster responses
arXiv Not required Preprint coverage
Semantic Scholar Optional Rate-limited without a key; set SEMANTIC_SCHOLAR_API_KEY to lift it

Select sources via the GUARD_SOURCES env var (comma-separated), e.g. GUARD_SOURCES=openalex,arxiv runs fully key-free.

Quick start

Install

Not yet published to PyPI - install from source:

git clone https://github.com/Fengrru/research-guard.git
cd research-guard
pip install -e packages/guard-core
pip install -e packages/guard-mcp

Configure environment variables

# Required: LLM API
export LLM_PROVIDER="openai"
export OPENAI_API_KEY="your_key"
export LLM_MODEL="gpt-4o-mini"        # optional, defaults to gpt-4o-mini

# Optional: data source configuration
export GUARD_SOURCES="semantic_scholar,openalex,arxiv"  # default: all
export SEMANTIC_SCHOLAR_API_KEY="your_key"              # optional, rate-limited without it
export OPENALEX_MAILTO="[email protected]"                # optional, speeds up OpenAlex

Use with Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (on Windows: %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "research-guard": {
      "command": "research-guard",
      "env": {
        "OPENAI_API_KEY": "your_key",
        "OPENALEX_MAILTO": "[email protected]"
      }
    }
  }
}

Example

Just tell Claude:

I want to use Transformers for time-series anomaly detection - check if anyone has done this

Claude calls the check_novelty tool and returns:

🔴 RED - High overlap

Found 3 highly related works:
1. "Anomaly Transformer" (2022) - same core method, differs in attention design
2. "AnomalyGPT" (2023) - combines anomaly detection with LLMs
3. ...

Suggested differentiation: time-series anomaly detection + LLM integration
remains under-explored

MCP tools

Tool Purpose When to use
check_novelty Novelty check (core) Before committing to a direction
expand_concepts Concept expansion To understand the terminology space
smart_search Smart literature search For deep literature surveys
explore_citation_network Citation network expansion To dig deeper after finding seed papers
find_blind_spots Blind spot probing To fill gaps after initial retrieval

Project layout

research-guard/
├── packages/
│   ├── guard-core/          # Core engine (usable standalone)
│   │   └── guard_core/
│   │       ├── sources/     # Built-in sources: OpenAlex / arXiv / Semantic Scholar
│   │       ├── reranker.py  # Facet re-ranking (retrieve-then-rerank)
│   │       └── ...
│   └── guard-mcp/           # MCP server
├── plugins/                 # Data source plugins (implement the DataSource protocol)
└── tests/

Scope & limitations

Important: assessments are based on indexed public literature. The following may be missed:

  • Unpublished work (someone is working on it but hasn't published yet)
  • Cross-language literature (Chinese, Japanese, German, and other non-English papers)
  • Gray literature (patents, theses, technical reports)
  • Work that is semantically equivalent but superficially very different

When retrieval or LLM assessment fails, the system returns an UNKNOWN rating with the reason listed in warnings - it never disguises a failure as GREEN (novel). If facet re-ranking fails, it degrades to retrieval order and says so in warnings.

The system presents facts, it does not make value judgments. The final decision always belongs to the researcher.

Development

# Clone
git clone https://github.com/Fengrru/research-guard.git
cd research-guard

# Install with dev dependencies
pip install -e "packages/guard-core[dev]"
pip install -e "packages/guard-mcp[dev]"

# Lint + tests
ruff check .
pytest

Contributing

Contributions welcome! See CONTRIBUTING.md.

Main directions:

  • New data sources (PubMed, IEEE, CNKI, ... - just implement the DataSource protocol)
  • Domain concept graphs (biomedicine, materials science, ...)
  • Better novelty assessment (embedding pre-filtering, expert few-shot examples, ...)
  • Share your "saved me months" cases

Citation

Methodology reference:

@inproceedings{shahid2025novelty,
  title     = {Literature-Grounded Novelty Assessment of Scientific Ideas},
  author    = {Shahid, Simra and Radensky, Marissa and Fok, Raymond and
               Siangliulue, Pao and Weld, Daniel S. and Hope, Tom},
  booktitle = {Proceedings of the Workshop on Scholarly Document Processing (SDP@ACL)},
  year      = {2025}
}

License

Apache-2.0

from github.com/Fengrru/research-guard

Installing Research Guard

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/Fengrru/research-guard

FAQ

Is Research Guard MCP free?

Yes, Research Guard MCP is free — one-click install via Unyly at no cost.

Does Research Guard need an API key?

No, Research Guard runs without API keys or environment variables.

Is Research Guard hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Research Guard in Claude Desktop, Claude Code or Cursor?

Open Research Guard on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Research Guard with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs