MCP工具路由API

一个智能统一的API,用于通过Groq的响应端点访问模型上下文协议(MCP)工具,支持AI驱动的工具选择、动态MCP注册表集成和零配置工具访问。

  • by janzheng
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 janzheng/mcp-navigator

使用说明

MCP Navigator——面向Groq的人工智能MCP工具路由器

一个智能、统一的API,用于通过Groq的响应端点访问模型上下文协议(MCP)工具。具有AI驱动的工具选择、动态MCP注册表集成和零配置工具访问功能。

特性

  • 🤖 AI工具选择 --让AI自动为您的查询选择最佳工具
  • 🌐 通用MCP接入 --无需配置即可从官方注册表访问任何MCP工具
  • 📝 动态文档 --基于实际可用工具自动生成的示例
  • 🔑 Per-Tool API密钥 --为每个MCP工具带上自己的钥匙
  • 🚀 浏览器友好 --带有查询参数的GET请求,便于测试
  • ⚡ 多种工具支持 --在一个请求中执行多个MCP工具
  • 🔧 智能注册表 --本地工具+自动回退到公共MCP注册表

快速开始

  1. 安装Deno: https://deno.land/#installation

  2. 设置环境变量:

export GROQ_API_KEY="your_groq_api_key"
export PARALLEL_API_KEY="your_parallel_api_key"
  1. 启动服务器:
deno task serve

这运行: deno serve --allow-sys --allow-read --allow-import --allow-env --allow-write --allow-net --reload=https://esm.town ./main.js

  1. 打开http://localhost:8000 查看API文档

使用示例

🤖 AI驱动的工具选择(推荐)

让AI自动为您的查询选择最佳工具:

# Browser-friendly: AI picks the right tools and executes them
GET /select?q=Plan a 3-day trip to Tokyo

# Generate curl commands for any query
GET /select?q=Find trending AI models&mode=curl

# Programmatic usage with custom API keys
curl -X POST "http://localhost:8000/select" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_GROQ_API_KEY" \
  -d '{"query": "Build a travel itinerary for Paris", "mode": "execute"}'

🎯 直接工具执行

当你确切地知道要使用哪些工具时:

# Execute specific tools
GET /?tools=parallel_web_search&q=what's the weather in San Francisco

# Multiple tools coordination
GET /?tools=github,huggingface&q=research trending AI models and create an issue

# MCP Registry tool (zero configuration)
GET /?tools=garden.stanislav.svelte-llm/svelte-llm-mcp&q=what are svelte runes

📋 工具发现

# List all available tools
GET /?mode=list

# Get detailed tool schemas
GET /?tools=parallel_web_search&mode=list

# Browse the MCP registry
GET /registry

# Search for specific tools
GET /registry?search=gmail

高级:Per-Tool API密钥(POST)

对于生产使用,您可以使用POST端点为每个工具提供自定义API密钥:

# Execute with custom API keys for each tool
curl -X POST "http://localhost:8000/" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_GROQ_API_KEY" \
  -d '{
    "tools": "parallel_web_search,github",
    "q": "research latest AI developments and create an issue",
    "toolHeaders": {
      "parallel_web_search": {
        "x-api-key": "USER_PROVIDED_PARALLEL_KEY"
      },
      "github": {
        "Authorization": "Bearer USER_PROVIDED_GITHUB_TOKEN"
      }
    }
  }'

# List tools with custom headers
curl -X POST "http://localhost:8000/" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "list",
    "tools": "parallel_web_search",
    "apiKey": "YOUR_GROQ_API_KEY",
    "toolHeaders": {
      "parallel_web_search": {
        "x-api-key": "USER_PROVIDED_PARALLEL_KEY"
      }
    }
  }'

主要特点:

  • 带上自己的钥匙:用户可以为每个MCP工具提供自己的API密钥
  • 安全:密钥按请求使用,不存储
  • 优先级:用户提供的键覆盖环境变量
  • 灵活的:根据需要将环境键与用户键混合使用

api参考

🤖 AI工具选择

GET/POST /select --AI会自动为您的查询选择最佳工具

GET参数

参数 说明 默认值 必填
q 或 query 您的自然语言查询 - 是
mode execute 或 curl execute 没有
model 要使用的Groq模型 openai/gpt-oss-120b 没有

柱体

{
  "query": "Your natural language query",
  "mode": "execute",  // or "curl"
  "model": "openai/gpt-oss-120b"
}

示例:

# Let AI pick tools and execute
GET /select?q=Plan a trip to Tokyo

# Generate curl command  
GET /select?q=Find trending AI models&mode=curl

# Programmatic usage
POST /select {"query": "Search for emails about project", "mode": "execute"}

