Perplexity Ask MCP Server
LocalAbout Perplexity Ask MCP Server
Perplexity Ask MCP Server is the official MCP server for the Perplexity API Platform, giving AI assistants real-time search, research, and reasoning capabilities. It can connect to a hosted remote server, run locally, or be embedded in a Node.js process.
Key features
- 01Perform real-time web searches
- 02Answer questions with web search
- 03Run deep research and report progress
- 04Handle complex analysis and reasoning
- 05Support remote and local deployment
- 06Configure proxy network access
Use cases
- 01Find current web information with date or domain filters
- 02Generate detailed reports for complex research questions
- 03Analyze problems and obtain reasoning results
- 04Connect to the Perplexity API through a corporate proxy
MCP support
The MCP server exposes Perplexity Search API and Agent API capabilities as tools for MCP clients, including search, question answering, deep research, and reasoning. Clients can connect over Streamable HTTP to the remote service or use a local deployment.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @chatmcp/server-perplexity-askPERPLEXITY_API_KEYSecretLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEPerplexity API Platform MCP Server
The official MCP server implementation for the Perplexity API Platform, providing AI assistants with real-time web search, reasoning, and research capabilities through the Agent API and the Search API.
Remote MCP Server
The remote MCP server is hosted by Perplexity and is the easiest way to get started: same tools, nothing to install or update. The Cursor and VS Code buttons at the top of this page connect to it with one click. If your MCP client does not support remote servers yet, skip to the local server setup below. Connect over Streamable HTTP with your Perplexity API key:
https://api.perplexity.ai/mcp
For Claude Code:
claude mcp add --transport http perplexity https://api.perplexity.ai/mcp --header "Authorization: Bearer YOUR_API_KEY"
See the MCP integration docs for manual Cursor/VS Code configuration, usage from the Anthropic API, and setup for other clients.
Local MCP Server
Get Your API Key
- Get your Perplexity API Key from the API Portal
- Replace
your_key_herein the configurations below with your API key - (Optional) Set timeout:
PERPLEXITY_TIMEOUT_MS=600000(default: 5 minutes) - (Optional) Set custom base URL:
PERPLEXITY_BASE_URL=https://your-custom-url.com(default: https://api.perplexity.ai) - (Optional) Set log level:
PERPLEXITY_LOG_LEVEL=DEBUG|INFO|WARN|ERROR(default: ERROR)
Claude Code
claude mcp add perplexity --env PERPLEXITY_API_KEY="your_key_here" -- npx -y @perplexity-ai/mcp-server
Or install via plugin:
export PERPLEXITY_API_KEY="your_key_here"
claude
# Then run: /plugin marketplace add perplexityai/modelcontextprotocol
# Then run: /plugin install perplexity
Codex
codex mcp add perplexity --env PERPLEXITY_API_KEY="your_key_here" -- npx -y @perplexity-ai/mcp-server
Agent Plugins
This repository is packaged as an Agent Plugin, so clients that support the standard can install it directly from this repository. The Agent Plugins format does not carry secrets, so set the PERPLEXITY_API_KEY environment variable through your client's plugin or MCP settings.
Other MCP Clients
Most clients can be configured manually using the same mcpServers wrapper in their client config (as shown for Cursor). If a client has a different schema, check its docs for the exact wrapper format.
For manual setup, these clients all use the same mcpServers structure:
| Client | Config File |
|---|---|
| Cursor | ~/.cursor/mcp.json |
| Claude Desktop | claude_desktop_config.json |
| Kiro | .kiro/settings/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| VS Code | .vscode/mcp.json |
{
"mcpServers": {
"perplexity": {
"command": "npx",
"args": ["-y", "@perplexity-ai/mcp-server"],
"env": {
"PERPLEXITY_API_KEY": "your_key_here"
}
}
}
}
Proxy Setup (For Corporate Networks)
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 for Perplexity MCP is to use PERPLEXITY_PROXY. For example:
export PERPLEXITY_PROXY=https://your-proxy-host:8080
If your proxy needs a username and password, use:
export PERPLEXITY_PROXY=https://username:password@your-proxy-host:8080
3. 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:
PERPLEXITY_PROXY→HTTPS_PROXY→HTTP_PROXY. If none are set, it connects directly to the internet. URLs must includehttps://. Typical ports are8080,3128, and80.
Self-Hosted HTTP Mode
For cloud or shared deployments, run the server in HTTP mode.
Environment Variables
| Variable | Description | Default |
|---|---|---|
PERPLEXITY_API_KEY | Your Perplexity API key | Required |
PERPLEXITY_BASE_URL | Custom base URL for API requests | https://api.perplexity.ai |
PORT | HTTP server port | 8080 |
BIND_ADDRESS | Network interface to bind to. Defaults to loopback. Set to 0.0.0.0 to expose on all interfaces. | 127.0.0.1 |
ALLOWED_ORIGINS | CORS origins (comma-separated). Defaults to empty (no cross-origin browser requests). Set to an explicit allowlist (e.g. https://app.example.com) or to * to allow any origin. | (empty) |
ALLOWED_HOSTS | Additional Host header values to accept (comma-separated). Loopback hosts on PORT are always allowed. Add the public hostname when binding to 0.0.0.0. | (loopback only) |
Docker
docker build -t perplexity-mcp-server .
docker run -p 8080:8080 -e PERPLEXITY_API_KEY=your_key_here perplexity-mcp-server
Node.js
export PERPLEXITY_API_KEY=your_key_here
npm install && npm run build && npm run start:http
The server will be accessible at http://localhost:8080/mcp
Available Tools
perplexity_search
Search results include publication and last-updated dates when available. Missing or null dates are omitted from the formatted output.
Direct web search using the Perplexity Search API. Returns ranked search results with metadata, perfect for finding current information. Supports recency filters (search_recency_filter), domain restrictions (search_domain_filter), and Fast Search (search_type: "fast") for lower latency and cost.
perplexity_ask
General-purpose conversational AI with real-time web search, backed by the Agent API fast preset. Great for quick questions and everyday searches.
perplexity_research
Deep, comprehensive research backed by the Agent API high preset. Ideal for thorough analysis and detailed reports. Runs can take minutes; the server streams the run and reports progress to clients that request it.
perplexity_reason
Advanced reasoning and problem-solving backed by the Agent API medium preset. Perfect for complex analytical tasks.
perplexity_ask and perplexity_reason accept optional positive-integer max_tokens (total search context, up to 120,000) and max_tokens_per_page (context per result page, up to 20,000). These Agent API budgets control retrieved search content, not generated answer length. When omitted, the preset's search configuration remains in effect.
The legacy search_context_size argument is still accepted, but is translated locally into explicit budgets rather than sent to the Agent API:
| Legacy size | Total tokens | Tokens per page |
|---|---|---|
low | 2000 | 512 |
medium | 4000 | 1024 |
high | 8000 | 2048 |
This compatibility policy is not an exact equivalent of Sonar's named sizes; the Agent API migration guide has no named-size equivalent. Each explicit budget overrides its corresponding legacy default.
Note
Presets are managed configurations (model, search setup, step budget) that Perplexity keeps tuned over time; see the presets guide. Earlier versions of this server called the legacy
sonar-pro,sonar-reasoning-pro, andsonar-deep-researchmodels and acceptedstrip_thinking/reasoning_effortparameters. Those parameters are no longer part of the tool schemas and are ignored if sent; the Agent API produces no<think>tags.
Use as a Library
The package also exports the server factory for embedding in your own Node process:
import { createPerplexityServer } from "@perplexity-ai/mcp-server";
// Single-tenant: reads PERPLEXITY_API_KEY from the environment.
const server = createPerplexityServer("my-service");
// Multi-tenant hosts resolve the key per call instead. When a provider is
// set, the environment variable is never consulted, and a provider that
// returns no key fails the call rather than falling back.
const tenantServer = createPerplexityServer("my-service", {
apiKey: () => currentRequestApiKey,
});
Mount the returned server on any MCP transport (stdio, streamable HTTP, in-memory).
Troubleshooting
- API Key Issues: Ensure
PERPLEXITY_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
PERPLEXITY_TIMEOUT_MSto a higher value - Proxy Issues: Verify your
PERPLEXITY_PROXYorHTTPS_PROXYsetup and ensureapi.perplexity.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.
For support, visit community.perplexity.ai or file an issue.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.