
Perplexity Server
一个实现MCP协议的服务器,用于将perplexity API引入上下文环境。
概述
Perplexity MCP 服务器
概述
Perplexity MCP Server 是一个基于 Node.js 实现的 Anthropic Model Context Protocol (MCP),用于让 Claude 与 Perplexity 的语言模型进行交互。该服务器在 Claude 与 Perplexity AI 能力之间搭建了安全的桥梁,支持通过工具使用增强 AI 交互体验。
可用工具
服务器当前实现了两个主要工具:
1. perplexity_chat
支持完整消息历史的高级聊天补全工具。
javascript
{
"name": "perplexity_chat",
"description": "使用 Perplexity AI 生成聊天补全",
"parameters": {
"model": "string (可选) - 可选模型: llama-3.1-sonar-small-128k-online, llama-3.1-sonar-large-128k-online, llama-3.1-sonar-huge-128k-online",
"messages": "包含 {role, content} 对象的数组 - 对话历史",
"temperature": "number (可选) - 采样温度,范围 0-2"
}
}
2. perplexity_ask
用于快速提问的简化单查询接口。
javascript
{
"name": "perplexity_ask",
"description": "向 Perplexity AI 发送简单查询",
"parameters": {
"query": "string - 发送的问题或提示",
"model": "string (可选) - 可选模型: llama-3.1-sonar-small-128k-online, llama-3.1-sonar-large-128k-online, llama-3.1-sonar-huge-128k-online"
}
}
安装
-
克隆仓库:
bashgit clone https://github.com/yourusername/perplexity-mcp-server.git cd perplexity-mcp-server
-
安装依赖:
bashnpm install
-
创建
.env
文件:envPERPLEXITY_API_KEY=your-api-key-here
-
构建项目:
bashnpm run build
Claude Desktop 配置
将此服务器添加到 Claude Desktop 时,更新 claude_desktop_config.json
:
json
{
"mcpServers": {
//其他服务器...
"perplexity": {
"command": "node",
"args": ["path\\to\\perplexity-mcp-server\\dist\\index.js"],
"env": {
"PERPLEXITY_API_KEY": "YOUR_PERPLEXITY_API_KEY"
}
}
//其他服务器...
}
}
配置文件通常位于:
- Windows:
%APPDATA%/Claude/config/claude_desktop_config.json
- macOS:
~/Library/Application Support/Claude/config/claude_desktop_config.json
- Linux:
~/.config/Claude/config/claude_desktop_config.json
开发
启动开发服务器并启用自动重新编译:
bash
npm run dev
服务器使用 TypeScript 并通过 @modelcontextprotocol/sdk
包实现 MCP 协议。
架构
核心组件
-
PerplexityServer 类
- 实现 MCP 服务器协议
- 处理工具注册与执行
- 管理错误处理与服务器生命周期
-
工具系统
- 模块化工具定义
- 类型安全的工具处理器
- 结构化输入验证
技术细节
- 基于 TypeScript 构建,确保类型安全
- 使用
@modelcontextprotocol/sdk
实现 MCP - 通过 stdio 传输通信
- 基于环境的配置
错误处理
服务器实现了全面的错误处理机制:
- API 错误报告
- 无效工具请求处理
- 连接错误管理
- 进程信号处理
依赖
@modelcontextprotocol/sdk
: ^1.0.3dotenv
: ^16.4.7isomorphic-fetch
: ^3.0.0
贡献
- Fork 仓库
- 创建特性分支 (
git checkout -b feature/amazing-feature
) - 提交更改 (
git commit -m 'Add some amazing feature'
) - 推送分支 (
git push origin feature/amazing-feature
) - 发起 Pull Request
安全
- 通过环境变量管理 API 密钥
- 对所有工具参数进行输入验证
- 输出前对错误消息进行脱敏
- 通过 MCP 协议实现进程隔离
许可证
本项目基于 ISC 许可证授权。
故障排查
常见问题与解决方案:
-
服务器未找到
- 检查
claude_desktop_config.json
中的路径是否正确 - 确保服务器已构建 (
npm run build
) - 确认 Node.js 是否在 PATH 中
- 检查
-
认证错误
- 检查 .env 中的 Perplexity API 密钥
- 确认 API 密钥具备所需权限
-
工具执行错误
- 检查工具参数是否符合模式
- 检查网络连接
- 查看服务器日志获取详细错误信息