AI integration without the complexity
Intelligent AI model search and discovery with zero-install simplicity
Quick Start β’ Features β’ Documentation β’ Contributing
Nexus is a Model Context Protocol (MCP) server that provides AI-powered web search functionality through the OpenRouter API. It integrates with MCP-compatible clients including Claude Desktop and Cursor, providing search capabilities via the Perplexity Sonar model family.
- Zero-install deployment: Executable via 
npxwith no build requirements - OpenRouter integration: Uses Perplexity Sonar models for web search with citations
 - MCP protocol compliance: Implements standard MCP tool and resource interfaces
 - Production architecture: Includes request caching, deduplication, retry logic, and error handling
 - Type-safe implementation: Full TypeScript coverage with strict type checking
 
- NPX-based execution with zero local installation
 - Cross-platform compatibility (macOS, Linux, Windows)
 - Node.js 18+ runtime requirement
 - Automated version updates via npm registry
 
- Perplexity Sonar model family integration
 - Real-time web search with current information
 - Structured citation extraction from responses
 - Configurable model parameters (temperature, max tokens, penalties)
 
- Comprehensive error handling with typed error classes
 - Request caching with configurable TTL
 - Request deduplication for concurrent identical queries
 - Automatic retry logic with exponential backoff
 - Winston-based structured logging
 - TypeScript strict mode implementation with full type coverage
 
- Node.js 18 or higher
 - OpenRouter API key (register at openrouter.ai)
 
Execute the server without local installation:
# Set your OpenRouter API key
export OPENROUTER_API_KEY=your-api-key-here
# Run the server via NPX
npx nexus-mcpThe server starts and listens for MCP client connections via STDIO transport.
# Test the CLI help
npx nexus-mcp --help
# Test the version
npx nexus-mcp --version
# Run with your API key
OPENROUTER_API_KEY=your-key npx nexus-mcpFor local development or customization:
- Clone the repository:
 
git clone https://github.com/adawalli/nexus.git
cd nexus- Install dependencies:
 
npm install- Build the server:
 
npm run build- Configure your OpenRouter API key:
 
# Copy the example environment file
cp .env.example .env
# Edit .env and add your actual API key
# OPENROUTER_API_KEY=your-api-key-here- Test the server:
 
npm startConfigure MCP clients to execute the server via NPX:
Configuration in ~/.claude/mcp_settings.json:
{
  "mcpServers": {
    "nexus": {
      "command": "npx",
      "args": ["nexus-mcp"],
      "env": {
        "OPENROUTER_API_KEY": "your-api-key-here"
      }
    }
  }
}Restart Claude Code after configuration changes.
Add server configuration in Cursor's MCP settings:
- Name: 
nexus - Command: 
npx - Args: 
["nexus-mcp"] - Environment Variables: 
OPENROUTER_API_KEY=your-api-key-here 
Restart Cursor after configuration changes.
Standard MCP client connection parameters:
- Transport: stdio
 - Command: 
npx - Args: 
["nexus-mcp"] - Environment: 
OPENROUTER_API_KEY=your-api-key-here 
If you prefer using a local installation (after following the local development setup):
{
  "mcpServers": {
    "nexus": {
      "command": "node",
      "args": ["/path/to/nexus-mcp/dist/cli.js"],
      "env": {
        "OPENROUTER_API_KEY": "your-api-key-here"
      }
    }
  }
}Once integrated, you can use the search tool in your MCP client:
Use the search tool to find information about "latest developments in AI"
Search for "climate change solutions" using:
- Model: perplexity/sonar
- Max tokens: 2000
- Temperature: 0.3
The main search tool that provides AI-powered web search capabilities.
Parameters:
query(required): Search query (1-2000 characters)model(optional): Perplexity model to use (default: "perplexity/sonar")maxTokens(optional): Maximum response tokens (1-4000, default: 1000)temperature(optional): Response randomness (0-2, default: 0.7)
Example Response:
Based on current information, here are the latest developments in AI...
[Detailed AI-generated response with current information]
---
**Search Metadata:**
- Model: perplexity/sonar
- Response time: 1250ms
- Tokens used: 850
- Sources: 5 found
OPENROUTER_API_KEY(required): Your OpenRouter API keyNODE_ENV(optional): Environment setting (development, production, test)LOG_LEVEL(optional): Logging level (debug, info, warn, error)
The server supports additional configuration through environment variables:
OPENROUTER_TIMEOUT_MS: Request timeout in milliseconds (default: 30000)OPENROUTER_MAX_RETRIES: Maximum retry attempts (default: 3)OPENROUTER_BASE_URL: Custom OpenRouter API base URL
The server provides a configuration status resource at config://status that shows:
- Server health status
 - Configuration information (with masked API key)
 - Search tool availability
 - Server uptime and version
 
