perplexity-mcp-server
A Perplexity API MCP server that unlocks Perplexity's search-augmented AI capabilities for LLM agents. Features robust error handling, secure input validation, and transparent reasoning with the showThinking parameter.
Documentation
Perplexity MCP Server
Supercharge your AI agents with Perplexity's Search API!
An MCP (Model Context Protocol) server providing comprehensive access to the Perplexity AI API. It enables LLMs and AI agents to perform fast, search-augmented queries and conduct exhaustive, multi-source deep research, all through a standardized, secure, and easy-to-integrate protocol.
Built on the `cyanheads/mcp-ts-template`, this server follows a modular architecture with robust error handling, logging, and security features.
π Core Capabilities: Perplexity Tools π οΈ
This server equips your AI with specialized tools to leverage Perplexity's unique capabilities:
| Tool Name | Description | Key Features |
|---|---|---|
| `perplexity_search` | Performs a fast, search-augmented query using the Perplexity API. Ideal for quick questions and real-time information retrieval. | - Filter by recency (`day`, `week`, `month`, `year`).- Filter by domain or date range.- Prioritize scholarly sources with `academic` mode.- Optionally include the model's internal reasoning (`showThinking`). |
| `perplexity_deep_research` | Conducts an exhaustive, multi-source investigation for complex topics, delivering a detailed report. | - Ideal for in-depth analysis and report generation.- Control research depth and cost with `reasoning_effort` (`low`, `medium`, `high`). |
> Note: For the deep research tool, I recommend allowing a longer timeout (e.g. 180 seconds) through MCP Clients like Cline. Other clients may time out after 60 seconds, which isn't sufficient for deep research.
Table of Contents
Overview
The Perplexity MCP Server acts as a bridge, allowing applications (MCP Clients) that understand the Model Context Protocol (MCP)βlike advanced AI assistants (LLMs), IDE extensions, or custom research toolsβto interact directly and efficiently with the Perplexity AI API.
Instead of complex, one-off API integrations, your tools can leverage this server to:
- Automate Research: Enable agents to perform quick lookups or deep-dive research programmatically.
- Enhance AI Reasoning: Provide LLMs with up-to-date, verifiable information from the web to ground their responses.
- Integrate Search into Workflows: Seamlessly add search-augmented generation to any AI-driven task.
Built on the robust `mcp-ts-template`, this server provides a standardized, secure, and efficient way to expose Perplexity's functionality via the MCP standard.
> Developer Note: This repository includes a .clinerules file that serves as a developer cheat sheet for your LLM coding agent with quick reference for the codebase patterns, file locations, and code snippets.
Features
Core Utilities
Leverages the robust utilities provided by the `mcp-ts-template`:
- Logging: Structured, configurable logging with file rotation and optional MCP notifications.
- Error Handling: Centralized error processing with standardized `McpError` types.
- Configuration: Environment variable loading (`dotenv`) with Zod validation.
- Input Validation/Sanitization: Uses `zod` for schema validation and a dedicated sanitization utility.
- Request Context: Operation tracking and correlation via unique request IDs using `AsyncLocalStorage`.
- Type Safety: Strong typing enforced by TypeScript and Zod schemas.
- HTTP Transport: High-performance HTTP server using Hono, featuring session management and CORS support.
- Authentication: Robust authentication layer supporting JWT and OAuth 2.1.
Perplexity Integration
- Dual API Support: Full integration with both the standard Chat Completions API (`perplexity_search`) and the more intensive research models (`perplexity_deep_research`).
- Advanced Search Control: Fine-grained control over search parameters, including recency, domain filtering, and academic source prioritization.
- Cost Tracking: A utility to estimate the cost of API calls based on token usage and model, helping manage expenses.
- Resilient API Client: A dedicated service for interacting with the Perplexity API, featuring built-in error handling and request/response logging.
Installation
Prerequisites
- Node.js (>=18.0.0)
- npm (comes with Node.js)
- A Perplexity API Key - Get one from your Perplexity account settings
Setup
1. Clone the repository:
git clone https://github.com/cyanheads/perplexity-mcp-server.git
cd perplexity-mcp-server2. Install dependencies:
npm install3. Build the project:
npm run buildConfiguration
Environment Variables
Configure the server by creating a `.env` file in the project root (you can copy `.env.example`). These variables can also be set in your MCP client's configuration.
| Variable | Description | Default |
|---|---|---|
| `PERPLEXITY_API_KEY` | Required. Your API key for Perplexity. | `""` |
| `MCP_TRANSPORT_TYPE` | Transport mechanism: `stdio` or `http`. | `stdio` |
| `MCP_HTTP_PORT` | Port for the HTTP server (if `MCP_TRANSPORT_TYPE=http`). | `3010` |
| `MCP_HTTP_HOST` | Host address for the HTTP server. | `127.0.0.1` |
| `MCP_LOG_LEVEL` | Logging level (`debug`, `info`, `warn`, `error`). | `info` |
| `MCP_AUTH_MODE` | Authentication for HTTP: `jwt` or `oauth`. | `jwt` |
| `MCP_AUTH_SECRET_KEY` | Required for `jwt` auth. A secure secret key (min 32 chars). | `""` |
MCP Client Settings
Add the following to your MCP client's configuration file (e.g., `cline_mcp_settings.json`):
{
"mcpServers": {
"perplexity-mcp-server": {
"command": "node",
"args": ["/path/to/your/perplexity-mcp-server/dist/index.js"],
"env": {
"PERPLEXITY_API_KEY": "YOUR_PERPLEXITY_API_KEY_HERE"
}
}
}
}Project Structure
The codebase follows a modular structure within the `src/` directory:
src/
βββ index.ts # Entry point: Initializes and starts the server
βββ config/ # Configuration loading (env vars, package info)
β βββ index.ts
βββ mcp-server/ # Core MCP server logic and capability registration
β βββ server.ts # Server setup, capability registration
β βββ transports/ # Transport handling (stdio, http)
β βββ tools/ # MCP Tool implementations (subdirs per tool)
βββ services/ # External service integrations (Perplexity API client)
βββ types-global/ # Shared TypeScript type definitions
βββ utils/ # Common utility functions (logger, error handler, etc.)For a detailed file tree, run `npm run tree` or see docs/tree.md.
Tools
The Perplexity MCP Server provides two primary tools for interacting with the Perplexity API.
| Tool Name | Description | Key Arguments |
|---|---|---|
| `perplexity_search` | Performs a fast, search-augmented query. | `query`, `search_recency_filter?`, `search_domain_filter?`, `search_mode?`, `showThinking?` |
| `perplexity_deep_research` | Conducts an exhaustive, multi-source research query. | `query`, `reasoning_effort?` |
_Note: All tools support comprehensive error handling and return structured JSON responses._
Development
Build and Test
# Build the project (compile TS to JS in dist/)
npm run build
# Clean build artifacts
npm run clean
# Generate a file tree representation for documentation
npm run tree
# Clean build artifacts and then rebuild the project
npm run rebuild
# Start the server using stdio (default)
npm startLicense
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Frequently asked questions
What is perplexity-mcp-server?
perplexity-mcp-server is A Perplexity API MCP server that unlocks Perplexity's search-augmented AI capabilities for LLM agents. Features robust error handling, secure input validation, and transparent reasoning with the showThinking parameter.
How do I install perplexity-mcp-server?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is perplexity-mcp-server open source?
Yes β it is hosted on GitHub at https://github.com/cyanheads/perplexity-mcp-server and has 19 stars.
Related MCP tools
Add Obsidian integrations like semantic search and custom Templater prompts to Claude or any MCP client. TypeScript-based implementation.
MCP Server for SearXNG TypeScript-based implementation.
AI Agents & MCPs & AI Workflow Automation β’ (~400 MCP servers for AI agents) β’ AI Automation / AI Agent with MCPs β’ AI Workflows & AI Agents β’ MCPs for AI Ag...
Mcp-use is the easiest way to interact with mcp servers with custom agents TypeScript-based implementation. Trusted by 8100+ developers.
5ire is a cross-platform desktop AI assistant, MCP client. It compatible with major service providers, supports local knowledge base and tools via model co...
π€ A visualization mcp contains 25+ visual charts using @antvis. Using for chart generation and data analysis. TypeScript-based implementation.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP