CogniResearch
An MCP (Model Context Protocol) server for academic research combining local document search with Semantic Scholar API integration.
Features
- Local RAG: Semantic search over your research documents using sentence transformers and ChromaDB
- Semantic Scholar API: Search academic literature with paper details, abstracts, and citations
- Configurable Personas: Three system prompt variants for different research workflows
- Claude Code Integration: Works as an MCP server within Claude Code
Installation
# Clone and navigate to project
cd cogniresearch-mcp
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# (Optional) Set your Semantic Scholar API key for higher rate limits
cp .env.example .env
# Edit .env and add your API key
Usage
Register with Claude Code
claude mcp add cogniresearch -- python -m cogniresearch.server
Or add to your Claude Code .mcp.json:
{
"mcpServers": {
"cogniresearch": {
"command": "python",
"args": ["-m", "cogniresearch.server"],
"cwd": "/path/to/cogniresearch-mcp"
}
}
}
Available Tools
| Tool | Description | |------|-------------| | search_papers | Search Semantic Scholar for academic papers | | get_paper_details | Get detailed information about a specific paper | | search_library | Semantic search over your local documents | | get_context | Retrieve formatted context for a topic | | list_personas | List available system prompt personas | | set_persona | Switch between personas (default, critical, synthesis) |
Indexing Documents
Place your documents in the ./documents directory (supported formats: .md, .txt, .pdf).
The first search will automatically build the vector index.
Project Structure
cogniresearch-mcp/
├── cogniresearch/
│ ├── __init__.py # Package init
│ ├── server.py # MCP server with tool definitions
│ ├── config.py # Configuration management
│ ├── rag.py # Local RAG implementation
│ └── semantic_scholar.py # Semantic Scholar API client
├── config/
│ └── prompts.yaml # System prompt personas
├── tests/
│ └── test_server.py # Basic tests
├── requirements.txt # Python dependencies
└── README.md # This file
Personas
Default (Academic Research Assistant)
General literature search and citation management with professional, precise tone.
Critical (Methodology Reviewer)
Adversarial evaluation of research design and statistical validity.
Synthesis (Thesis Writing Assistant)
Helps integrate sources into academic prose with proper citation formatting.
Requirements
- Python 3.9+
- See
requirements.txtfor full dependencies
License
MIT License - see LICENSE file for details.











