Nexus logo

Nexus

by adawalli

MCP search server for OpenRouter models, including Perplexity Sonar web search with citations and Grok 4 knowledge responses.

Install Nexus

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "adawalli-nexus": {
      "command": "bunx",
      "args": [
        "nexus-mcp"
      ],
      "env": {
        "OPENROUTER_API_KEY": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

adawalli/nexus connects MCP clients to OpenRouter and exposes an AI-powered search tool backed by Perplexity Sonar and Grok 4 models. Perplexity models provide real-time web search with structured source citations, while Grok 4 answers from training data without live search. It runs over STDIO through Bunx or NPX, making it suitable for clients such as Claude Desktop, Claude Code, and Cursor. Choose it when an agent needs configurable web research or model-based knowledge queries through a single MCP tool.

Use cases

  • Search the live web for current information
  • Research multi-step topics with Sonar Pro
  • Generate exhaustive reports with Sonar Deep Research
  • Answer knowledge questions without live search using Grok 4

Key features

  • OpenRouter-backed AI search
  • Perplexity Sonar real-time web search
  • Structured source citation extraction
  • Selectable search and reasoning models
  • STDIO execution through Bunx or NPX
  • Request caching, retries, and deduplication

Tools1

What Nexus lets your agent do. Expand a tool for its parameters.

Self-reported~18 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

19/19 checks healthy over the last 80d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 11d ago via OSV.dev · nexus-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars22Stargazers on the source repository.
npm downloads490Package downloads in the last 30 days.
Last commit7d agoMost recent push to the default branch.
Tools exposed1Callable tools this server registers over MCP.
Directory activity3 viewsConfig copies, upvotes, and views on AllMCPs.

How Nexus works

What adawalli/nexus does

adawalli/nexus exposes OpenRouter-backed AI search through the Model Context Protocol. Its central search tool accepts a natural-language query and sends it to one of several supported model families. Perplexity Sonar models perform real-time web searches and return answers with extracted source citations. Grok 4 provides responses based on training-data knowledge rather than live web results.

The available model choices cover different search and reasoning needs:

  • sonar for fast questions and current web results
  • sonar-pro for multi-step searches
  • sonar-reasoning-pro for reasoning-oriented web research
  • sonar-deep-research for longer, exhaustive research reports
  • grok-4 for training-data-based answers without real-time search

How it works

The server communicates with an MCP client over STDIO and uses the OpenRouter API for model requests. A query must contain between 1 and 2,000 characters. Optional parameters control the selected model, maximum response length, temperature, and request timeout. The default model is sonar; maximum output tokens default to 1,000, and temperature defaults to 0.3.

Per-model request timeouts differ by capability, from 30 seconds for standard Sonar searches to five minutes for deep research. A per-request timeout can also be supplied within the supported range. Responses include generated content and search metadata such as the model, response time, token usage, timeout, search type, and sources found where applicable.

Internally, requests can be cached and identical concurrent requests deduplicated. Retry handling uses exponential backoff, while typed errors and structured Winston logging support operational diagnosis.

Setup and configuration

Running the package requires Bun 1.0+ or Node.js 18+. The simplest option is to set OPENROUTER_API_KEY and launch the package without installing it locally:

server.ts
export OPENROUTER_API_KEY=your-api-key-here
bunx nexus-mcp

npx nexus-mcp provides the alternative for environments without Bun. MCP client configuration uses the bunx or npx command, the nexus-mcp package argument, and the API key in the process environment. The server uses STDIO transport.

For local development, clone the repository, run bun install, build with bun run build, configure a .env file, and start the resulting server. Optional settings include NODE_ENV, LOG_LEVEL, OPENROUTER_TIMEOUT_MS, OPENROUTER_MAX_RETRIES, and OPENROUTER_BASE_URL.

Tools and capabilities

The search tool supports these parameters:

  • query: required text query
  • model: optional model identifier, defaulting to sonar
  • maxTokens: optional output limit from 1 to 4,000
  • temperature: optional value from 0 to 2
  • timeout: optional request timeout from 5,000 to 600,000 milliseconds

A config://status resource reports server health, masked configuration details, search-tool availability, uptime, and version information. The implementation is written in TypeScript with strict type checking.

Limitations and notes

Perplexity models require OpenRouter access and use real-time search, while Grok 4 does not perform live web searches. Some model choices are premium tiers, and request duration varies substantially by model. The API key is required for operation; configuration status masks the key when reporting configuration details.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Nexus

adawalli/nexus is an MCP server that connects MCP-compatible clients to OpenRouter for AI-powered search through Perplexity Sonar and Grok 4 models. Its main search tool accepts a query plus optional model, token, temperature, and timeout settings, returning generated answers and citation information for web-search models.

Run it without a local install using Bunx or NPX. Set `OPENROUTER_API_KEY`, then execute `bunx nexus-mcp` or `npx nexus-mcp`. Bun 1.0+ or Node.js 18+ is required, and the process communicates with MCP clients over STDIO.

Yes, adawalli/nexus works with Cursor through an MCP STDIO configuration. Set the command to `bunx`, pass `nexus-mcp` as the argument, and provide `OPENROUTER_API_KEY` in the environment. Restart Cursor after changing its MCP settings.

You can select `sonar`, `sonar-pro`, `sonar-reasoning-pro`, `sonar-deep-research`, or `grok-4`. The Perplexity models perform real-time web search, while Grok 4 uses training-data knowledge without live search. `sonar` is the default.

Set `OPENROUTER_API_KEY` before starting the server. Optional variables configure the environment, logging, timeout, retry count, and OpenRouter base URL. The API key can be passed directly in the MCP client's process environment.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewNexus AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/adawalli-nexus?style=directory)](https://allmcps.com/mcp/adawalli-nexus)
HTML Embed
<a href="https://allmcps.com/mcp/adawalli-nexus"><img src="https://allmcps.com/api/badge/adawalli-nexus?style=directory" alt="Nexus on AllMCPs" /></a>