perplexity-mcp-server

perplexity-mcp-server

cyanheads

MCP server for Perplexity AI search and research capabilities with robust error handling and secure validation for LLM a

A Perplexity API MCP server that enables AI agents to perform search-augmented queries and deep research using Perplexity's AI capabilities.

22539 views12Local (stdio)

About perplexity-mcp-server

perplexity-mcp-server is a community-built MCP server published by cyanheads that provides AI assistants with tools and capabilities via the Model Context Protocol. MCP server for Perplexity AI search and research capabilities with robust error handling and secure validation for LLM a It is categorized under ai ml. This server exposes 2 tools that AI clients can invoke during conversations and coding sessions.

How to install

You can install perplexity-mcp-server in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.

License

perplexity-mcp-server is released under the Apache-2.0 license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.

Tools (2)

perplexity_search

Performs a fast, search-augmented query using the Perplexity API with filtering options for recency, domain, and academic sources

perplexity_deep_research

Conducts an exhaustive, multi-source investigation for complex topics, delivering a detailed research report

Perplexity MCP Server

TypeScript Model Context Protocol Version License Status GitHub

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 NameDescriptionKey Features
perplexity_searchPerforms 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_researchConducts 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

OverviewFeaturesInstallation
ConfigurationProject Structure
ToolsDevelopmentLicense

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

Setup

  1. Clone the repository:

    git clone https://github.com/cyanheads/perplexity-mcp-server.git
    cd perplexity-mcp-server
    
  2. Install dependencies:

    npm install
    
  3. Build the project:

    npm run build
    

Configuration

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.

VariableDescriptionDefault
PERPLEXITY_API_KEYRequired. Your API key for Perplexity.""
MCP_TRANSPORT_TYPETransport mechanism: stdio or http.stdio
MCP_HTTP_PORTPort for the HTTP server (if MCP_TRANSPORT_TYPE=http).3010
MCP_HTTP_HOSTHost address for the HTTP server.127.0.0.1
MCP_LOG_LEVELLogging level (debug, info, warn, error).info
MCP_AUTH_MODEAuthentication for HTTP: jwt or oauth.jwt
MCP_AUTH_SECRET_KEYRequired 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 NameDescriptionKey Arguments
perplexity_searchPerforms a fast, search-augmented query.query, search_recency_filter?, search_domain_filter?, search_mode?, showThinking?
perplexity_deep_researchConducts an exhaustive, multi-source research query.query, `reasoning

README truncated. View full README on GitHub.

Alternatives