Skip to main content
Glama
lv042

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