返回市场
麦普网页搜索服务器

麦普网页搜索服务器

作者:Arturo-Quiroga-MSFT0 星标更新:2025-08-22

项目介绍

Web MCP 服务器

这是一个使用 Tavily 默认暴露 web.search 工具的 MCP 服务器,并可选支持 SerpAPI

特性

  • web.search 工具参数:query(必需),provider(tavily|serpapi)以及特定提供商的选项
  • 输出一个紧凑的 JSON 结果列表(标题、链接、摘要/内容)
  • 通过标准 I/O 运行任何兼容 MCP 的客户端

配置

  1. 克隆此仓库(或使用提供的文件夹)。
  2. 根据示例创建 .env 并设置您的 API 密钥:
    cp .env.example .env
    

对于 Tavily(默认):

echo "TAVILY_API_KEY=your_tavily_key_here" >> .env

可选:当 provider=serpapi 时启用 SerpAPI 使用

echo "SERPAPI_KEY=your_serpapi_key_here" >> .env

3. 安装依赖并构建:
```bash
npm install
npm run build

开发模式运行

npm run dev

编译后运行

npm start

全局 CLI 命令(可选)

您可以安装一个小的全局命令,这样您就不需要在 VS Code 设置中硬编码绝对路径。

  1. 构建并链接 CLI
npm install
npm run build
npm link
  1. 验证它是否在 PATH 中
web-mcp-server --version
web-mcp-server --help

注意事项

  • 该命令通过标准 I/O 启动 MCP 服务器,并会阻塞直到客户端断开连接(对于 MCP 服务器来说是正常的)。
  • 如果看到“command not found”,确保您的 npm 全局 bin 在 PATH 中(例如 macOS 上的 ~/.npm-global/bin),然后重新打开终端。

macOS(zsh)上的 PATH 设置

如果在 npm link 后找不到 web-mcp-server,则您的 npm 全局 bin 可能不在 PATH 中。

  1. 设置用户级别的 npm 前缀并将其添加到 PATH 中:
npm config set prefix ~/.npm-global
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
  1. 如需重新链接(如有必要)并验证:
cd /Users/arturoquiroga/GITHUB/WEB-MCP-SERVER
npm link
web-m-服务器--version

提示

  • 您可以检查全局 npm bin 文件夹:npm bin -g
  • 如果从 Dock 启动 VS Code 时无法找到命令,请尝试从终端启动(以便继承 PATH)或在设置中引用绝对命令路径。

在 VS Code 中使用(继续扩展)

  1. 在 VS Code 中安装 Continue – Coding AI 助手并重新加载。

  2. 构建服务器以便 Continue 可以启动它:

npm install
npm run build
  1. 确保您的 Tavily 密钥对 VS Code 可用。最简单的 macOS 方法:
export TAVILY_API_KEY="your_tavily_key_here"
export DEFAULT_PROVIDER="tavily"   # 可选
code .

或者直接在 .continue/config.json 中设置值(不推荐用于共享仓库)。

  1. 打开 Continue 侧边栏:
  • 它使用 .vscode/settings.json 加载 .continue/config.json,并通过标准 I/O 运行 node ./dist/index.js
  • 在工具/服务器中选择名为 web 的 MCP 服务器并选择 web.search 工具。
  • 示例参数:{ "query": "最新的人工智能研究新闻", "num": 3, "provider": "tavily" }

故障排除:

  • 如果看到“缺少 TAVILY_API_KEY”,确认 VS Code 有环境变量(从同一终端启动 VS Code,或将导出添加到您的 shell 配置文件并重启 VS Code)。
  • 使用 Continue 时不需要运行 npm run dev;它会在需要时启动服务器。

在 Claude Desktop 中使用(简短说明)

  1. 构建此项目,使编译条目存在于 dist/index.js

  2. 在 Claude Desktop 中,打开设置 → 开发者 → 模型上下文协议(MCP),并添加一个新的标准 I/O 服务器。使用如下配置:

{
  "mcpServers": {
    "web": {
      "command": "node",
      "args": ["/Users/arturoquiroga/GITHUB/WEB-MCP-SERVER/dist/index.js"],
      "env": {
        "TAVILY_API_KEY": "${env:TAVILY_API_KEY}",
        "SERPAPI_KEY": "${env:SERPAPI_KEY}",
        "DEFAULT_PROVIDER": "tavily"
      }
    }
  }
}

提示:建议使用绝对路径。如果您的仓库位于其他位置,请相应地更新 args 路径。

  1. 在 Claude Desktop 中开始新的聊天并验证 web 工具是否出现。调用 web.search 并带有查询(例如,“最新的人工智能研究新闻”)。如果看到缺少密钥错误,请在上面的 MCP 服务器环境块中直接设置 TAVILY_API_KEY

在 GitHub Copilot(代理模式)中使用

  1. 构建此项目,使 dist/index.js 存在:
npm install
npm run build
  1. 在 Copilot 中注册 MCP 服务器

选项 A — 通过 UI(如果可用):

  • 在 VS Code 中打开 Copilot 聊天面板。
  • 打开其设置/齿轮菜单并查找“模型上下文协议”或“MCP 服务器”。
  • 添加一个新服务器:
    • 名称:web
    • 类型:stdio
    • 命令:node
    • 参数:./dist/index.js
    • 环境:
      • TAVILY_API_KEY: ${env:TAVILY_API_KEY}
      • DEFAULT_PROVIDER: tavily(可选)
      • SERPAPI_KEY: ${env:SERPAPI_KEY}(可选)

选项 B — 通过设置 JSON(备用):

  • 打开命令面板 → “首选项:打开设置(JSON)”并添加:
{
  "github.copilot.chat.mcpServers": [
    {
      "name": "web",
      "type": "stdio",
      "command": "node",
      "args": ["./dist/index.js"],
      "env": {
        "TAVILY_API_KEY": "${env:TAVILY_API_KEY}",
        "DEFAULT_PROVIDER": "tavily",
        "SERPAPI_KEY": "${env:SERPAPI_KEY}"
      }
    }
  ]
}

注意:Copilot 的 MCP 设置键可能因版本而异。如果您在设置 UI 中看不到此键,请搜索 Copilot 设置中的“MCP”并相应调整。

选项 C — 使用全局 CLI 命令(无需绝对路径):

  • npm link 后,在用户设置中引用 web-mcp-server 命令:
{
  "github.copilot.chat.mcpServers": [
    {
      "name": "web",
      "type": "stdio",
      "command": "web-mcp-server",
      "args": [],
      "env": {
        "TAVILY_API_KEY": "${env:TAVILY_API_KEY}",
        "DEFAULT_PROVIDER": "tavily",
        "SERPAPI_KEY": "${env:SERPAPI_KEY}"
      }
    }
  ]
}

这避免了硬编码本地文件系统路径,并且可以在工作区之间通用。

  1. 让您的密钥对 VS Code 可用:
export TAVILY_API_KEY="your_tavily_key_here"
export DEFAULT_PROVIDER="tavily"   # 可选
code .
  1. 重新加载 VS Code 并在 Copilot 聊天中测试
  • 提问:“使用 web.search 工具查找最新的人工智能研究新闻。”
  • Copilot 应该调用 web.search 并返回结果。如果看到缺少密钥错误,请确保 VS Code 继承了您的环境变量或直接在 MCP 服务器环境块中设置了它们。

客户端配置(示例)

对于通过标准 I/O 加载本地服务器的 MCP 客户端,添加类似以下条目:

{
  "mcpServers": {
    "web": {
## 通过 .vscode/mcp.json 在 VS Code 中使用
一些支持 MCP 和 `.vscode/mcp.json` 发现的 VS Code 客户端可以自动发现定义在 `.vscode/mcp.json` 中的服务器,并使其工具在聊天中可用。

前提条件
- 构建产物存在于 `dist/index.js`:
  - `npm install && npm run build`
- 在工作区根目录的 `.env` 中的 API 密钥(由服务器通过 `dotenv` 加载):
  - `TAVILY_API_KEY=...`(Tavily 必需)
  - `SERPAPI_KEY=...`(可选,用于 SerpAPI)
  - `DEFAULT_PROVIDER=tavily`(可选)

`.vscode/mcp.json` 的作用
- 本仓库包含 `.vscode/mcp.json`,其中有一个名为“Web Search”的服务器:

  ```jsonc
  {
    "servers": {
      "Web Search": {
        "type": "stdio",
        "command": "node",
        "args": ["./dist/index.js"]
      }
    }
  }