🎯 直接工具执行

GET/POST / --当你知道你需要什么时,执行特定的工具

GET参数

参数 说明 默认值 必填
tools 逗号分隔的工具名称 - 用于执行模式
q 工具查询/输入 - 执行模式
mode execute 或 list execute 没有
model Groq模型 openai/gpt-oss-120b 没有

POST主体(增强型)

```json
{

“工具”:“工具1、工具2”, “q”:“您的查询”, “模式”:“执行”, “工具标题”:{ “工具1”:{“x-api-key”:“YOUR_key”} } }


### 🔧 Other Endpoints

- **`GET /registry`** — Browse official MCP registry with search
- **`POST /api/tool/:toolName`** — Individual tool execution (supports MCP registry)
- **`GET /debug`** — Environment and configuration check
- **`POST /api/groq/responses`** — Direct Groq API wrapper

## 🌐 Universal MCP Access

One of the most powerful features is **zero-configuration access** to any MCP tool from the official registry:

```bash
# Use any MCP tool without setup - automatically discovered from registry
GET /?tools=garden.stanislav.svelte-llm/svelte-llm-mcp&q=what are svelte runes
GET /?tools=com.peek/mcp&q=plan a 3-day tokyo itinerary  
GET /?tools=ai.waystation/gmail&q=search for emails about the project

# Or let AI pick the perfect tool automatically  
GET /select?q=I need help with Svelte development

它是如何工作的:

  1. 本地注册表优先 --检查您配置的工具
  2. MCP注册表回退 --自动搜索300多种公共MCP工具
  3. 智能匹配 --按精确名称或模糊匹配查找工具
  4. 零配置 --无需设置即可立即工作

工具注册表

工具已在中注册 toolsRegistry 对象在 main.js。每个工具都可以包括可选工具 _meta 为了获得更好的文档和示例:

const toolsRegistry = {
  parallel_web_search: {
    type: "mcp",
    server_label: "parallel_web_search",
    server_url: "https://mcp.parallel.ai/v1beta/search_mcp/",
    headers: {
      "x-api-key": () => Deno.env.get("PARALLEL_API_KEY")
    },
    require_approval: "never",
    // Optional metadata for better dynamic examples
    _meta: {
      description: "Web search with AI-optimized results",
      example_queries: [
        "what's the weather in San Francisco",
        "latest developments in AI safety research",
        "current news about climate change"
      ],
      use_cases: ["Current events", "Research", "Weather", "News"]
    }
  },
  github: {
    type: "mcp",
    server_label: "GitHub",
    server_url: "https://api.githubcopilot.com/mcp/",
    headers: {
      "Authorization": () => `Bearer ${Deno.env.get("GITHUB_TOKEN")}`
    },
    require_approval: "never",
    _meta: {
      description: "GitHub repository management and operations",
      example_queries: [
        "create an issue in my repo about adding MCP examples",
        "search for repositories related to AI",
        "create a new issue titled 'Add authentication'"
      ],
      use_cases: ["Create issues", "Manage repos", "Code search", "Pull requests"]
    }
  },
  // Add more tools here...
};

添加新工具

  1. 将您的工具配置添加到 toolsRegistry
  2. 设置所需的环境变量
  3. 可选择添加 _meta 为了获得更好的文档
  4. 该工具将通过API自动提供动态示例

例子:

new_tool: {
  type: "mcp",
  server_label: "new_tool",
  server_url: "https://example.com/mcp/",
  headers: {
    "authorization": () => `Bearer ${Deno.env.get("NEW_TOOL_API_KEY")}`
  },
  require_approval: "never",
  _meta: {
    description: "Custom tool for specific operations",
    example_queries: [
      "primary example query",
      "secondary example query",
      "tertiary example query"
    ],
    use_cases: ["Use case 1", "Use case 2", "Use case 3"]
  }
}

动态文档

API文档位于 / 是 完全动态 并基于以下内容生成示例:

  1. 工具元数据 (_meta)如果提供
  2. 注册表说明 来自动态加载的MCP工具
  3. 智能检测 基于工具名称和服务器标签
  4. 回退示例 对于未知的工具类型

这意味着:

  • ✅ 没有硬编码示例 -所有内容都反映了您的实际工具注册表
  • ✅ 自动更新 -添加工具可立即更新文档
  • ✅ 一致性行为 -示例开箱即用
  • ✅ 智能默认值 -即使没有元数据,也有合理的例子

响应格式

工具执行成功

