An MCP server implementation for Perplexity models via OpenRouter, providing AI assistants with real-time web search, reasoning, and research capabilities through Sonar models.
Web search using the perplexity/sonar-pro-search model. Returns comprehensive search results with citations, perfect for finding current information.
General-purpose conversational AI with real-time web search using the perplexity/sonar-pro model. Great for quick questions and everyday searches.
Deep, comprehensive research using the perplexity/sonar-deep-research model. Ideal for thorough analysis and detailed reports.
Advanced reasoning and problem-solving using the perplexity/sonar-reasoning-pro model. Perfect for complex analytical tasks.
Tip
Available as an optional parameter for perplexity_reason and perplexity_research: strip_thinking
Set to true to remove <think>...</think> tags from the response, saving context tokens. Default: false
- Get your OpenRouter API Key from OpenRouter Keys
- Replace
your_key_herein the configurations below with your API key - (Optional) Set timeout:
OPENROUTER_TIMEOUT_MS=600000(default: 5 minutes) - (Optional) Set log level:
PERPLEXITY_LOG_LEVEL=DEBUG|INFO|WARN|ERROR(default: ERROR)
claude mcp add perplexity --env OPENROUTER_API_KEY="your_key_here" -- npx -y github:tqtensor/modelcontextprotocolAll these clients use the same mcpServers format:
| Client | Config File |
|---|---|
| Cursor | ~/.cursor/mcp.json |
| Claude Desktop | claude_desktop_config.json |
| Kiro | .kiro/settings/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
{
"mcpServers": {
"perplexity": {
"command": "npx",
"args": ["-y", "github:tqtensor/modelcontextprotocol"],
"env": {
"OPENROUTER_API_KEY": "your_key_here"
}
}
}
}Add to .vscode/mcp.json:
{
"servers": {
"perplexity": {
"type": "stdio",
"command": "npx",
"args": ["-y", "github:tqtensor/modelcontextprotocol"],
"env": {
"OPENROUTER_API_KEY": "your_key_here"
}
}
}
}codex mcp add perplexity --env OPENROUTER_API_KEY="your_key_here" -- npx -y github:tqtensor/modelcontextprotocolMost clients can be manually configured to use the mcpServers wrapper in their configuration file (like Cursor). If your client doesn't work, check its documentation for the correct wrapper format.
If you are running this server at work—especially behind a company firewall or proxy—you may need to tell the program how to send its internet traffic through your network's proxy. Follow these steps:
1. Get your proxy details
- Ask your IT department for your HTTPS proxy address and port.
- You may also need a username and password.
2. Set the proxy environment variable
The easiest and most reliable way is to use OPENROUTER_PROXY. For example:
export OPENROUTER_PROXY=https://your-proxy-host:8080If your proxy needs a username and password, use:
export OPENROUTER_PROXY=https://username:password@your-proxy-host:80803. Alternate: Standard environment variables
If you'd rather use the standard variables, we support HTTPS_PROXY and HTTP_PROXY.
Note
The server checks proxy settings in this order: OPENROUTER_PROXY -> HTTPS_PROXY -> HTTP_PROXY. If none are set, it connects directly to the internet.
URLs must include https://. Typical ports are 8080, 3128, and 80.
For cloud or shared deployments, run the server in HTTP mode.
| Variable | Description | Default |
|---|---|---|
OPENROUTER_API_KEY |
Your OpenRouter API key | Required |
PORT |
HTTP server port | 8080 |
BIND_ADDRESS |
Network interface to bind to | 0.0.0.0 |
ALLOWED_ORIGINS |
CORS origins (comma-separated) | * |
docker build -t perplexity-mcp-server .
docker run -p 8080:8080 -e OPENROUTER_API_KEY=your_key_here perplexity-mcp-serverexport OPENROUTER_API_KEY=your_key_here
npm install && npm run build && npm run start:httpThe server will be accessible at http://localhost:8080/mcp
This server uses the following Perplexity models via OpenRouter:
| Tool | Model |
|---|---|
| perplexity_ask | perplexity/sonar-pro |
| perplexity_research | perplexity/sonar-deep-research |
| perplexity_reason | perplexity/sonar-reasoning-pro |
| perplexity_search | perplexity/sonar-pro-search |
- API Key Issues: Ensure
OPENROUTER_API_KEYis set correctly - Connection Errors: Check your internet connection and API key validity
- Tool Not Found: Make sure the package is installed and the command path is correct
- Timeout Errors: For very long research queries, set
OPENROUTER_TIMEOUT_MSto a higher value - Proxy Issues: Verify your
OPENROUTER_PROXYorHTTPS_PROXYsetup and ensureopenrouter.aiisn't blocked by your firewall. - EOF / Initialize Errors: Some strict MCP clients fail because
npxwrites installation messages to stdout. Usenpx -yqinstead ofnpx -yto suppress this output.