关于 Mcp Perplexity
Mcp Perplexity 是基于 Python 的 MCP 服务,封装 Perplexity API,提供问答、多轮对话和聊天记录管理工具。适合需要在开发环境中调用 Perplexity 的用户,聊天数据保存在本地。
主要功能
- 01ask_perplexity 单次问答工具
- 02chat_perplexity 多轮对话工具
- 03list_chats_perplexity 分页列出聊天
- 04read_chat_perplexity 读取本地历史记录
- 05通过环境变量配置模型
适用场景
- 01在编码过程中询问编程问题与错误排查
- 02延续已有对话进行技术调研
- 03查看和回顾过往聊天记录
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 ask_perplexity、chat_perplexity、list_chats_perplexity 和 read_chat_perplexity 四个工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | 要解决的技术问题或疑问 |
详细介绍
Perplexity Chat MCP 服务
Perplexity MCP 服务提供基于 Python 的 Perplexity API 接口,支持查询回答、保留聊天记录和管理对话。它支持通过环境变量配置模型,并在本地存储聊天数据。该服务使用 Python 和 setuptools 构建,旨在集成到开发环境中。
此 MCP 服务旨在模拟用户在浏览器中使用 Perplexity Chat 的方式,让你的模型能够提问、继续对话并列出所有聊天。
组件
工具
- ask_perplexity:通过 Perplexity 请求编程方面的专家帮助。专注于编码解决方案、错误调试和技术解释。返回包含来源引用和替代建议的回答。
- chat_perplexity:与 Perplexity AI 保持持续对话。可以创建新聊天,或根据完整的历史记录上下文继续现有聊天。返回聊天 ID,供后续继续对话时使用。
- list_chats_perplexity:列出与 Perplexity AI 的所有可用聊天对话。返回聊天 ID、标题和创建日期(以相对时间格式显示,例如“5 分钟前”“2 天前”)。结果采用分页形式,每页 50 个聊天。
- read_chat_perplexity:获取指定聊天的完整对话历史记录。返回包含所有消息及其时间戳的完整聊天历史记录。不会调用 Perplexity API,此工具只会读取本地存储的数据。
主要功能
-
**通过环境变量配置模型:**允许你使用
PERPLEXITY_MODEL环境变量指定 Perplexity 模型,灵活选择模型。你还可以指定
PERPLEXITY_MODEL_ASK和PERPLEXITY_MODEL_CHAT,分别为ask_perplexity和chat_perplexity工具使用不同模型。这些变量会覆盖
PERPLEXITY_MODEL。你可以在 Perplexity 文档中查看可用模型。 -
持久化聊天历史记录:
chat_perplexity工具可与 Perplexity AI 保持持续对话。它可以创建新聊天,或根据完整的历史记录上下文继续现有聊天。返回聊天 ID,供后续继续对话时使用。 -
**流式响应与进度报告:**使用进度报告,避免响应缓慢时发生超时。
快速入门
前提条件
使用此 MCP 服务前,请确保你已准备好:
- Python 3.10 或更高版本
- 已安装 uvx 包管理器
注意:uvx 的安装说明请见此处。
所有客户端的配置
要使用此 MCP 服务,请使用以下设置配置客户端(配置方式因客户端而异):
"mcpServers": {
"mcp-perplexity": {
"command": "uvx",
"args": ["mcp-perplexity"],
"env": {
"PERPLEXITY_API_KEY": "your-api-key",
"PERPLEXITY_MODEL": "sonar-pro",
"DB_PATH": "chats.db"
}
}
}
环境变量
使用以下环境变量配置 MCP Perplexity 服务:
| 变量 | 描述 | 默认值 | 必填 |
|---|---|---|---|
PERPLEXITY_API_KEY | 你的 Perplexity API 密钥 | 无 | 是 |
PERPLEXITY_MODEL | 交互的默认模型 | sonar-pro | 否 |
PERPLEXITY_MODEL_ASK | ask_perplexity 工具的指定模型 | 使用 PERPLEXITY_MODEL | 否 |
PERPLEXITY_MODEL_CHAT | chat_perplexity 工具的指定模型 | 使用 PERPLEXITY_MODEL | 否 |
DB_PATH | 聊天历史数据库的存储路径 | chats.db | 否 |
WEB_UI_ENABLED | 启用或禁用 Web UI | false | 否 |
WEB_UI_PORT | Web UI 端口 | 8050 | 否 |
WEB_UI_HOST | Web UI 主机 | 127.0.0.1 | 否 |
DEBUG_LOGS | 启用详细日志记录 | false | 否 |
使用 Smithery CLI
npx -y @smithery/cli@latest run @daniel-lxs/mcp-perplexity --config "{\"perplexityApiKey\":\"pplx-abc\",\"perplexityModel\":\"sonar-pro\"}"
使用方法
ask_perplexity
ask_perplexity 工具用于回答具体问题。此工具不会保留聊天历史,每个请求都是一次新的聊天。
如果指定了 PERPLEXITY_MODEL_ASK 模型,工具将使用该模型返回 Perplexity AI 的响应;否则将使用 PERPLEXITY_MODEL 模型。
chat_perplexity
chat_perplexity 工具用于持续对话,并会保留聊天历史。
聊天通过聊天 ID 标识。创建新聊天时,工具会返回该 ID。聊天 ID 的格式如下:wild-horse-12。
此工具适用于调试、研究以及其他需要聊天历史的任务。
如果指定了 PERPLEXITY_MODEL_CHAT 模型,工具将使用该模型返回 Perplexity AI 的响应;否则将使用 PERPLEXITY_MODEL 模型。
list_chats_perplexity
列出所有可用的聊天对话。它会返回分页的聊天列表,其中显示聊天 ID、标题和创建时间(相对格式)。你可以使用 page 参数指定页码(默认为 1,每页 50 个聊天)。
read_chat_perplexity
检索指定 chat_id 的完整对话历史。此工具会返回聊天中的所有消息,包括时间戳和角色(用户或助手)。此工具不会调用 Perplexity API;它只会从本地数据库读取数据。
Web UI
MCP Perplexity 服务现已包含 Web 界面,便于交互和管理聊天。
功能
- 交互式聊天界面
- 聊天历史管理
- 实时消息显示
截图
聊天列表视图
聊天界面
访问 Web UI
当 WEB_UI_ENABLED 设为 true 时,可通过 http://WEB_UI_HOST:WEB_UI_PORT 访问 Web UI。
默认地址为 http://127.0.0.1:8050。
开发
此项目使用 setuptools 进行开发和构建。开始步骤如下:
-
创建虚拟环境:
python -m venv .venv source .venv/bin/activate # On Linux/macOS # or .venv\Scripts\activate # On Windows -
以可编辑模式安装项目及其所有依赖项:
pip install -e . -
构建项目:
python -m build
虚拟环境将包含开发所需的所有依赖项。
贡献
欢迎为此项目作出贡献。更多信息请参阅 CONTRIBUTING.md 文件。
许可证
此项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。