# Perplexity Search MCP Skill
A Claude Code skill that enables web search using Perplexity AI through SAP AI Core.
## Overview
This skill provides real-time web search capabilities with source citations by leveraging Perplexity's Sonar models deployed on SAP AI Core. It works as an MCP (Model Context Protocol) server that integrates seamlessly with Claude Code.
## Prerequisites
- **Node.js** >= 18.0.0
- **[sap-ai-proxy](https://github.tools.sap/agent-dev/sap-ai-proxy)** running locally (default: http://127.0.0.1:3030)
- **Perplexity model** deployed in SAP AI Core (e.g., `sonar-pro`)
## Installation
### 1. Clone and Build
```bash
git clone <repo-url> perplexity-skill
cd perplexity-skill
npm install
npm run build
```
### 2. Install the Skill
```bash
npm run install-skill
```
This will:
- Add the MCP server to `~/.claude/mcp.json`
- Install the skill definition to `~/.claude/skills/perplexity/`
### 3. Restart Claude Code
Restart Claude Code to load the new MCP server.
## Configuration
### Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `SAP_AI_PROXY_URL` | `http://127.0.0.1:3030` | URL of the sap-ai-proxy server |
| `PERPLEXITY_DEFAULT_MODEL` | `sonar-pro` | Default Perplexity model to use |
To customize, edit the `env` section in `~/.claude/mcp.json`:
```json
{
"mcpServers": {
"perplexity-search": {
"command": "node",
"args": ["/path/to/perplexity-skill/dist/index.js"],
"env": {
"SAP_AI_PROXY_URL": "http://127.0.0.1:3030",
"PERPLEXITY_DEFAULT_MODEL": "sonar-pro"
}
}
}
}
```
## Usage
### Explicit Invocation
```
/perplexity What are the latest developments in AI?
```
### Natural Language
The skill automatically triggers for web search queries:
```
What happened in tech news today?
What's the current price of Bitcoin?
```
## Available Tools
### perplexity_web_search
Full-featured web search with all configuration options.
**Parameters:**
- `query` (required): The search query
- `model` (optional): `sonar` | `sonar-pro` | `sonar-reasoning`
- `search_recency_filter` (optional): `day` | `week` | `month` | `year`
- `return_citations` (optional): boolean (default: `true`)
### perplexity_quick_search
Simplified search for quick queries.
**Parameters:**
- `query` (required): The search query
## Supported Models
| Model | Description |
|-------|-------------|
| `sonar` | Fast real-time web search |
| `sonar-pro` | Enhanced reasoning with citations |
| `sonar-reasoning` | Deep analysis and reasoning |
## Response Format
Responses include:
1. Main answer content
2. Source citations (numbered URLs)
3. Search results with titles and snippets
Example output:
```
**The capital of France is Paris.**
Paris has served as the capital since 1944...
---
**Sources:**
1. https://en.wikipedia.org/wiki/Paris
2. https://www.britannica.com/place/Paris
**Search Results:**
1. [Paris - Wikipedia](https://en.wikipedia.org/wiki/Paris)
Paris is the capital and largest city of France...
```
## Uninstallation
```bash
npm run uninstall-skill
```
Then restart Claude Code.
## Architecture
```
Claude Code → MCP Server (stdio) → sap-ai-proxy:3030 → SAP AI Core (Perplexity)
```
## Troubleshooting
### "Model sonar-pro is not available"
1. Ensure the Perplexity model is deployed in SAP AI Core
2. Restart sap-ai-proxy to refresh the deployment cache
3. Verify with: `curl http://127.0.0.1:3030/v1/models`
### MCP Server Not Loading
1. Check `~/.claude/mcp.json` configuration
2. Ensure `dist/index.js` exists (run `npm run build`)
3. Restart Claude Code
### Connection Refused
Ensure sap-ai-proxy is running:
```bash
cd /path/to/sap-ai-proxy
npm start
```
## Development
```bash
# Watch mode for development
npm run dev
# Test the MCP server
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node dist/index.js
```
## License
MIT