perplexity-mcp
让 Claude/Cursor 直接用 Perplexity AI 搜索网络的 MCP Server
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让 Claude/Cursor 直接用 Perplexity AI 搜索网络的 MCP Server
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
当你正在用 Claude Desktop 或 Cursor 写代码,想查一下"今天 AI 圈有什么大新闻",却要切换到浏览器打开 Perplexity.ai 网页,复制粘贴查询——perplexity-mcp 让你直接在对话里说一句话,就能拿到 Perplexity 的搜索结果,省去一切中间步骤。

图1:项目作者 Jason Allen 的 GitHub 头像
理解这个项目,先要理解它的技术背景——MCP(Model Context Protocol)。
MCP 是 Anthropic 在 2024 年底提出的开放协议,目标是让 AI 助手能够调用外部工具和数据源,而不被训练数据截止日期束缚。你可以把它理解为 AI 领域的"USB 接口标准":无论 AI 模型是 Claude 还是 GPT,只要支持 MCP,就能即插即用地调用各种工具。
perplexity-mcp 就是基于 MCP 协议的一个 MCP Server 实现。它的功能很纯粹——把 Perplexity AI 的实时网络搜索能力,标准化地暴露给任何 MCP 兼容的 AI 客户端。
这是 MCP Server 的核心工具,输入一段查询,返回 Perplexity 的搜索结果。它和普通网页搜索不同,Perplexity 返回的是经过 LLM 整理的答案,而非简单的链接列表,且自带引用来源。
工具支持两个参数:
query(必填):搜索关键词或问题recency(可选):时间过滤,day(24小时内)、week(7天)、month(30天,默认)、year(一年)除了直接调用工具,MCP Server 还提供了一个结构化的 Prompt 模板,客户端可以请求这个模板,获得经过预处理的提示词组合,让 AI 在搜索前后有更清晰的任务指引。
通过 PERPLEXITY_MODEL 环境变量可选以下模型:
| 模型 | 上下文长度 | 定位 |
|---|---|---|
sonar-deep-research | 128k | 深度研究场景 |
sonar-reasoning-pro | 128k | 专业级推理 |
sonar-reasoning | 128k | 增强推理 |
sonar-pro | 200k | 专业场景 |
sonar | 128k | 默认模型 |
r1-1776 | 128k | 替代架构 |
默认使用 sonar,适合大多数搜索场景。
┌─────────────┐ stdio (JSON-RPC) ┌────────────────────┐ HTTPS API ┌─────────────────┐
│ Claude/Cursor │ ←────────────────────────→ │ perplexity-mcp │ ←───────────────→ │ Perplexity AI │
│ Desktop │ MCP 协议 │ (本项目) │ │ API │
└─────────────┘ └────────────────────┘ └─────────────────┘
这是一个经典的进程间通信架构。MCP Server 作为一个独立进程运行,通过标准输入输出(stdio)与 AI 客户端交换 JSON-RPC 消息。客户端发送工具调用请求,Server 处理后返回结果。
perplexity-mcp
├── mcp >= 1.0.2 # Anthropic MCP 框架
├── aiohttp >= 3.8.0 # 异步 HTTP 客户端
└── pydantic >= 2.0.0 # 数据验证
三个依赖,职责清晰:MCP 框架负责协议通信,aiohttp 负责与 Perplexity API 的异步 HTTPS 请求,pydantic 负责请求/响应数据结构的类型安全。
async def call_perplexity(query: str, recency: str) -> str:
url = "https://api.perplexity.ai/chat/completions"
payload = {
"model": os.getenv("PERPLEXITY_MODEL", "sonar"),
"messages": [{"role": "user", "content": query}],
"search_recency_filter": recency,
"return_citations": True,
"temperature": 0.2,
"max_tokens": 512,
}
调用参数经过精心调优:temperature 0.2 保证回答准确性而非创造性,max_tokens 512 限制响应长度适合工具输出格式,citations 打开后每条结果附带出处 URL。
uvx perplexity-mcp
uvx 是 UV 包管理器内置的"无需安装直接运行"工具,第一次会自动下载依赖并执行。配置好 PERPLEXITY_API_KEY 环境变量即可。
项目提供了 Smithery 自动生成的 Dockerfile,基于 uv 官方镜像:
FROM ghcr.io/astral-sh/uv:python3.11-bookworm-slim
WORKDIR /app
RUN uv pip install -r pyproject.toml --no-dev
ENTRYPOINT ["uv", "run", "perplexity-mcp"]
在 claude_desktop_config.json 中注册为 MCP Server,Claude Desktop 重启后即可在对话中直接调用搜索工具。
npx -y @smithery/cli install perplexity-mcp --client claude
Smithery 会自动修改配置文件,省去手动编辑 JSON 的麻烦。
| 维度 | 评估 |
|---|---|
| 架构设计 | 遵循 MCP 协议规范,职责单一,核心逻辑不超过 150 行 |
| 类型安全 | 使用 pydantic 2.0 做输入验证,MCP types 声明完整 |
| 异步设计 | 全程 asyncio + aiohttp,无阻塞调用 |
| 配置管理 | 环境变量驱动,无硬编码,超参有合理默认值 |
| 错误处理 | API Key 缺失时主动报错并 exit(1),有日志输出 |
| 文档质量 | README 结构清晰,含完整安装示例和多客户端配置说明 |
| 发布质量 | pyproject.toml 规范,使用 hatchling 构建,版本通过 __init__.py 管理 |
perplexity-mcp 的出现,反映了 2025 年 AI 应用架构的一个重要趋势:AI 助手的工具化(Tool-augmented AI)。
过去一年,MCP 生态快速扩张,从最初的 Claude 独有逐步扩展为开放协议,被 Cursor、Windsurf、Codeium 等主流 AI IDE 广泛支持。这类轻量级的 MCP Server 降低了 AI 助手接入实时数据的门槛——开发者不需要写爬虫、不需要维护向量数据库,只需要一个 API Key + 一行配置。
从项目数据看,虽然 306 stars 并不算高,但这类协议层工具的价值往往不在于 star 数,而在于生态位:一旦被纳入 Smithery 这样的 MCP 聚合平台,就能持续获得被动流量,成为事实标准的一部分。