返回市场
困惑度-MCP服务器

困惑度-MCP服务器

作者:laodev16 星标更新:2024-12-13

项目介绍

Perplexity MCP Server

概述

Perplexity MCP Server 是 Anthropic 的模型上下文协议(MCP)的一个 Node.js 实现,它使 Claude 能够与 Perplexity 的语言模型进行交互。此服务器提供了一个安全的桥梁,连接 Claude 和 Perplexity AI 的功能,通过工具使用增强了人工智能交互。

可用工具

服务器当前实现了两个主要工具:

1. perplexity_chat

支持完整消息历史记录的高级聊天完成工具。

{
  "name": "perplexity_chat",
  "description": "使用 Perplexity AI 生成聊天完成",
  "parameters": {
    "model": "字符串(可选)- 其中之一: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": "数字(可选)- 在 0 到 2 之间的采样温度"
  }
}

2. perplexity_ask

用于快速提问的简化单查询接口。

{
  "name": "perplexity_ask",
  "description": "向 Perplexity AI 发送一个简单的查询",
  "parameters": {
    "query": "字符串 - 要发送的问题或提示",
    "model": "字符串(可选)- 其中之一:llama-3.1-sonar-small-128k-online, llama-3.1-sonar-large-128k-online, llama-3.1-sonar-huge-128k-online"
  }
}

安装

  1. 克隆仓库:

    git clone https://github.com/yourusername/perplexity-mcp-server.git
    cd perplexity-mcp-server
    
  2. 安装依赖:

    npm install
    
  3. 创建 .env 文件:

    PERPLEXITY_API_KEY=your-api-key-here
    
  4. 构建项目:

    npm run build
    

Claude Desktop 配置

要将此服务器添加到 Claude Desktop,请更新您的 claude_desktop_config.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

开发

启动具有自动重新编译功能的开发服务器:

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. 分叉仓库
  2. 创建您的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开拉取请求

安全性

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

许可证

本项目根据 ISC 许可证授权。

故障排除

常见问题及解决方案:

  1. 找不到服务器

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

    • 验证 .env 中的 Perplexity API 密钥
    • 检查 API 密钥是否有必要的权限
  3. 工具执行错误

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