这是一个使用 Tavily 默认暴露 web.search 工具的 MCP 服务器,并可选支持 SerpAPI。
web.search 工具参数:query(必需),provider(tavily|serpapi)以及特定提供商的选项.env 并设置您的 API 密钥:
cp .env.example .env
echo "TAVILY_API_KEY=your_tavily_key_here" >> .env
echo "SERPAPI_KEY=your_serpapi_key_here" >> .env
3. 安装依赖并构建:
```bash
npm install
npm run build
npm run dev
npm start
您可以安装一个小的全局命令,这样您就不需要在 VS Code 设置中硬编码绝对路径。
npm install
npm run build
npm link
web-mcp-server --version
web-mcp-server --help
注意事项
~/.npm-global/bin),然后重新打开终端。如果在 npm link 后找不到 web-mcp-server,则您的 npm 全局 bin 可能不在 PATH 中。
npm config set prefix ~/.npm-global
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
cd /Users/arturoquiroga/GITHUB/WEB-MCP-SERVER
npm link
web-m-服务器--version
提示
npm bin -g在 VS Code 中安装 Continue – Coding AI 助手并重新加载。
构建服务器以便 Continue 可以启动它:
npm install
npm run build
export TAVILY_API_KEY="your_tavily_key_here"
export DEFAULT_PROVIDER="tavily" # 可选
code .
或者直接在 .continue/config.json 中设置值(不推荐用于共享仓库)。
.vscode/settings.json 加载 .continue/config.json,并通过标准 I/O 运行 node ./dist/index.js。web 的 MCP 服务器并选择 web.search 工具。{ "query": "最新的人工智能研究新闻", "num": 3, "provider": "tavily" }。故障排除:
npm run dev;它会在需要时启动服务器。构建此项目,使编译条目存在于 dist/index.js。
在 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 路径。
web 工具是否出现。调用 web.search 并带有查询(例如,“最新的人工智能研究新闻”)。如果看到缺少密钥错误,请在上面的 MCP 服务器环境块中直接设置 TAVILY_API_KEY。dist/index.js 存在:npm install
npm run build
选项 A — 通过 UI(如果可用):
webstdionode./dist/index.jsTAVILY_API_KEY: ${env:TAVILY_API_KEY}DEFAULT_PROVIDER: tavily(可选)SERPAPI_KEY: ${env:SERPAPI_KEY}(可选)选项 B — 通过设置 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}"
}
}
]
}
这避免了硬编码本地文件系统路径,并且可以在工作区之间通用。
export TAVILY_API_KEY="your_tavily_key_here"
export DEFAULT_PROVIDER="tavily" # 可选
code .
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 中使用它
在设置好 .env 并构建后,将此文件夹打开在 VS Code 中。
使用支持 MCP 和 .vscode/mcp.json 发现的聊天扩展(例如,某些具有 MCP 支持的 GitHub Copilot Chat 构建版本或其他 MCP 支持的扩展)。当受支持时,“Web Search”服务器将被自动注册。
在聊天面板中,展开工具/服务器并选择 web.search 工具,或要求助手“使用 web.search 来……”。示例参数:
{ "query": "最新的人工智能研究新闻", "num": 3, "provider": "tavily" }
故障排除
.vscode/mcp.json。使用此 README 中的 Continue 配置或手动在客户端中注册服务器:
node./dist/index.jsTAVILY_API_KEY(以及可选的 SERPAPI_KEY,DEFAULT_PROVIDER).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`)。