Integrates Perplexity AI's search-enhanced language models, providing three tools with progressive complexity for different search and research needs: perplexity_small for quick factual queries, perplexity_medium for technical explanations, and perplexity_large for comprehensive research.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Perplexity MCP Serverperplexity_medium to explain: How does blockchain consensus work?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Perplexity MCP Server
A Model Context Protocol (MCP) server that integrates Perplexity AI's search-enhanced language models with Claude Desktop, providing three tools with progressive complexity for different use cases.
Features
π Three Complexity Levels
perplexity_small: Fast queries with sonar-pro modelperplexity_medium: Enhanced reasoning with sonar-reasoning-properplexity_large: Deep research with sonar-deep-research
π Optimized for Development
Clean responses (thinking tokens automatically removed)
Comprehensive error handling
Detailed logging for debugging
Built with FastMCP for reliability
π§ Modern Python Stack
UV for fast dependency management
HTTPX for modern HTTP client capabilities
Type hints throughout codebase
Comprehensive testing suite
Related MCP server: Perplexity MCP Server
Quick Start
Prerequisites
Installation
Clone the repository
git clone <repository-url> cd Perplexity_MCPInstall dependencies
uv syncSet up environment
echo "PERPLEXITY_API_KEY=your_api_key_here" > .envTest the installation
uv run python tests/tests.py small
Claude Desktop Integration
Find your UV path
which uv # Example output: /Users/username/.local/bin/uvConfigure Claude Desktop
Edit
~/Library/Application Support/Claude/claude_desktop_config.json:{ "mcpServers": { "perplexity-mcp": { "command": "/Users/username/.local/bin/uv", "args": [ "--directory", "/path/to/your/Perplexity_MCP", "run", "python", "server.py" ] } } }Restart Claude Desktop
Completely quit and restart Claude Desktop to load the new MCP server.
Usage
In Claude Desktop
Once configured, you can use these tools in your conversations:
Quick factual queries:
Use perplexity_small to find: "What is the latest Python version?"Technical analysis:
Use perplexity_medium to explain: "Compare REST vs GraphQL performance characteristics"Deep research:
Use perplexity_large to research: "Comprehensive analysis of quantum computing trends in 2024"Tool Specifications
Tool | Model | Use Case | Response Time | Features |
| sonar-pro | Quick facts, basic queries | ~3-10 seconds | Fast, reliable |
| sonar-reasoning-pro | Technical explanations | ~10-30 seconds | Enhanced reasoning |
| sonar-deep-research | Comprehensive research | ~5-30 minutes | Deep analysis, high quality |
Response Format
All tools return clean, structured responses:
{
"content": "The AI response with thinking tokens removed",
"citations": ["https://source1.com", "https://source2.com"]
}Development
Project Structure
Perplexity_MCP/
βββ server.py # FastMCP server with 3 tools
βββ client.py # Perplexity API wrapper
βββ config.py # Configuration and tool settings
βββ __init__.py # Package exports
βββ pyproject.toml # UV project configuration
βββ tests/
β βββ tests.py # Test script for individual tools
β βββ test_logs/ # Test results and logs
βββ Notes/
βββ explanations.md # Technical deep-dives
βββ questions.txt # Development questionsRunning Tests
Test individual tools to validate API integration:
# Test each tool independently
uv run python tests/tests.py small # Test sonar-pro model
uv run python tests/tests.py medium # Test sonar-reasoning-pro
uv run python tests/tests.py large # Test sonar-deep-research (long runtime)
# Results saved to tests/test_logs/ with detailed response analysisDevelopment Setup
Install development dependencies
uv sync --all-groupsRun the MCP server locally (for debugging)
uv run python server.pyCheck code quality
uv run ruff check . uv run black .
Configuration
Environment Variables
Variable | Required | Description |
| Yes | Your Perplexity API key from settings page |
Tool Configuration
The tools are configured in config.py:
TOOL_CONFIGS = {
"small": {
"model": "sonar-pro"
},
"medium": {
"model": "sonar-reasoning-pro",
"reasoning_effort": "medium",
"web_search_options": {"search_context_size": "medium"}
},
"large": {
"model": "sonar-deep-research",
"reasoning_effort": "high",
"web_search_options": {"search_context_size": "high"}
}
}Troubleshooting
Common Issues
Import Errors
ModuleNotFoundError: No module named 'client'Ensure you're running from the project root directory
Check that UV is using the correct virtual environment
API Key Issues
Error: PERPLEXITY_API_KEY environment variable is requiredVerify your
.envfile exists and contains the API keyCheck that the API key is valid on Perplexity's settings page
Claude Desktop Connection Issues
Verify the UV path in your configuration:
which uvEnsure the project directory path is absolute and correct
Check Claude Desktop logs for specific error messages
Restart Claude Desktop completely after configuration changes
Long Response Times
perplexity_largecan take 10-30 minutes for complex queriesUse
perplexity_smallorperplexity_mediumfor faster responsesConsider the complexity of your query when choosing tools
Debug Mode
Enable verbose logging by running the server directly:
uv run python server.py
# Check stderr output for detailed logging informationTest Individual Components
# Test API connection
uv run python -c "from client import PerplexityClient; print('β
Client OK')"
# Test configuration
uv run python -c "from config import get_api_key; print('β
API Key OK')"
# Test server startup
timeout 10s uv run python server.py || echo "Server started successfully"Contributing
Fork the repository
Create a feature branch:
git checkout -b feature-nameMake your changes and test thoroughly
Update documentation as needed
Submit a pull request
Development Guidelines
Follow existing code style (Black formatting, type hints)
Add tests for new functionality
Update
CLAUDE.mdfor any architectural changesTest with all three Perplexity models
Ensure MCP protocol compliance (clean stdout)
Architecture
Key Design Decisions
Class-based client: Singleton pattern for efficient resource management
Thinking token removal: Automatic filtering of
<think>...</think>sectionsSimplified responses: Only content and citations for clean integration
Error isolation: No exceptions propagated to MCP layer
Logging strategy: All debug output to stderr for MCP compliance
Dependencies
mcp>=1.11.0- MCP Python SDK with FastMCPpython-dotenv>=1.1.1- Environment variable managementhttpx>=0.28.1- Modern HTTP client with timeout handling
License
MIT License - see LICENSE file for details.
Acknowledgments
Perplexity AI for the powerful search-enhanced language models
Anthropic for Claude and the MCP protocol
FastMCP for the excellent MCP framework
Support
For API issues: Perplexity Support
For MCP protocol questions: MCP Documentation
For Claude Desktop issues: Claude Support
Note: This MCP server is currently optimized for local development and personal use. Future versions may include PyPI distribution options for easier installation and sharing.
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.