perplexity mcp
Allows Claude or other MCP-compatible AI assistants to search the web and get up-to-date information using the Perplexity API, with features for filtering results by time period.
Allows Claude or other MCP-compatible AI assistants to search the web and get up-to-date information using the Perplexity API, with features for filtering results by time period.
A simple MCP (Model Context Protocol) server that provides web search functionality using the Perplexity API. This server allows Claude or other MCP-compatible AI assistants to search the web and get up-to-date information.
pip install -e .
or
uv pip install -e .
You can set the PERPLEXITY_API_KEY
environment variable with your Perplexity API key:
export PERPLEXITY_API_KEY="your-api-key-here"
Alternatively, you can create a .env
file in the project root with the following content:
PERPLEXITY_API_KEY=your-api-key-here
A sample .env.example
file is provided for reference.
To get a Perplexity API key: 1. Visit Perplexity API Settings 2. Create an account if you don't have one 3. Generate an API key
python server.py
You can test the server functionality without running the full MCP server using the included test script:
python test_server.py "your search query here" --recency month
Options for --recency
are: day, week, month (default), year
~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
Add the following configuration:
{
"perplexity-mcp": {
"env": {
"PERPLEXITY_API_KEY": "your-api-key-here"
},
"command": "python",
"args": [
"/path/to/server.py"
]
}
}
Restart Claude Desktop
search_web(query: str, recency: str = "month") -> str
Search the web using Perplexity API and return results.
Parameters:
- query
: The search query string
- recency
: Filter results by time period - 'day', 'week', 'month' (default), or 'year'
Returns: A comprehensive text response containing: 1. A detailed summary of the search results 2. Key facts and information found 3. Sources with URLs for verification 4. Any conflicting information if present
web_search_prompt(query: str, recency: str = "month") -> str
Creates a prompt template for searching the web with Perplexity.
Parameters:
- query
: The search query
- recency
: Time period filter - 'day', 'week', 'month' (default), or 'year'
Returns: A formatted prompt string that instructs the AI to: 1. Search for the specified query 2. Focus on results from the specified time period 3. Summarize key findings 4. Highlight important facts 5. Mention conflicting information 6. Cite sources with links
MIT