Perplexity Web-Search MCP
by lv042
README.md
# š Perplexity Web-Search MCP
> **Supercharge your AI assistant with real-time web search and academic research capabilities**
An MCP (Model Context Protocol) server that integrates Perplexity's powerful Sonar API, giving your AI assistant access to current information from the web and scholarly sources.
## ⨠Features
- š **Real-time web search** - Get current information from across the internet
- š **Academic search** - Access peer-reviewed papers and scholarly sources
- š **Location-aware results** - Filter by city and country
- ā° **Time-filtered search** - Get recent results (day, week, etc.)
- š§ **Multiple AI models** - Choose from various Perplexity Sonar models
- š **Universal compatibility** - Works with any MCP-compatible system
## š¤ Compatible AI Systems
This MCP server works seamlessly with:
- **Claude**
- **Amazon Q**
- **Google Gemini**
- **OpenAI Codex**
- **Any MCP-compatible AI assistant**
## š Exemplary Amazon Q Developer Setup
Here's how to properly integrate this MCP server with Amazon Q Developer:
### 1. Locate your Amazon Q agent configuration
```bash
~/.aws/amazonq/cli-agents/dev.json
```
### 2. Add the sonar MCP server to your configuration
```json
{
"$schema": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/refs/heads/main/schemas/agent-v1.json",
"name": "dev",
"description": "",
"mcpServers": {
"sonar": {
"command": "/Users/your-username/SoftwareProjects/perplexity_sonar_mcp/.venv/bin/python",
"args": ["/Users/your-username/SoftwareProjects/perplexity_sonar_mcp/main.py"],
"cwd": "/Users/your-username/SoftwareProjects/perplexity_sonar_mcp",
"env": {
"PERPLEXITY_API_KEY": "pplx-your-api-key-here"
}
}
},
"tools": [
"fs_read",
"fs_write",
"execute_bash",
"use_aws",
"@sonar"
]
}
```
### 3. Usage Example
```bash
[dev] > Web search: "Is AI a bubble?"
š ļø Using tool: web_search from mcp server sonar
ā®
ā Running web_search with the param:
ā® {
ā® "name": "web_search",
ā® "arguments": {
ā® "query": "Is AI a bubble?"
ā® }
ā® }
Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: y
ā®
ā Completed in 9.990s
> Based on current market analysis, AI is widely considered to be in a bubble phase...
```
## Installation
### With uv (recommended)
```bash
uv sync
```
### With pip
```bash
pip install -e .
```
## MCP Configuration
Add to your MCP client configuration:
**With uv:**
- Transport Type: STDIO
- Command: uv
- Arguments: run main.py
**With Python:**
- Transport Type: STDIO
- Command: python
- Arguments: main.py
## Environment Setup
Set your Perplexity API key:
```bash
export PERPLEXITY_API_KEY="your-api-key-here"
```
## Usage
### With uv
```bash
uv run python main.py
```
### With Python
```bash
python main.py
```
## Requirements
- Python >=3.10
- `PERPLEXITY_API_KEY` environment variable
## Tools
### `web_search`
Search the web using Perplexity Sonar API for real-time information.
**Parameters:**
- `query` (required): The search query or question
- `model` (optional): Perplexity model - "sonar", "sonar-pro", "sonar-deep-research", "sonar-reasoning", "sonar-reasoning-pro" (default: "sonar")
- `recency_filter` (optional): Time filter for results (e.g., 'week', 'day')
- `city` (optional): City name for location-based search
- `country` (optional): Two letter ISO country code
### `web_search_academic`
Search academic sources using Perplexity Sonar API for scholarly information. Prioritizes peer-reviewed papers and academic journals.
**Parameters:**
- `query` (required): The search query or question
- `model` (optional): Perplexity model - "sonar", "sonar-pro", "sonar-deep-research", "sonar-reasoning", "sonar-reasoning-pro" (default: "sonar")
- `recency_filter` (optional): Time filter for results (e.g., 'week', 'day')
- `city` (optional): City name for location-based search
- `country` (optional): Two letter ISO country code
## Configuration
Set your Perplexity API key:
```bash
export PERPLEXITY_API_KEY="your-api-key-here"
```
TDQS
B3.2/5.0
Scored across 2 tools
Disambiguation5/5
The two tools are clearly distinct: one for general web search and one for academic sources. Their purposes do not overlap.
Naming Consistency5/5
Both tools follow a consistent 'web_search' prefix, with '_academic' clearly indicating the variant. The naming pattern is uniform.
Tool Count2/5
Only 2 tools for a web search MCP seems too few for comprehensive coverage. Most search APIs have more specialized endpoints (news, images, etc.) or additional functionalities.
Completeness2/5
The set covers only general and academic search. Missing obvious categories like news, image, or video search, and lacks any result handling or refinement tools.
Maintenance
ActivityInactive
ResponsivenessNo issues