```json

{ “id”:“resp_1k5shpe…”, “object”:“response”, “状态”:“已完成”, “输出”:[ { “type”:“mcp_call”, “server_label”:“parallel_web_search”, “name”:“web_search_preview”, “输出”:“…” }, { “类型”:“消息”, “角色”:“助理”, “内容”:[…] } ], “用法”:{…} }


### Tool Schema Response
  ```json
  {
  "mode": "list",
  "schemas": [
    {
      "toolName": "parallel_web_search",
      "server_label": "parallel_web_search",
      "tools": [
        {
          "name": "web_search_preview",
          "description": "Perform web searches...",
          "input_schema": {...}
        }
      ],
      "tool_count": 1
    }
  ]
}

环境变量

变量 描述 必填
GROQ_API_KEY 用于模型访问的Groq API密钥 是
PARALLEL_API_KEY 用于web搜索的并行AI API键 用于Parallel_web_search工具
GITHUB_TOKEN GitHub MCP工具的GitHub令牌 GitHub工具

SDK示例

在Groq中使用OpenAI SDK

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.GROQ_API_KEY,
  baseURL: "https://api.groq.com/openai/v1",
});

// Single tool example
const response = await client.responses.create({
  model: "openai/gpt-oss-120b",
  input: "What models are trending on Huggingface?",
  tools: [
    {
      type: "mcp",
      server_label: "Huggingface",
      server_url: "https://huggingface.co/mcp",
    }
  ]
});

console.log(response);

多个MCP服务器

const response = await client.responses.create({
  model: "openai/gpt-oss-120b",
  input: "Please create a new issue in my repository called 'build-with-groq/groq-code-cli' with the title 'Add MCP examples' and outline a few examples of MCP?",
  tools: [
    {
      type: "mcp",
      server_label: "GitHub",
      server_url: "https://api.githubcopilot.com/mcp/",
      headers: {
        Authorization: "Bearer <GITHUB_TOKEN>"
      }
    },
    {
      type: "mcp",
      server_label: "Huggingface",
      server_url: "https://huggingface.co/mcp",
    }
  ]
});

console.log(response);

高级:多系统协调

const response = await client.responses.create({
  model: "openai/gpt-oss-120b",
  input: "Research trending AI models and create a GitHub issue summarizing them",
  tools: [
    {
      type: "mcp",
      server_label: "GitHub",
      server_url: "https://api.githubcopilot.com/mcp/",
      headers: { "Authorization": "Bearer <GITHUB_TOKEN>" }
    },
    {
      type: "mcp",
      server_label: "Huggingface",
      server_url: "https://huggingface.co/mcp"
    },
    {
      type: "mcp",
      server_label: "parallel_web_search",
      server_url: "https://mcp.parallel.ai/v1beta/search_mcp/",
      headers: { "x-api-key": "<PARALLEL_API_KEY>" }
    }
  ]
});

建筑

核心组件

  • 🤖 AI工具选择器 --GPT-oss-120b自动选择最佳工具
  • 🌐 通用注册表 --本地工具+动态MCP注册表集成
  • 📝 动态文档 --从工具元数据自动生成的示例
  • 🔑 灵活的身份验证 -使用环境回退对API密钥进行逐操作
  • ⚡ 智能路由器 --上下文感知端点处理

智能行为

  • /select?q=X → AI选择工具并执行
  • /?tools=X&q=Y → 直接执行工具
  • /?mode=list → 工具发现和模式
  • 无参数 → 动态API文档
  • 未知工具 → 自动MCP注册表查找

错误处理

API提供了详细的错误消息和有用的示例:

  • 401未经授权 -缺少API密钥或密钥无效
  • 404未找到 --在注册表中找不到工具
  • 400错误请求 --缺少必需的参数

发展

项目结构

groq-mcp-nav/
├── main.js           # Main server and API logic
├── deno.json         # Deno configuration
├── README.md         # This file
└── ...

测试工具

多种测试和探索方法:

  • / → 交互式API文档
  • /select?q=your query → AI驱动的工具选择
  • /?tools=tool_name&q=test → 直接执行工具
  • /?mode=list → 探索可用工具
  • /registry → 浏览300+公共MCP工具
  • /debug → 检查配置和API密钥

需求

  • 第1.40天+
  • Groq API密钥 (一个在https://groq.com)
  • 特定于工具的API键 (例如,用于网络搜索的并行人工智能)

备注

  • AI驱动 --使用GPT-oss-120b进行智能刀具选择
  • 通用访问 --可与官方注册的300多种MCP工具配合使用
  • 零配置 --大多数工具无需设置即可立即工作
  • 生产就绪 -Per-tool API密钥和安全环境变量
  • 浏览器和API --专为交互式和程序化使用而设计

由Groq提供技术支持 -获取API密钥https://groq.com