Labsco
laodev1 logo

Perplexity AI

โ˜… 7

from laodev1

An MCP server to interact with Perplexity AI's language models for search and conversational AI.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedAccount requiredAdvanced setup

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"
  }
}

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

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