小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
6
最近更新:1个月前

一个实现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"  
  }  
}  

安装

  1. 克隆仓库:

    bash 复制代码
    git clone https://github.com/yourusername/perplexity-mcp-server.git  
    cd perplexity-mcp-server  
  2. 安装依赖:

    bash 复制代码
    npm install  
  3. 创建 .env 文件:

    env 复制代码
    PERPLEXITY_API_KEY=your-api-key-here  
  4. 构建项目:

    bash 复制代码
    npm 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 协议。

架构

核心组件

  1. PerplexityServer 类

    • 实现 MCP 服务器协议
    • 处理工具注册与执行
    • 管理错误处理与服务器生命周期
  2. 工具系统

    • 模块化工具定义
    • 类型安全的工具处理器
    • 结构化输入验证

技术细节

  • 基于 TypeScript 构建,确保类型安全
  • 使用 @modelcontextprotocol/sdk 实现 MCP
  • 通过 stdio 传输通信
  • 基于环境的配置

错误处理

服务器实现了全面的错误处理机制:

  • API 错误报告
  • 无效工具请求处理
  • 连接错误管理
  • 进程信号处理

依赖

  • @modelcontextprotocol/sdk: ^1.0.3
  • dotenv: ^16.4.7
  • isomorphic-fetch: ^3.0.0

贡献

  1. Fork 仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add some amazing feature')
  4. 推送分支 (git push origin feature/amazing-feature)
  5. 发起 Pull Request

安全

  • 通过环境变量管理 API 密钥
  • 对所有工具参数进行输入验证
  • 输出前对错误消息进行脱敏
  • 通过 MCP 协议实现进程隔离

许可证

本项目基于 ISC 许可证授权。

故障排查

常见问题与解决方案:

  1. 服务器未找到

    • 检查 claude_desktop_config.json 中的路径是否正确
    • 确保服务器已构建 (npm run build)
    • 确认 Node.js 是否在 PATH 中
  2. 认证错误

    • 检查 .env 中的 Perplexity API 密钥
    • 确认 API 密钥具备所需权限
  3. 工具执行错误

    • 检查工具参数是否符合模式
    • 检查网络连接
    • 查看服务器日志获取详细错误信息