Nexus MCP Server
๐ Nexus MCP Server
The Hybrid Search & Retrieval Engine for AI Agents.
Nexus is a local Model Context Protocol (MCP) server that combines the best features of Exa (semantic web search) and Ref (documentation-optimized reading). It provides your AI agent (Claude, Cursor, etc.) with the ability to search the web and extract surgical, token-efficient context from documentation without requiring external API keys.
โจ Features
1. Hybrid Search (nexus_search)
Nexus understands that searching for news is different from searching for API docs.
General Mode: Performs broad web searches (like Exa) to find articles, news, and general information.
Docs Mode: Automatically filters results to prioritize technical domains (
readthedocs,github,stackoverflow, official documentation).
2. Intelligent Reading (nexus_read)
Nexus doesn't just dump HTML into your context window. It parses content based on intent.
General Focus: Cleans articles, removing ads, navigation bars, and fluff. Perfect for reading news or blog posts.
Code Focus: Aggressively strips conversational text, retaining only Headers, Code Blocks, and Tables. This mimics
ref.tools, ensuring your model gets pure syntax without the noise.Auto-Detect: Automatically switches to "Code Focus" when visiting technical sites like GitHub or API references.
3. Privacy & Cost
No API Keys Required: Uses DuckDuckGo for search and standard HTTP requests for retrieval.
Runs Locally: Your data stays on your machine until the cleaned context is sent to the LLM.
๐ ๏ธ Installation
Prerequisites
Python 3.10+
Quick Install
Option 1: Using pip (Simplest - Works Everywhere)
# Install directly from GitHub
pip install git+https://github.com/rcdelacruz/nexus-mcp.gitOption 2: Using uvx (Faster, Isolated)
First install uv if you don't have it:
# On macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"Then use uvx (no separate installation needed):
uvx --from git+https://github.com/rcdelacruz/nexus-mcp.git nexus-mcpDevelopment Install
For local development or contributing:
Clone the repository:
git clone https://github.com/rcdelacruz/nexus-mcp.git
cd nexus-mcpInstall in development mode:
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install the package in editable mode
pip install -e .For development with testing tools:
pip install -e ".[dev]"โ๏ธ Configuration
Claude Code (CLI)
Option 1: Using pip (Simplest)
# First install the package
pip install git+https://github.com/rcdelacruz/nexus-mcp.git
# Add the server globally (available in all projects)
claude mcp add nexus --transport stdio --scope user -- nexus-mcp
# Verify installation
claude mcp list # Should show: โ ConnectedOption 2: Using uvx (Requires uv installation)
Make sure you have uv installed first (see Installation section above), then:
# Add the server globally (available in all projects)
claude mcp add nexus --transport stdio --scope user -- \
uvx --from git+https://github.com/rcdelacruz/nexus-mcp.git nexus-mcp
# Verify installation
claude mcp list # Should show: โ ConnectedOption 3: Local Development Setup
If you cloned the repository for development:
# Navigate to nexus-mcp directory
cd /path/to/nexus-mcp
# Install dependencies first
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
# Add the server to Claude Code (project scope)
claude mcp add nexus --scope project -- \
$(pwd)/.venv/bin/python $(pwd)/nexus_server.py
# Verify installation
claude mcp listConfiguration Scopes:
--scope user- Available across all projects (recommended for GitHub install)--scope project- Creates.mcp.json(shareable via git)--scope local- Personal config in~/.claude.json
Check server status:
claude mcp list # Should show: nexus - โ Connected
/mcp # In conversation: shows available toolsClaude Desktop / Cursor
Config Location:
MacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Option 1: Using pip (Simplest)
First install: pip install git+https://github.com/rcdelacruz/nexus-mcp.git
Then add to config:
{
"mcpServers": {
"nexus": {
"command": "nexus-mcp"
}
}
}Option 2: Using uvx (Requires uv installed)
Make sure uv is installed first (see Installation section), then add to config:
{
"mcpServers": {
"nexus": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/rcdelacruz/nexus-mcp.git",
"nexus-mcp"
]
}
}
}For local development:
If you cloned the repo and installed with pip install -e .:
{
"mcpServers": {
"nexus": {
"command": "/ABSOLUTE/PATH/TO/.venv/bin/python",
"args": ["/ABSOLUTE/PATH/TO/nexus_server.py"]
}
}
}Replace /ABSOLUTE/PATH/TO/ with the actual path to your clone.
๐ Usage
Once connected, simply prompt Claude naturally. Nexus handles the tool selection.
Verify It's Working
Check server connection:
claude mcp list
# Should show: nexus - โ Connected
# In a Claude Code conversation:
/mcp
# Should show nexus with 2 tools availableSee VERIFICATION.md for detailed testing instructions.
Scenario 1: Technical Research (Ref Emulation)
User: "How do I use
asyncio.gatherin Python? Check the docs."
Nexus Action:
Search:
nexus_search(query="python asyncio gather", mode="docs")Read:
nexus_read(url="docs.python.org/...", focus="code")
Result: The AI receives only the function signature and code examples, saving context window space.
Scenario 2: General Research (Exa Emulation)
User: "Search for the latest updates on the NVIDIA Blackwell chip."
Nexus Action:
Search:
nexus_search(query="NVIDIA Blackwell updates", mode="general")Read:
nexus_read(url="techcrunch.com/...", focus="general")
Result: The AI reads a clean, ad-free summary of the news article.
๐ง Architecture
Nexus is built on the Model Context Protocol using the FastMCP Python SDK.
Component | Technology | Purpose |
MCP Framework |
| Server implementation and tool registration |
Search Backend |
| Free web search without API keys |
HTTP Client |
| Async HTTP requests with timeout handling |
HTML Parsing |
| Intelligent content extraction |
Doc Detection | Heuristic URL matching | Auto-detection of technical sites |
Production Features
โ Comprehensive Error Handling - All edge cases covered with graceful fallbacks
โ Input Validation - URL format, parameter bounds, and mode validation
โ Proper Logging - Structured logging instead of print statements
โ Configurable Limits - Timeouts, content length, and result counts
โ 85% Test Coverage - 19 comprehensive unit tests
โ Type Hints - Full type annotations for better IDE support
โ Dependency Management - Modern pyproject.toml configuration
๐งช Testing
Run the test suite:
# Activate virtual environment
source .venv/bin/activate
# Run all tests with coverage
pytest
# Run specific test file
pytest tests/test_nexus_server.py -v
# Run manual integration test
python test_manual.py๐ Project Structure
nexus-mcp/
โโโ nexus_server.py # Main MCP server implementation
โโโ tests/ # Comprehensive test suite
โ โโโ __init__.py
โ โโโ test_nexus_server.py
โโโ test_manual.py # Manual integration testing
โโโ pyproject.toml # Project configuration & dependencies
โโโ LICENSE # MIT License
โโโ README.md # This file
โโโ .gitignore # Git ignore rules๐ค Contributing
Contributions are welcome! Please ensure:
All tests pass (
pytest)Code coverage remains above 80%
Follow existing code style and patterns
Add tests for new features
๐ License
MIT License - See LICENSE file for details. Free to use and modify.
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/rcdelacruz/nexus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server