A Go implementation of a Perplexity Search MCP server that allows large language models (LLMs) to access the Perplexity search API through the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/).
Features
**perplexity_search**: Perform web searches and return results, including citations
- **Parameters**:
- `query` (string, required): The search query
- `search_recency_filter` (string, optional): Filter results by time (`month`, `week`, `day`, `hour`)
- `max_tokens` (integer, optional): Maximum number of tokens to return
- `temperature` (number, optional, default: 0.2): Controls randomness in response
- `top_p` (number, optional, default: 0.9): Nucleus sampling threshold
- `search_domain_filter` (array, optional): List of domains to limit search results
- `return_images` (boolean, optional): Include image links in results
- `return_related_questions` (boolean, optional): Include related questions
- `top_k` (number, optional, default: 0): Number of tokens for top-k filtering
- `stream` (boolean, optional): Stream response incrementally
- `presence_penalty` (number, optional, default: 0): Adjust likelihood of new topics
- `frequency_penalty` (number, optional, default: 1): Reduce repetition
- `web_search_options` (object, optional): Configuration options for web search
Setup & Usage
Installing via Smithery
To install Perplexity Search Golang for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@chenxilol/perplexity-mcp-go):
Prerequisites
Go 1.23 or higher
Perplexity API key
Installation
Clone the repository:
Build the application:
Running Locally
Set your Perplexity API key:
Run the server:
Integrating with Claude
Copy the provided `claude_desktop_config.json` to your Claude configuration directory:
- Windows: `%USERPROFILE%\AppData\Roaming\Claude\claude_desktop_config.json`
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Linux: `~/.config/Claude/claude_desktop_config.json`
Edit the configuration file to include your API key:
Docker Support
Build the Docker image:
Run the container:
Example Usage
Once configured, Claude can use the perplexity_search tool via MCP to perform real-time web searches.
Example search with parameters:
Troubleshooting
If you encounter issues:
Verify your API key is correctly set
Check network connectivity
Examine stderr logs for error messages
License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
Acknowledgments
[Model Context Protocol](https://modelcontextprotocol.io/) for the MCP specification
[MCP-Go](https://github.com/mark3labs/mcp-go) for the Go MCP implementation
[Perplexity](https://www.perplexity.ai/) for their search API