Perplexity

by laodev1

6 stars
Not rated
GitHub

About

Integrates with Perplexity AI's language models, enabling enhanced interactions through chat completions and single-query tools.

Details

Author
laodev1
Repository
laodev1/perplexity-mcp-server
GitHub stars
6
Categories
Search, AI, Other, Developer Tools, Design, Community, Communication, Infrastructure, Frontend
Tags
#integration

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Perplexity
    Command (node, npx, python, etc.) node
    Arguments
    • Argument 1 path/to/perplexity-mcp-server/dist/index.js
    Environment
    • PERPLEXITY_API_KEY YOUR_PERPLEXITY_API_KEY

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

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

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

perplexity_chat

Generate a chat completion using Perplexity AI. Parameters: model (optional string), messages (array of {role, content} objects), temperature (optional number between 0-2).

perplexity_ask

Send a simple query to Perplexity AI. Parameters: query (string - The question or prompt to send), model (optional string).

The server currently implements two main tools:

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

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

Linux

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

Macos

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

Windows

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

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.