ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何构建 MCP 路由代理
教程

如何构建 MCP 路由代理

了解如何构建一个 AI 代理,该代理可以根据查询上下文动态发现并路由到 MCP 搜索工具,而无需硬编码工具选择逻辑。

获取免费API密钥API文档

大多数人工智能代理对每种查询类型使用哪个工具进行硬编码。 MCP 通过让代理在运行时发现工具并根据上下文选择最佳工具来改变这一点。本教程构建一个连接到 Scavio 的 MCP 服务器的路由代理,发现 11 个搜索工具,并为每个查询动态选择最佳平台。不需要 if-else 路由逻辑:法学硕士根据工具描述做出路由决策。

前置条件

  • 已安装 Node.js 18+
  • @modelcontextprotocol/sdk包
  • 来自 scavio.dev 的 Scavio API 密钥
  • LLM 的 Anthropic 或 OpenAI API 密钥

操作指南

步骤 1: 安装MCP SDK

将 MCP 客户端 SDK 添加到您的项目。

Bash
npm install @modelcontextprotocol/sdk

步骤 2: 连接到 MCP 服务器并发现工具

创建一个连接到 Scavio 的 MCP 服务器并列出所有可用工具的客户端。

JavaScript
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

const transport = new StreamableHTTPClientTransport(
  new URL('https://mcp.scavio.dev/mcp'),
  { requestInit: { headers: { 'x-api-key': process.env.SCAVIO_API_KEY } } }
);
const client = new Client({ name: 'routing-agent', version: '1.0.0' });
await client.connect(transport);

const { tools } = await client.listTools();
console.log(`Discovered ${tools.length} tools:`);
tools.forEach(t => console.log(`  - ${t.name}: ${t.description}`));

步骤 3: 将 MCP 工具转换为 LLM 工具定义

将发现的 MCP 工具映射为 LLM 期望的工具调用格式。

JavaScript
function mcpToLlmTools(mcpTools) {
  return mcpTools.map(t => ({
    type: 'function',
    function: {
      name: t.name,
      description: t.description,
      parameters: t.inputSchema
    }
  }));
}

const llmTools = mcpToLlmTools(tools);

步骤 4: 构建路由循环

使用工具列表将用户查询发送给法学硕士。 LLM选择工具;您的代码通过 MCP 执行它。

JavaScript
async function routingAgent(userQuery) {
  const messages = [{ role: 'user', content: userQuery }];
  const response = await llm.chat({
    messages,
    tools: llmTools,
    tool_choice: 'auto'
  });
  if (response.tool_calls) {
    for (const call of response.tool_calls) {
      const result = await client.callTool({
        name: call.function.name,
        arguments: JSON.parse(call.function.arguments)
      });
      messages.push({ role: 'tool', content: JSON.stringify(result), tool_call_id: call.id });
    }
    const final = await llm.chat({ messages, tools: llmTools });
    return final.content;
  }
  return response.content;
}

Python 示例

Python
# Python MCP client with routing:
import requests, os, json
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

# Simplified routing without full MCP SDK:
PLATFORM_MAP = {
    'product': 'amazon', 'price': 'amazon', 'buy': 'walmart',
    'video': 'youtube', 'tutorial': 'youtube', 'how to': 'youtube',
    'reddit': 'reddit', 'community': 'reddit', 'opinion': 'reddit',
}

def route_search(query: str) -> str:
    q_lower = query.lower()
    platform = 'google'
    for keyword, p in PLATFORM_MAP.items():
        if keyword in q_lower:
            platform = p
            break
    resp = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': platform, 'query': query}, timeout=10)
    return json.dumps({'platform': platform, 'results': resp.json().get('organic', [])[:3]}, indent=2)

JavaScript 示例

JavaScript
// Full MCP routing example in the steps above.
// Simplified version without MCP SDK:
const PLATFORM_MAP = { product: 'amazon', video: 'youtube', reddit: 'reddit', opinion: 'reddit' };

async function routeSearch(query) {
  let platform = 'google';
  for (const [kw, p] of Object.entries(PLATFORM_MAP)) {
    if (query.toLowerCase().includes(kw)) { platform = p; break; }
  }
  const resp = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
    body: JSON.stringify({platform, query})
  });
  return {platform, results: (await resp.json()).organic?.slice(0, 3)};
}

预期输出

JSON
An MCP routing agent that discovers search tools dynamically and lets the LLM select the optimal platform per query context.

相关教程

  • 如何将 MCP 搜索连接到 Claude Desktop

常见问题

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

已安装 Node.js 18+. @modelcontextprotocol/sdk包. 来自 scavio.dev 的 Scavio API 密钥. LLM 的 Anthropic 或 OpenAI API 密钥. Scavio API密钥注册即送50个免费积分。

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

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

相关资源

Use Case

IDE MCP 搜索

Read more
Use Case

MCP 自定义搜索服务器

Read more
Best Of

2026 年 IDE 集成最佳 MCP 搜索工具

Read more
Best Of

2026 年 MCP 服务器最佳搜索 API

Read more
Solution

MCP按需上下文节省

Read more
Solution

MCP路由与搜索降级

Read more

开始构建

了解如何构建一个 AI 代理,该代理可以根据查询上下文动态发现并路由到 MCP 搜索工具,而无需硬编码工具选择逻辑。

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

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

产品

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

开发者

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

替代方案

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

工具

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

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策