MCP Gateway
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Gatewayuse_filesystem action="list" params={}"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Gateway - 低 token 二级路由聚合网关
一个 MCP 网关,把多个第三方 MCP Server 聚合成少量顶层工具,适合“10 个 server × 每个 20 个 tool”这种场景:客户端只看到网关工具,真实工具通过 search -> describe -> call 按需发现和调用。
设计目标
减少上下文占用:不把 200 个上游工具 schema 一次性塞给模型。
减少误填参数:搜索结果直接暴露
required和arguments_template,调用前按上游inputSchema.required做预校验。按域过滤:每个 server 可配置
profiles,例如jadx、ida、android、native,搜索时只扫需要的域。故障隔离:某个上游离线时不影响其他上游;按工具名前缀调用时只连接对应 server。
真实输出不截断:省 token 靠工具发现阶段压缩;
call_gateway_tool默认完整返回上游结果。兼容旧模式:保留
legacy的use_<server>(action, params),但推荐search模式。
Related MCP server: fastmcp-gateway
工作原理
search 模式(推荐)
┌─────────────────────────────────────────────────────┐
│ MCP Gateway │
├─────────────────────────────────────────────────────┤
│ 对外暴露的工具: │
│ - gateway_status │
│ - search_gateway_tools(query, profile?, server?) │
│ - describe_gateway_tool(name) │
│ - call_gateway_tool(name, arguments) │
├─────────────────────────────────────────────────────┤
│ 内部实现: │
│ ├── 按 server/profile 懒加载上游 tools │
│ ├── 本地轻量检索 + 短 TTL 索引缓存 │
│ ├── 返回紧凑摘要,不展开完整 schema │
│ ├── describe 时才返回单个工具完整 input schema │
│ └── call 前校验 required / unexpected 参数 │
└─────────────────────────────────────────────────────┘推荐调用顺序:
gateway_status(profile="jadx"):确认对应上游是否在线。search_gateway_tools(query="class source", profile="jadx"):搜真实工具,只返回紧凑摘要。describe_gateway_tool(name="jadx_mcp_server_get_class_source"):必要时查看完整 schema。call_gateway_tool(name="...", arguments={...}):用真实参数字典调用。
legacy 模式(兼容)
use_filesystem(action="list", params={})
use_git(action="git_status", params={})这种模式顶层工具数 = server 数,且 action/params 容易被模型填错;仅建议兼容旧客户端时使用。
安装
git clone https://github.com/LunFengChen/Gateway-Mcp.git
cd Gateway-Mcp
python -m venv .venv
. .venv/bin/activate
pip install -e .配置
编辑 mcps_config.json:
{
"gateway": {
"mode": "search",
"search_tool_name": "search_gateway_tools",
"call_tool_name": "call_gateway_tool",
"describe_tool_name": "describe_gateway_tool",
"max_results": 8,
"always_visible": ["gateway_status"],
"probe_timeout_sec": 3.0,
"status_preview_count": 3,
"error_max_chars": 280,
"search_optional_fields_limit": 6,
"search_description_max_chars": 96,
"legacy_list_max_items": 24,
"call_result_max_chars": 0,
"tool_index_ttl_sec": 30.0
},
"mcpServers": {
"ida-pro-mcp": {
"command": "/path/to/ida-python/bin/ida-pro-mcp",
"args": [],
"profiles": ["reverse", "native", "ida"],
"disabled": false
},
"jadx-mcp-server": {
"command": "/path/to/jadx-mcp-server/.venv/bin/python",
"args": ["/path/to/jadx_mcp_server.py", "--jadx-host", "127.0.0.1", "--jadx-port", "8650"],
"profiles": ["reverse", "android", "jadx"],
"disabled": false
},
"binary-ninja-mcp": {
"command": "/path/to/binary_ninja_mcp/.venv/bin/python",
"args": ["/path/to/binary_ninja_mcp/bridge/binja_mcp_bridge.py"],
"profiles": ["reverse", "native", "binaryninja", "bn"],
"disabled": false
}
}
}在 IDE / Agent 中只配置 Gateway:
{
"mcpServers": {
"GateWay-Mcp": {
"command": "/path/to/Gateway-Mcp/.venv/bin/python",
"args": [
"/path/to/Gateway-Mcp/gateway_mcp_server.py",
"--config",
"/path/to/Gateway-Mcp/mcps_config.json"
],
"disabled": false
}
}
}使用示例
# 查看状态,可用 profile/server 缩小范围
gateway_status(profile="jadx")
# 搜索工具:结果包含 required 和 arguments_template
search_gateway_tools(query="class source", profile="jadx")
# 示例搜索结果片段:
# {
# "name": "jadx_mcp_server_get_class_source",
# "required": ["class_name"],
# "arguments_template": {"class_name": "<required>"}
# }
# 查看单个工具完整 input schema
describe_gateway_tool(name="jadx_mcp_server_get_class_source")
# 调用真实工具:arguments 必须是上游工具真实参数字典
call_gateway_tool(
name="jadx_mcp_server_get_class_source",
arguments={"class_name": "com.demo.MainActivity"}
)添加更多 MCP Server
只需在 mcps_config.json 的 mcpServers 里新增条目,并给它打上合适的 profiles:
profiles: 用来缩小搜索/状态探测范围,避免一次扫所有 server。disabled: 临时关闭某个上游,不影响其他上游。call_result_max_chars:0表示真实工具输出不截断;只有你显式传max_chars才会限制单次调用输出。工具名前缀:
ida-pro-mcp会变成ida_pro_mcp_,jadx-mcp-server会变成jadx_mcp_server_。
设计依据
当前实现采用“工具摘要 + 按需 schema + 统一调用”的 progressive disclosure 思路:
MCP 官方 tools 协议本身支持
tools/list返回inputSchema,以及tools/call调用工具;网关在这两步之间做索引和裁剪。FastMCP 支持 proxy / transform 类网关思路,但直接代理大量工具仍会把工具面暴露给客户端;本项目选择自定义低 token API。
同类网关/平台常见做法也是把大量工具改成搜索或 catalog,再按需展开 schema。
许可证
MIT
Available Tools
4 toolscall_gateway_toolA
调用 gateway 下某个真实工具。name 来自 search_gateway_tools / describe_gateway_tool,arguments 为该工具的真实参数字典。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| arguments | No | ||
| max_chars | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It does not mention that calling an arbitrary gateway tool may have side effects, require authorization, or produce errors. The description is minimal and only explains the source of the name parameter, leaving the agent unaware of the potentially operationally impactful behavior of invoking an arbitrary tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler. It front-loads the core action and immediately provides the critical constraint on the 'name' parameter. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a generic gateway invoker, and the description covers the main idea, names the discovery tools, and clarifies the arguments parameter. However, it omits any mention of 'max_chars' and does not warn that the underlying tool's behavior may be unknown or potentially destructive. Given the output schema exists, return value explanation is unnecessary, but the description still leaves important contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It adds meaning for 'name' (must come from search/describe) and 'arguments' (real parameter dictionary of the tool), but does not explain 'max_chars' at all. The partial coverage of 2 out of 3 parameters brings the score above baseline but leaves a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to call a real tool under the gateway. It uses a specific verb ('call') and resource ('a real tool under gateway'), and distinguishes itself from sibling tools like search_gateway_tools and describe_gateway_tool by indicating it performs the actual invocation rather than discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage guidance by stating that the 'name' parameter comes from search_gateway_tools or describe_gateway_tool, implying the correct workflow: first discover, then invoke. It does not explicitly state 'when not to use' but the reference to sibling tools makes the alternative path clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_gateway_toolA
按工具名查看单个 gateway 工具的详细 schema。先用 search_gateway_tools 搜,再按需 describe。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| include_output_schema | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It correctly implies the tool is read-only ('查看') and focuses on schema inspection rather than execution, which is useful. But it does not disclose the effect of the include_output_schema flag, error behavior, or return format details beyond the schema, leaving gaps for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single two-sentence Chinese sentence that front-loads the core purpose ('按工具名查看单个 gateway 工具的详细 schema') and then adds a concise workflow. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only 2 parameters and an output schema, and the description provides a clear workflow. However, the lack of any mention of the optional include_output_schema parameter and no guidance on expected output beyond the schema leaves it incomplete for a user trying to fully leverage the tool's options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the 'name' parameter via '按工具名', but it completely omits the 'include_output_schema' parameter, which is a boolean with a default. Thus, only half the parameters are addressed, and the description adds limited value over the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: view the detailed schema of a single gateway tool by name. It distinguishes itself from siblings like search_gateway_tools (searching) and call_gateway_tool (invoking), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit workflow guidance: '先用 search_gateway_tools 搜,再按需 describe' (first search with search_gateway_tools, then describe as needed), which tells the user when to use this tool relative to the search tool. However, it does not explicitly exclude call_gateway_tool or mention when not to use it, so it slightly misses full when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gateway_statusB
查看网关已配置子服务的健康状态、前缀和工具数量
| Name | Required | Description | Default |
|---|---|---|---|
| server | No | ||
| profile | No | ||
| verbose | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the burden of behavioral disclosure. It indicates a read-only operation ('view') and lists the data shown, which is helpful. However, it omits any mention of permissions, rate limits, or potential side effects, leaving some ambiguity for a status tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that states the purpose directly without any redundant words. It is front-loaded with the action and target, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool appears simple and an output schema exists, the complete absence of parameter semantics and usage guidance leaves gaps. The description covers the core purpose but not the operational context needed for an agent to invoke it correctly with optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description mentions none of the three parameters (server, profile, verbose). The agent gets no explanation of their meaning or effect, so the description fails to compensate for the missing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool views the health status, prefix, and tool count of configured gateway sub-services. It uses a specific verb ('view') and identifies a distinct resource, differentiating it from sibling tools that search, describe, or call specific tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like search_gateway_tools or describe_gateway_tool. There are no exclusions or contextual hints about appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_gateway_toolsA
搜索 gateway 下真实可调用的工具。返回紧凑结果:工具名、单行描述、必填参数、少量可选参数预览。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| server | No | ||
| profile | No | ||
| force_refresh | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden. It adds behavioral context about output format (compact results, filtering to 'actually callable' tools). Yet it omits behaviors like whether force_refresh bypasses caching, how server/profile scope the search, or any auth/error conditions. It provides some value but not complete transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, action-first, and includes a specific list of return fields. Every word earns its place with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters and no annotations, the description is insufficient. It explains purpose and return format but fails to cover parameter usage and when to use this vs siblings. The output schema exists, but the input side is under-specified, making it hard to use correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It doesn't name or explain any input parameters. Only the query parameter is inferable from the tool name. server, profile, and force_refresh are completely unexplained, leaving the agent to guess their effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action '搜索' (search) and the resource 'gateway 下真实可调用的工具' (actually callable gateway tools), distinguishing it from siblings like describe_gateway_tool or call_gateway_tool. It also specifies the return scope (compact results with tool name, description, required params).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use when you need to discover callable tools under the gateway. However, it offers no explicit exclusions or alternatives, such as 'use describe_gateway_tool for details of a specific tool'. The context is clear but not fully guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v0.1.0- First observed
call_gateway_tool - First observed
describe_gateway_tool - First observed
gateway_status - First observed
search_gateway_tools
TDQS
Each tool has a clearly distinct purpose: status check, search, detailed schema lookup, and invocation. There is no overlap between them, and an agent can easily select the right tool for the task.
Three tools follow the verb_noun pattern (search_gateway_tools, describe_gateway_tool, call_gateway_tool), while gateway_status uses noun_verb order. This is a minor deviation but the overall pattern remains predictable and readable.
Four tools is well-scoped for a gateway meta-server that provides discovery, inspection, and invocation. Each tool earns its place, and the count is not excessive or thin.
The set covers the core lifecycle of interacting with underlying tools: status, search, describe, and call. A minor gap is the lack of a direct 'list all tools' operation, but search_gateway_tools effectively serves that purpose.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
471One AI endpoint to search and call 22k+ MCP servers; 50+ hosted tools work instantly, no key.
31Unified gateway exposing 150+ tools across all NexGenData MCP servers via one endpoint.
Unified gateway hosting 5 Hive Civilization MCP servers (evaluator, trade, depin, compute-grid…
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAggregates multiple Model Context Protocol servers into a single gateway to provide unified search, description, and execution of tools. It reduces context limit issues by dynamically fetching specific tool schemas only when needed rather than loading all available tools at once.1223MIT
- AlicenseNot gradedqualityAmaintenanceAggregates tools from multiple upstream MCP servers and exposes them through 4 meta-tools, enabling LLMs to discover and use hundreds of tools without loading all schemas upfront.2Apache 2.0
- AlicenseAqualityDmaintenanceAggregates tools from multiple MCP servers, acting as a proxy to provide unified access to various AI agents and tools.10153MIT
- FlicenseNot gradedqualityBmaintenanceSingle gateway that aggregates dozens of upstream MCP servers, enabling AI clients to connect once and access all tools.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/LunFengChen/Gateway-Mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server