Web MCP服务器
一个MCP服务器,它公开了一个 web.search 工具使用 塔维利 默认情况下,可选 SerpAPI 支持。
特性
web.search带有参数的工具:query(必填),provider(tavily | serpapi)和特定于提供商的选项- 输出一个紧凑的JSON结果列表(标题、链接、代码段/内容)
- 为任何兼容MCP的客户端运行stdio
设置
- 克隆此仓库(或使用提供的文件夹)。
- 创建
.env从示例中,并设置您的API密钥:
cp .env.example .env对于Tavily(默认):
echo“TAVILY_API_KEY=your_TAVILY_KEY_here”>>.env
可选:当provider=SerpAPI时启用SerpAPI使用
echo“SERPAPI_KEY=your_sparpi_KEY_here”>>.env
3. Install deps and build:npm install npm run build
## 在dev中运行
npm run dev
## 运行编译
npm start
## 全局CLI命令(可选)
您可以安装一个小的全局命令,这样您就不必在VS code设置中硬编码绝对路径。
1. 构建和链接CLI
npm install npm run build npm link
2. 验证它是否在您的路径上
web-mcp-server --version web-mcp-server --help
备注
- 该命令通过stdio启动MCP服务器,并将一直阻塞,直到客户端断开连接(MCP服务器正常)。
- 如果你看到“command not found”,请确保你的npm全局bin在PATH上(例如 `~/.npm-global/bin` 在macOS上)并重新打开您的终端。
### macOS上的PATH设置(zsh)
如果 `web-mcp-server` 之后找不到 `npm link`,你的npm全局bin可能不在PATH上。
1. 设置一个用户级npm前缀并将其添加到PATH中:
npm config set prefix ~/.npm-global echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
2. 重新链接(如果需要)并验证:
cd /Users/arturoquiroga/GITHUB/WEB-MCP-SERVER npm link web-mcp-server --version
提示
- 您可以使用以下命令检查全局npm bin文件夹: `npm bin -g`
- 如果VS Code在从Dock启动时找不到命令,请尝试从终端启动它(这样它就继承了PATH)或在设置中引用绝对命令路径。
## 在VS代码中使用(继续扩展)
1. 在VS Code中安装Continue–Coding AI Assistant并重新加载。
1. 构建服务器,以便Continue可以生成它:
npm install npm run build
3. 确保您的Tavily密钥可用于VS Code。macOS上最简单的方法:
export TAVILY_API_KEY="your_tavily_key_here" export DEFAULT_PROVIDER="tavily" # optional code .
或者,直接在中设置值 `.continue/config.json` (不建议用于共享存储库)。
4. 打开“继续”侧面板:
- 使用 `.vscode/settings.json` 加载 `.continue/config.json`,运行 `node ./dist/index.js` 超过stdio。
- 在工具/服务器中,选择名为的MCP服务器 `web` 并选择 `web.search` 工具。
- 示例参数: `{ "query": "latest AI research news", "num": 3, "provider": "tavily" }`.
故障排除:
- 如果您看到“Missing TAVILY_API_KEY”,请确认VS Code具有env变量(从同一终端启动VS Code,或将导出添加到shell配置文件中,然后重新启动VS Code)。
- 你不需要跑 `npm run dev` 使用Continue时;它将按需生成服务器。
## 在Claude Desktop中使用(简短说明)
1. 构建此项目,使编译的条目存在于 `dist/index.js`.
1. 在Claude Desktop中,打开“设置”→ 开发者→ 模型上下文协议(MCP),并添加新的stdio服务器。使用如下配置:
{ "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` 相应的路径。
3. 在Claude Desktop中开始新的聊天,并验证 `web` 工具出现。呼叫 `web.search` 通过查询(例如。, `latest AI research news`).如果您看到丢失密钥错误,请设置 `TAVILY_API_KEY` 直接在上面的MCP服务器env块中。
## 在GitHub Copilot中使用(代理模式)
1. 如此构建此项目 `dist/index.js` 存在:
npm install npm run build
2. 在Copilot中注册MCP服务器
选项A——通过UI(如果您的Copilot版本中有):
- 在VS Code中打开副驾驶聊天面板。
- 打开其设置/齿轮菜单,查找“模型上下文协议”或“MCP服务器”。
- 使用以下命令添加新服务器:
- 姓名: `web`
- 类型: `stdio`
- 命令: `node`
- Args: `./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}" } } ] }
注意:副驾驶的MCP设置键可能因版本而异。如果您在设置UI中没有看到此键,请在副驾驶设置中搜索“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}" } } ] }
这避免了对本地文件系统路径进行硬编码,并且可以跨工作区工作。
3. 将您的密钥提供给VS Code:
export TAVILY_API_KEY="your_tavily_key_here" export DEFAULT_PROVIDER="tavily" # optional code .
4. 在Copilot Chat中重新加载VS代码并进行测试
- 问:“使用web.search工具查找最新的人工智能研究新闻。”
- 副驾驶应致电 `web.search` 并返回结果。如果您看到丢失密钥错误,请确保VS Code继承了您的环境变量,或直接在上面的MCP服务器env块中设置它们。
## 客户端配置(示例)
对于通过stdio加载本地服务器的MCP客户端,添加类似于以下内容的条目:
{ "mcpServers": { "web": {
Use in VS Code via .vscode/mcp.json
Some MCP-enabled VS Code clients can automatically discover servers defined in .vscode/mcp.json and make their tools available in chat.
Prereqs
- Build artifacts exist at
dist/index.js:
- npm install && npm run build
- API keys in
.envat the workspace root (loaded by the server viadotenv):
- TAVILY_API_KEY=... (required for Tavily) - SERPAPI_KEY=... (optional, for SerpAPI) - DEFAULT_PROVIDER=tavily (optional)
What .vscode/mcp.json does
- This repo includes
.vscode/mcp.jsonwith a server named “Web Search”:
{
"servers": {
"Web Search": {
"type": "stdio",
"command": "node",
"args": ["./dist/index.js"]
}
}
}如何在VS Code中使用它
- 构建并设置您的
.env.
- 使用支持MCP和
.vscode/mcp.json发现(例如,一些支持MCP或其他启用MCP的扩展的GitHub Copilot Chat版本)。如果支持,“Web搜索”服务器将自动注册。
- 在聊天面板中,展开工具/服务器,然后选择
web.search工具,或要求助手“使用web.search…”。示例参数:
{ "query": "latest AI research news", "num": 3, "provider": "tavily" }故障排除
- 如果服务器未出现,则您的聊天客户端可能尚不支持
.vscode/mcp.json.使用此README中的Continue配置,或在客户端中手动注册服务器:
- 命令: node - Args: ./dist/index.js - 环境:套 TAVILY_API_KEY (以及可选 SERPAPI_KEY, DEFAULT_PROVIDER)
- 如果您看到“缺少TAVILY_API_KEY”,请确保您的密钥存在于
.env或者在VS Code环境中导出。 - 你也可以在聊天之外吸烟测试:
- 运行VS代码任务“MCP:搜索Web”(终端>运行任务…)
- 或者在终端中: npm run search -- --query "your query" --provider tavily --num 3
“command”:“node”, “args”:\[“./dist/index.js”\], “env”:{“TAVILY_API_KEY”:“${env:TAVILY_API_KEY}”,“SERPAPI_KEY”:《${nv:SERPAPI_KEY}》} } } }
## Notes
- Requires Node 18+ for built-in `fetch`.
- Tavily free tier and SerpAPI free tier both have quotas/limits.
- You can select a provider per call via `{ provider: "tavily" | "serpapi" }`. Default is Tavily (or set `DEFAULT_PROVIDER` in env).