Perplexity MCP Server

by MCP-Mirror

347 downloads
Not rated
GitHub

About

The Perplexity MCP Server is a Node.js implementation of Anthropic's Model Context Protocol (MCP) that enables Claude to interact with Perplexity's language models. It provides a secure bridge between Claude and Perplexity AI’s capabilities through tool use.

Details

Author
MCP-Mirror
Downloads
347
Categories
AI

- Chat completion tool with full message history (perplexity_chat)
- Simple single‑query tool for quick questions (perplexity_ask)
- Supports multiple Llama‑3.1‑Sonar models (small, large, huge)
- Environment‑based API key configuration
- Comprehensive error handling and input validation
- Communicates over stdio transport

Install dependencies with npm install, create a .env file with your PERPLEXITY_API_KEY, and build with npm run build. Add the server to Claude Desktop by updating claude_desktop_config.json with the command to run the compiled dist/index.js and the environment variable for the API key.

Perplexity MCP Server

Overview

The Perplexity MCP Server is a Node.js implementation of Anthropic's Model Context Protocol (MCP) that enables Claude to interact with Perplexity's language models. This server provides a secure bridge between Claude and Perplexity AI's capabilities, allowing for enhanced AI interactions through tool use.

Available Tools

The server currently implements two main tools:

1. perplexity_chat

Advanced chat completion tool with full message history support.

{
  "name": "perplexity_chat",
  "description": "Generate a chat completion using Perplexity AI",
  "parameters": {
    "model": "string (optional) - One of: llama-3.1-sonar-small-128k-online, llama-3.1-sonar-large-128k-online, llama-3.1-sonar-huge-128k-online",
    "messages": "array of {role, content} objects - The conversation history",
    "temperature": "number (optional) - Sampling temperature between 0-2"
  }
}

2. perplexity_ask

Simplified single-query interface for quick questions.

{
  "name": "perplexity_ask",
  "description": "Send a simple query to Perplexity AI",
  "parameters": {
    "query": "string - The question or prompt to send",
    "model": "string (optional) - One of: llama-3.1-sonar-small-128k-online, llama-3.1-sonar-large-128k-online, llama-3.1-sonar-huge-128k-online"
  }
}

Installation

1. Clone the repository:

   git clone https://github.com/yourusername/perplexity-mcp-server.git
   cd perplexity-mcp-server
   

2. Install dependencies:

   npm install
   

3. Create .env file:

   PERPLEXITY_API_KEY=your-api-key-here
   

4. Build the project:

   npm run build

Claude Desktop Configuration

To add this server to Claude Desktop, update your claude_desktop_config.json:

{
  "mcpServers": {
    //more servers...
    "perplexity": {
      "command": "node",
      "args": ["path\\to\\perplexity-mcp-server\\dist\\index.js"],
      "env": {
        "PERPLEXITY_API_KEY": "YOUR_PERPLEXITY_API_KEY"
      }
    }
    //more servers...
  }
}

The configuration file is typically located at:

- Windows: %APPDATA%/Claude/config/claude_desktop_config.json
- macOS: ~/Library/Application Support/Claude/config/claude_desktop_config.json
- Linux: ~/.config/Claude/config/claude_desktop_config.json

Development

Start the development server with automatic recompilation:

npm run dev

The server uses TypeScript and implements the MCP protocol using the @modelcontextprotocol/sdk package.

Architecture

Core Components

1. PerplexityServer Class

- Implements MCP server protocol
- Handles tool registration and execution
- Manages error handling and server lifecycle

2. Tools System
- Modular tool definitions
- Type-safe tool handlers
- Structured input validation

Technical Details

- Built with TypeScript for type safety
- Uses @modelcontextprotocol/sdk for MCP implementation
- Communicates via stdio transport
- Environment-based configuration

Error Handling

The server implements comprehensive error handling:

- API error reporting
- Invalid tool requests handling
- Connection error management
- Process signal handling

Dependencies

- @modelcontextprotocol/sdk: ^1.0.3
- dotenv: ^16.4.7
- isomorphic-fetch: ^3.0.0

Contributing

1. Fork the repository
2. Create your feature branch (git checkout -b feature/amazing-feature)
3. Commit your changes (git commit -m 'Add some amazing feature')
4. Push to the branch (git push origin feature/amazing-feature)
5. Open a Pull Request

Security

- API keys are managed through environment variables
- Input validation for all tool parameters
- Error messages are sanitized before output
- Process isolation through MCP protocol

License

This project is licensed under the ISC License.

Troubleshooting

Common issues and solutions:

1. Server Not Found

- Verify the path in claude_desktop_config.json is correct
- Ensure the server is built (npm run build)
- Check if Node.js is in your PATH

2. Authentication Errors

- Verify your Perplexity API key in .env
- Check if the API key has the required permissions

3. Tool Execution Errors
- Verify the tool parameters match the schema
- Check network connectivity
- Review server logs for detailed error messages

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.