使用说明
MCP Navigator——面向Groq的人工智能MCP工具路由器
一个智能、统一的API,用于通过Groq的响应端点访问模型上下文协议(MCP)工具。具有AI驱动的工具选择、动态MCP注册表集成和零配置工具访问功能。
特性
- 🤖 AI工具选择 --让AI自动为您的查询选择最佳工具
- 🌐 通用MCP接入 --无需配置即可从官方注册表访问任何MCP工具
- 📝 动态文档 --基于实际可用工具自动生成的示例
- 🔑 Per-Tool API密钥 --为每个MCP工具带上自己的钥匙
- 🚀 浏览器友好 --带有查询参数的GET请求,便于测试
- ⚡ 多种工具支持 --在一个请求中执行多个MCP工具
- 🔧 智能注册表 --本地工具+自动回退到公共MCP注册表
快速开始
-
安装Deno: https://deno.land/#installation
-
设置环境变量:
export GROQ_API_KEY="your_groq_api_key"
export PARALLEL_API_KEY="your_parallel_api_key"
- 启动服务器:
deno task serve
这运行: deno serve --allow-sys --allow-read --allow-import --allow-env --allow-write --allow-net --reload=https://esm.town ./main.js
- 打开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
它是如何工作的:
- 本地注册表优先 --检查您配置的工具
- MCP注册表回退 --自动搜索300多种公共MCP工具
- 智能匹配 --按精确名称或模糊匹配查找工具
- 零配置 --无需设置即可立即工作
工具注册表
工具已在中注册 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...
};
添加新工具
- 将您的工具配置添加到
toolsRegistry - 设置所需的环境变量
- 可选择添加
_meta为了获得更好的文档 - 该工具将通过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文档位于 / 是 完全动态 并基于以下内容生成示例:
- 工具元数据 (
_meta)如果提供 - 注册表说明 来自动态加载的MCP工具
- 智能检测 基于工具名称和服务器标签
- 回退示例 对于未知的工具类型
这意味着:
- ✅ 没有硬编码示例 -所有内容都反映了您的实际工具注册表
- ✅ 自动更新 -添加工具可立即更新文档
- ✅ 一致性行为 -示例开箱即用
- ✅ 智能默认值 -即使没有元数据,也有合理的例子
响应格式
工具执行成功
```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