ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何将 Web 搜索工具添加到您自己的 MCP 服务器
教程

如何将 Web 搜索工具添加到您自己的 MCP 服务器

构建一个包装 Scavio API 的自定义 MCP 服务器工具。让任何兼容 MCP 的 AI 助手只需 30 行 TypeScript 即可访问实时网络搜索。

获取免费API密钥API文档

模型上下文协议 (MCP) 允许像 Claude 这样的人工智能助手通过标准化接口调用外部工具。虽然 Scavio 提供官方 MCP 服务器,但您可能希望将 Web 搜索添加为您自己的自定义 MCP 服务器中的众多工具之一。本教程介绍如何构建包装 Scavio API 的 MCP 服务器工具、将其注册到服务器的工具列表中以及处理来自任何 MCP 客户端的传入搜索请求。

前置条件

  • Node.js 18 或更高版本
  • npm 安装@modelcontextprotocol/sdk
  • Scavio API 密钥
  • 基本 TypeScript 知识

操作指南

步骤 1: 初始化MCP服务器

使用官方SDK创建一个新的MCP服务器。该服务器将向任何 MCP 客户端公开您的自定义工具。

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({
  name: "my-tools",
  version: "1.0.0",
});

步骤 2: 注册网络搜索工具

定义一个接受查询和可选平台参数的 web_search 工具。该处理程序调用 Scavio API 并返回格式化结果。

const SCAVIO_KEY = process.env.SCAVIO_API_KEY!;

server.tool(
  "web_search",
  "Search the web for current information. Returns top results with titles, snippets, and URLs.",
  {
    query: z.string().describe("The search query"),
    platform: z.enum(["google", "youtube", "amazon", "walmart", "reddit"]).default("google").describe("Search platform"),
  },
  async ({ query, platform }) => {
    const res = await fetch("https://api.scavio.dev/api/v1/search", {
      method: "POST",
      headers: { "x-api-key": SCAVIO_KEY, "Content-Type": "application/json" },
      body: JSON.stringify({ platform, query, country_code: "us" }),
    });
    const data = await res.json();
    const results = data.organic_results || data.products || data.videos || [];
    const text = results.slice(0, 5).map((r: any, i: number) =>
      `[${i + 1}] ${r.title || r.name}\n${r.snippet || r.description || ""}\n${r.link || r.url || ""}`
    ).join("\n\n");
    return { content: [{ type: "text", text }] };
  }
);

步骤 3: 启动服务器

将服务器连接到 stdio 传输,以便 MCP 客户端可以与其通信。

async function main() {
  const transport = new StdioServerTransport();
  await server.connect(transport);
}
main();

步骤 4: 在 Claude Desktop 中配置

将 Claude Desktop 指向您的自定义 MCP 服务器二进制文件,以便它可以使用 web_search 工具。

JSON
{
  "mcpServers": {
    "my-tools": {
      "command": "npx",
      "args": ["tsx", "server.ts"],
      "env": {
        "SCAVIO_API_KEY": "your_scavio_api_key"
      }
    }
  }
}

Python 示例

Python
# Python MCP server with Scavio web search tool
import os
import json
import sys
import requests

SCAVIO_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")

def handle_search(query: str, platform: str = "google") -> str:
    r = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": SCAVIO_KEY},
        json={"platform": platform, "query": query, "country_code": "us"}
    )
    r.raise_for_status()
    data = r.json()
    results = data.get("organic_results", data.get("products", []))[:5]
    return "\n\n".join(
        f"[{i+1}] {r.get('title', '')}\n{r.get('snippet', '')}\n{r.get('link', '')}"
        for i, r in enumerate(results)
    )

# This is a simplified example. Use the mcp Python SDK for production.
if __name__ == "__main__":
    result = handle_search("latest AI news 2026")
    print(result)

JavaScript 示例

JavaScript
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({ name: "my-tools", version: "1.0.0" });
const SCAVIO_KEY = process.env.SCAVIO_API_KEY;

server.tool(
  "web_search",
  "Search the web for current information",
  { query: z.string(), platform: z.enum(["google", "youtube", "amazon", "walmart", "reddit"]).default("google") },
  async ({ query, platform }) => {
    const res = await fetch("https://api.scavio.dev/api/v1/search", {
      method: "POST",
      headers: { "x-api-key": SCAVIO_KEY, "Content-Type": "application/json" },
      body: JSON.stringify({ platform, query, country_code: "us" }),
    });
    const data = await res.json();
    const results = (data.organic_results || data.products || []).slice(0, 5);
    const text = results.map((r, i) => `[${i+1}] ${r.title}\n${r.snippet || ""}\n${r.link || ""}`).join("\n\n");
    return { content: [{ type: "text", text }] };
  }
);

const transport = new StdioServerTransport();
await server.connect(transport);

预期输出

JSON
MCP server started on stdio

Tool: web_search
Input: {"query": "latest AI news", "platform": "google"}

[1] OpenAI Launches New Agent Platform
OpenAI announced a comprehensive agent building platform...
https://example.com/openai-agents

[2] Anthropic Claude 4 Release Details
Anthropic released Claude 4 with expanded context...
https://example.com/claude-4

相关教程

  • 如何通过 MCP 向 Claude 添加实时搜索
  • 如何使用langchain-scavio向LangChain添加实时搜索

常见问题

大多数开发者在15到30分钟内完成本教程。您需要一个Scavio API密钥(免费套餐即可)和可用的Python或JavaScript环境。

Node.js 18 或更高版本. npm 安装@modelcontextprotocol/sdk. Scavio API 密钥. 基本 TypeScript 知识. Scavio API密钥注册即送50个免费积分。

可以。免费套餐注册即送50个积分,完全足够完成本教程并构建一个可运行的原型解决方案。

Scavio提供原生LangChain包(langchain-scavio)、MCP服务器以及适用于任何HTTP客户端的REST API。本教程使用 the raw REST API, 但您可以根据需要适配您选择的框架。

相关资源

Use Case

MCP 自定义搜索服务器

Read more
Use Case

IDE MCP 搜索

Read more
Comparison

Scavio MCP vs Perplexity Advanced MCP

Read more
Best Of

2026年Claude Code最佳MCP搜索工具

Read more
Best Of

2026 年最适合交易和金融代理的 MCP 服务器

Read more
Comparison

Tavily vs Scavio

Read more

开始构建

构建一个包装 Scavio API 的自定义 MCP 服务器工具。让任何兼容 MCP 的 AI 助手只需 30 行 TypeScript 即可访问实时网络搜索。

获取免费API密钥阅读文档
ScavioScavio

面向AI智能体的实时搜索API。搜索所有平台,不仅仅是Google。

产品

  • 功能
  • 定价
  • 控制台
  • 联盟计划

开发者

  • 文档
  • API参考
  • 快速开始
  • MCP集成
  • Python SDK

替代方案

  • Tavily替代方案
  • SerpAPI替代方案
  • Firecrawl替代方案
  • Exa替代方案

工具

  • JSON格式化
  • cURL转代码
  • Token计数器
  • 全部工具

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策