如何在 VS Code 中使用它

  1. 在设置好 .env 并构建后,将此文件夹打开在 VS Code 中。

  2. 使用支持 MCP 和 .vscode/mcp.json 发现的聊天扩展(例如,某些具有 MCP 支持的 GitHub Copilot Chat 构建版本或其他 MCP 支持的扩展)。当受支持时,“Web Search”服务器将被自动注册。

  3. 在聊天面板中,展开工具/服务器并选择 web.search 工具,或要求助手“使用 web.search 来……”。示例参数:

    { "query": "最新的人工智能研究新闻", "num": 3, "provider": "tavily" }
    

故障排除

  • 如果服务器未出现,您的聊天客户端可能尚未支持 .vscode/mcp.json。使用此 README 中的 Continue 配置或手动在客户端中注册服务器:
    • 命令:node
    • 参数:./dist/index.js
    • 环境:设置 TAVILY_API_KEY(以及可选的 SERPAPI_KEYDEFAULT_PROVIDER
  • 如果看到“缺少 TAVILY_API_KEY”,请确保您的密钥存在于 .env 或导出到 VS Code 环境中。
  • 您也可以在聊天之外进行简单测试:
    • 运行 VS Code 任务“MCP: 搜索 Web”(终端 > 运行任务……)

    • 或在终端中:npm run search -- --query "您的查询" --provider tavily --num 3

      "command": "node", "args": ["./dist/index.js"], "env": { "TAVILY_API_KEY": "${env:TAVILY_API_KEY}", "SERPAPI_KEY": "${env:SERPAPI_KEY}" } } } }


## 注意事项
- 需要 Node 18+ 以使用内置的 `fetch`。
- Tavily 免费层级和 SerpAPI 免费层级都有配额/限制。
- 您可以通过 `{ provider: "tavily" | "serpapi" }` 按调用选择提供商。默认是 Tavily(或在环境中设置 `DEFAULT_PROVIDER`)。