项目简介
Perplexity Advanced MCP 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为 LLM 应用提供强大的上下文信息获取和处理能力。它集成了 OpenRouter 和 Perplexity API,能够根据用户查询类型智能选择模型,并支持文件附件作为上下文输入,从而提供更精准、更可靠的搜索和问答服务。
主要功能点
- 多供应商支持: 同时支持 OpenRouter 和 Perplexity API,用户可以根据需求灵活选择。
- 查询类型优化: 区分简单查询和复杂查询,针对不同场景优化成本和性能。
- 文件附件支持: 允许上传文件作为上下文,提升复杂查询的准确性,特别适合代码库分析等场景。
- 增强的重试机制: 采用 Tenacity 库实现可靠的 API 通信,应对网络波动等问题。
- 可定制的日志记录: 提供灵活的日志配置,方便调试和监控。
- 集成 MCP 搜索工具: 通过 'ask_perplexity' 工具注册到 MCP 服务器,方便 LLM 客户端调用进行互联网搜索和信息获取。
安装步骤
- 安装 Python 包:
pip install perplexity-advanced-mcp
服务器配置
MCP 客户端需要配置以下 JSON 信息以连接到 Perplexity Advanced MCP 服务器。请注意,你需要提供 OpenRouter API 密钥或 Perplexity API 密钥,但不能同时提供两者。
{ "serverName": "perplexity-advanced-mcp", "command": "uvx", "args": [ "perplexity-advanced-mcp" // 以下参数二选一,根据你使用的 API 提供商选择 // , "-o", "<你的 OpenRouter API 密钥>" // 使用 OpenRouter API,请替换为你的 OpenRouter API 密钥 // , "-p", "<你的 Perplexity API 密钥>" // 使用 Perplexity API,请替换为你的 Perplexity API 密钥 ] }
参数说明:
- serverName: 服务器名称,设置为 'perplexity-advanced-mcp' 即可。
- command: 启动服务器的命令,这里使用 'uvx' (如果未安装 uvx,请先安装 'pip install uvx')。你也可以直接使用 'python -m perplexity_advanced_mcp.cli' 命令启动。
- args: 传递给启动命令的参数,包括:
- '"perplexity-advanced-mcp"': 指定运行 'perplexity-advanced-mcp' 包。
- '"-o", "<你的 OpenRouter API 密钥>"' 或 '"-p", "<你的 Perplexity API 密钥>"': 二选一,用于配置 API 密钥。请将 '<你的 OpenRouter API 密钥>' 或 '<你的 Perplexity API 密钥>' 替换为你实际的 API 密钥。 你可以选择使用 OpenRouter 提供的统一 API 密钥,或者直接使用 Perplexity API 密钥。
API 密钥获取:
- OpenRouter API 密钥: 访问 OpenRouter 官网 注册并获取 API 密钥。
- Perplexity API 密钥: 访问 Perplexity 开发者文档 了解如何获取 API 密钥。
环境变量配置 (可选):
除了在 'args' 中直接指定 API 密钥,你还可以通过设置环境变量来配置 API 密钥。
- OpenRouter API 密钥: 设置环境变量 'OPENROUTER_API_KEY' 为你的 OpenRouter API 密钥。
- Perplexity API 密钥: 设置环境变量 'PERPLEXITY_API_KEY' 为你的 Perplexity API 密钥。
如果使用环境变量配置,'args' 可以简化为:
{ "serverName": "perplexity-advanced-mcp", "command": "uvx", "args": [ "perplexity-advanced-mcp" ] }
基本使用方法
MCP 客户端 (例如 Cline 或 Cursor) 可以通过 'ask_perplexity' 工具调用 Perplexity Advanced MCP 服务器。
'ask_perplexity' 工具接受以下参数:
- query (string): 要搜索的查询语句 (必填)。
- query_type (string): 查询类型,可选 "simple" 或 "complex" (必填)。 "simple" 类型适用于简单、快速的查询,成本较低; "complex" 类型适用于复杂、需要深入分析的查询,效果更好,但成本较高。
- attachment_paths (list[string]): 可选的文件路径列表。用于附加文件内容作为上下文,文件路径必须是绝对路径。
示例:
在 MCP 客户端中,你可以这样调用 'ask_perplexity' 工具:
{ "tool_calls": [ { "tool_name": "ask_perplexity", "tool_input": { "query": "Python 最新版本是什么?", "query_type": "simple" } }, { "tool_name": "ask_perplexity", "tool_input": { "query": "分析以下代码,找出当前库的状态并制定迁移计划。", "query_type": "complex", "attachment_paths": ["/absolute/path/to/your/codefile.py"] } } ] }
服务器会根据你的请求,调用 Perplexity 或 OpenRouter API 进行搜索,并返回结果。对于 "complex" 类型的查询,服务器还会尝试进行更深入的推理和分析。
信息
分类
网页与API