"npx: command not found"
- Ensure Node.js 18+ is installed: 
node --version - Update npm: 
npm install -g npm@latest 
"Cannot find package 'nexus-mcp'"
- The package may not be published yet. Use local installation instead
 - Verify network connectivity for npm registry access
 
NPX takes a long time to start
- This is normal on first run as NPX downloads the package
 - Subsequent runs will be faster due to caching
 - For faster startup, use local installation instead
 
"Permission denied" errors with NPX
- Try: 
npx --yes nexus-mcp --stdio - Or set npm permissions: 
npm config set user 0 && npm config set unsafe-perm true 
"Search functionality is not available"
- Ensure 
OPENROUTER_API_KEYenvironment variable is set - Verify your API key is valid at OpenRouter
 - Check the server logs for initialization errors
 
"Authentication failed: Invalid API key"
- Double-check your API key format and validity
 - Ensure the key has sufficient credits/permissions
 - Test the key directly at OpenRouter dashboard
 
"Rate limit exceeded"
- Wait for the rate limit to reset (usually 1 minute)
 - Consider upgrading your OpenRouter plan for higher limits
 - Monitor usage in your OpenRouter dashboard
 
Connection timeouts
- Check your internet connection
 - The server will automatically retry failed requests
 - Increase timeout if needed: 
OPENROUTER_TIMEOUT_MS=60000 
MCP client can't connect to server
- Verify your MCP configuration uses the correct command and arguments
 - Check that Node.js 18+ is available in your MCP client's environment
 - Ensure the API key is properly set in the environment variables
 
Enable debug logging by:
For local development: Add LOG_LEVEL=debug to your .env file
For MCP clients: Add LOG_LEVEL: "debug" to the env section of your MCP configuration
This will provide detailed information about:
- Configuration loading
 - API requests and responses
 - Error details and stack traces
 - Performance metrics
 
You can test if the server is working by checking the configuration status resource in your MCP client, or by running a simple search query.
For developers working on this server:
# Development with hot reload
npm run dev
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Lint code
npm run lint
# Format code
npm run formatOpenRouter charges for API usage based on token consumption:
- Pricing: See current rates at OpenRouter Models
 - Monitoring: Usage tracking available in OpenRouter dashboard
 - Limits: Configure spending limits in OpenRouter account settings
 - Optimization: Server implements response caching and request deduplication to minimize redundant API calls
 
| π Guide | π Link | π Description | 
|---|---|---|
| Quick Start | Getting Started | Zero-install setup in 30 seconds | 
| API Reference | MCP Tools | Complete command reference | 
| Configuration | Environment Setup | Advanced configuration options | 
| Contributing | Contributing Guide | Join our open source community | 
| Troubleshooting | Common Issues | Solutions to common problems | 
We welcome contributions from developers of all experience levels!
  | 
Contributors are recognized in our:
- Contributors list
 - Release notes for significant contributions
 - Community spotlights and testimonials
 
- Model Context Protocol - The standard we implement
 - OpenRouter - Our AI model provider
 - Claude Desktop - Primary MCP client
 - Cursor - AI-powered code editor with MCP support
 
| π¬ Need Help? | π Resource | 
|---|---|
| Quick Questions | GitHub Discussions | 
| Bug Reports | GitHub Issues | 
| Documentation | OpenRouter Docs β’ MCP Specification | 
| Feature Requests | Enhancement Proposals | 
MIT License - see LICENSE file for details.
Made with β€οΈ by the open source community
β Star us on GitHub β’ π¦ View on NPM β’ π Read the Docs
Nexus: AI integration without the complexity