使用说明

项目简介

本项目 'modelcontextprotocol/servers' 仓库中的 'perplexity-ask' 目录实现了一个 MCP 服务器,它将 Perplexity AI 的 Sonar API 封装成一个名为 'perplexity_ask' 的工具,供支持 MCP 协议的客户端(如 Claude 桌面应用)调用。通过这个工具,LLM 客户端可以利用 Perplexity 的实时网络搜索能力,获取最新的信息,从而增强其回答问题的能力。

主要功能点

  • 网络搜索工具集成: 提供 'perplexity_ask' 工具,允许 LLM 客户端通过自然语言指令调用 Perplexity API 进行实时网络搜索。
  • 上下文对话: 工具接受包含对话历史的消息数组作为输入,支持基于上下文的搜索和对话。
  • 引用来源: 搜索结果会附带引用来源,提高回答的可信度和可追溯性。
  • 易于部署: 提供 Docker 镜像和 NPX 两种部署方式,方便用户快速启动和配置 MCP 服务器。
  • 标准化 MCP 协议: 遵循 MCP 协议标准,确保与支持 MCP 协议的客户端兼容。

安装步骤

  1. 克隆仓库: 首先,你需要克隆 'modelcontextprotocol/servers' 仓库到本地:

    git clone https://github.com/ppl-ai/modelcontextprotocol.git

    然后进入 'perplexity-ask' 目录:

    cd servers/src/perplexity-ask
  2. 安装依赖: 在 'perplexity-ask' 目录下,使用 npm 安装项目依赖:

    npm install
  3. 获取 Sonar API Key:

    • 访问 Sonar API 账户注册页面 注册并登录。
    • 按照指引完成账户设置,并在开发者控制台中生成你的 API Key。
    • 将 API Key 设置为环境变量 'PERPLEXITY_API_KEY'。例如,在 Linux 或 macOS 系统中,你可以使用以下命令设置:
      export PERPLEXITY_API_KEY="YOUR_API_KEY_HERE"
      请将 '"YOUR_API_KEY_HERE"' 替换为你实际的 API Key。

服务器配置

为了让 MCP 客户端(例如 Claude 桌面应用)连接到 'perplexity-ask' 服务器,你需要在客户端的配置文件中添加服务器的配置信息。以下分别提供了 Docker 和 NPX 两种启动方式的配置示例。

Docker 启动配置 (claude_desktop_config.json):

{
  "mcpServers": {
    "perplexity-ask": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "PERPLEXITY_API_KEY",
        "mcp/perplexity-ask"
      ],
      "env": {
        "PERPLEXITY_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

参数解释:

  • '"server name": "perplexity-ask"': 服务器名称,在客户端配置中用于标识该服务器。
  • '"command": "docker"': 启动服务器的命令,这里使用 Docker。
  • '"args": [...]"': 传递给 'docker run' 命令的参数列表。
    • '"-i"': 保持标准输入 (STDIN) 打开。
    • '"--rm"': 容器退出后自动删除。
    • '"-e", "PERPLEXITY_API_KEY"': 将环境变量 'PERPLEXITY_API_KEY' 传递给 Docker 容器。
    • '"mcp/perplexity-ask"': Docker 镜像名称。
  • '"env": { "PERPLEXITY_API_KEY": "YOUR_API_KEY_HERE" }"': 为客户端配置指定环境变量,请务必将 '"YOUR_API_KEY_HERE"' 替换为你实际的 Perplexity API Key,虽然 Docker 启动时也会传入环境变量,但客户端配置中保留一份环境变量配置通常更稳妥。

NPX 启动配置 (claude_desktop_config.json):

{
  "mcpServers": {
    "perplexity-ask": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-perplexity-ask"
      ],
      "env": {
        "PERPLEXITY_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

参数解释:

  • '"server name": "perplexity-ask"': 服务器名称,与 Docker 配置相同。
  • '"command": "npx"': 启动服务器的命令,这里使用 NPX (Node Package Execute)。
  • '"args": [...]"': 传递给 'npx' 命令的参数列表。
    • '"-y"': 自动同意执行包安装。
    • '"@modelcontextprotocol/server-perplexity-ask"': 要执行的 NPX 包名称,即 '@modelcontextprotocol/server-perplexity-ask'。
  • '"env": { "PERPLEXITY_API_KEY": "YOUR_API_KEY_HERE" }"': 环境变量配置,同样需要将 '"YOUR_API_KEY_HERE"' 替换为你的 API Key

Docker 镜像构建 (如果选择 Docker 部署):

如果你选择使用 Docker 部署,需要先构建 Docker 镜像。在 'servers/src/perplexity-ask' 目录下执行以下命令:

docker build -t mcp/perplexity-ask:latest -f Dockerfile .

Claude 桌面应用配置:

打开 Claude 桌面应用的配置文件 'claude_desktop_config.json'。该文件通常位于:

  • macOS: '~/Library/Application\ Support/Claude/claude_desktop_config.json'
  • Windows: '%APPDATA%\Claude\claude_desktop_config.json'
  • Linux: '~/.config/Claude/claude_desktop_config.json'

使用文本编辑器打开 'claude_desktop_config.json' 文件,将上述 Docker 启动配置 或 NPX 启动配置 的 JSON 代码片段添加到 '"mcpServers"' 字段中。如果 'claude_desktop_config.json' 文件不存在,你需要先创建它,并确保其基本 JSON 结构正确。

基本使用方法

  1. 启动 MCP 服务器:

    • Docker 方式: 确保 Docker 已经运行,并且 Docker 镜像构建完成 (如果还未构建)。Claude 桌面应用将通过你在 'claude_desktop_config.json' 中配置的 Docker 命令自动启动服务器。
    • NPX 方式: 确保 Node.js 和 npm 已经安装。Claude 桌面应���将通过你在 'claude_desktop_config.json' 中配置的 NPX 命令自动启动服务器。
  2. 在 Claude 中使用 'perplexity_ask' 工具:

    • 启动或重启 Claude 桌面应用。
    • 如果配置正确,Claude 界面中会显示一个锤子图标,表示 MCP 工具已激活。
    • 点击锤子图标,你应该能看到 'perplexity_ask' 工具出现在可用工具列表中。
    • 在与 Claude 对话时,你可以指示 Claude 使用 'perplexity_ask' 工具进行网络搜索。例如,你可以提问 "使用 perplexity_ask 工具搜索一下今天最新的科技新闻"。Claude 可能会根据你的指令调用 'perplexity_ask' 工具,并返回搜索结果。

注意: 请确保你的 'PERPLEXITY_API_KEY' 环境变量已正确设置,并且 Claude 桌面应用的配置文件 'claude_desktop_config.json' 配置正确。如果遇到问题,可以参考仓库 README 中的 "Troubleshooting" 部分,或查阅 Claude 官方文档。

信息

分类

网页与API