mcporter-bridge
Allows reading and inspecting Figma design files through the Figma MCP server.
Enables management of GitHub repositories, including file operations, issues, PRs, and code search.
Provides tools to read and write Notion pages.
Facilitates processing and conversion of WeChat articles.
Enables searching and publishing notes on Xiaohongshu (Little Red Book).
Click on "Deploy 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., "@mcporter-bridgelist all available MCP servers"
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.
mcporter-bridge
Expose your local MCPorter registry as one stable MCP server for coding clients.
mcporter-bridge is a small FastMCP server that turns your existing mcporter setup into a single, reusable entry point for clients like Codex, Claude Code, Cline, and Cursor.
Why
If you use multiple coding clients, your MCP setup usually fragments fast:
Codex has one config format
Claude Code has another
Cline and Cursor add their own
mcporteralready knows your real server registry, auth state, and runtime
mcporter-bridge keeps mcporter as the source of truth and gives clients one stable MCP server instead of another pile of duplicated configs.
Related MCP server: Agent Aggregator
What It Does
Reads your local
mcporterregistry at runtimeLists configured MCP servers and their health
Inspects a specific server and its tool schemas
Calls any tool on any configured server through
mcporterLazy loading: Activate/deactivate heavy MCPs on demand to save context
Optionally exposes local
agent-reachdiagnostics as helper tools
This is not a transport proxy and not an enterprise gateway. It is a local-first bridge for client integration.
Tools
Core Tools
Tool | Description |
| 【MCP 全景】列出所有已加载(active)和可激活(available)的 MCP 服务器,包含类型区分(small/heavy) |
| 探索 MCP 服务器的工具列表和参数格式,支持 |
| 调用指定 MCP 的某个工具 |
Lazy Loading Tools (按需加载)
Tool | Description |
| 激活一个大型 MCP(如 chrome-devtools, playwright) |
| 停用大型 MCP 释放上下文 |
Utility Tools
Tool | Description |
| 检查 mcporter 状态(config doctor / version) |
All tools return structured output with:
oktimed_outcommandtimeout_msreturncodestdoutstderrparsed_json
Install
pip
pip install mcporter-bridgepipx
pipx install mcporter-bridgeAfter installation, you get two commands:
mcporter-bridgeto run the MCP servermcporter-bridge-configto generate or install client snippets
local development
git clone https://github.com/Citrus086/mcporter-bridge.git
cd mcporter-bridge
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"Requirements
mcporterinstalled and available onPATHat least one configured MCP server in your local
mcporterregistry
Optional:
Quick Check
mcporter-bridgeIn another shell:
mcporter list --stdio "python3 -m mcporter_bridge" --jsonClient Setup
Ready-made templates live in examples/.
Codex
Add this to ~/.codex/config.toml:
[mcp_servers.mcporter-bridge]
type = "stdio"
command = "python3"
args = ["-m", "mcporter_bridge"]
startup_timeout_ms = 30000Or install it automatically:
mcporter-bridge-config install --client codexNotes:
OpenAI’s docs confirm that Codex reads MCP config from
~/.codex/config.tomlusing themcp_servers.<name>structure for MCP servers.The stdio form here is also verified locally with
codex mcp add --help, which acceptscodex mcp add <name> -- <command...>for stdio servers.
Claude Code / Claude Desktop
Add this to your MCP config:
{
"mcpServers": {
"mcporter-bridge": {
"command": "python3",
"args": ["-m", "mcporter_bridge"]
}
}
}Automatic install using the default ~/.claude.json path:
mcporter-bridge-config install --client claudeNotes:
Anthropic’s Claude Code docs confirm that user-scoped MCP servers live in
~/.claude.json.The same docs show project-scoped servers stored in
.mcp.jsonat the project root.The documented JSON shape uses
mcpServerswithcommand,args, andenvfor stdio servers.
Cline
Use the same stdio shape:
{
"mcpServers": {
"mcporter-bridge": {
"command": "python3",
"args": ["-m", "mcporter_bridge"]
}
}
}Generate snippets:
mcporter-bridge-config snippet --client clineWrite to an explicit config path:
mcporter-bridge-config install --client cline --config-path /path/to/mcp.jsonNotes:
Cline’s docs confirm that MCP settings are stored in
cline_mcp_settings.json.For local stdio servers, the documented JSON shape uses
mcpServerswithcommand,args,env,alwaysAllow, anddisabled.Cline’s docs use
typefor remote transport config such asstreamableHttp, but not in the local stdio example, so the bridge does not emittypefor Cline.
Cursor
Cursor uses mcp.json with mcpServers, and for stdio servers the bridge emits type: "stdio" explicitly.
Global config example:
{
"mcpServers": {
"mcporter-bridge": {
"type": "stdio",
"command": "python3",
"args": ["-m", "mcporter_bridge"]
}
}
}Install into the default global path:
mcporter-bridge-config install --client cursorOr write to an explicit config path:
mcporter-bridge-config install --client cursor --config-path /path/to/mcp.jsonConfig Helper
Print a snippet:
mcporter-bridge-config snippet --client codexCustomize the launcher:
mcporter-bridge-config snippet \
--client claude \
--python-command /opt/homebrew/bin/python3.13 \
--module-name mcporter_bridgeInstall directly into a config file:
mcporter-bridge-config install --client codex
mcporter-bridge-config install --client claudeWhen an existing config file is updated, the helper writes a sibling backup with a .bak suffix first.
Example Prompts
"列出所有可用的 MCP 服务器"
"查看 xiaohongshu 服务器的工具"
"调用 xiaohongshu 的 check_login_status"
"激活 playwright 浏览器工具"
"查看 xiaohongshu 的原始工具定义(raw=true)"
Lazy Loading (按需加载)
大型 MCP 如 chrome-devtools (29 tools) 或 playwright (22 tools) 会消耗大量上下文。默认保持未加载状态,需要时再激活。
MCP 类型
small - 小型 MCP,通常已加载,可直接使用
heavy - 大型 MCP,默认未加载,需先激活
Setup
创建 heavy MCP 目录:
mkdir -p ~/.mcporter/heavy/available将大型 MCP 从
mcporter.json移到单独文件:
# 示例:将 playwright 移到 heavy
echo '{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"],
"description": "浏览器自动化",
"tags": ["浏览器"]
}
}
}' > ~/.mcporter/heavy/available/playwright.json从主
mcporter.json中移除该 MCP。
Workflow
1. mcporter_list_servers()
↓ 返回 active(已加载)和 available(可激活)两个列表
↓ 需要的 MCP 在 available 中?
2. mcporter_activate_mcp(name="playwright")
↓
3. mcporter_list_servers() # 确认已出现在 active 列表
↓
4. 使用 playwright 工具...
↓
5. mcporter_deactivate_mcp(name="playwright") # 用完即释放这让上游 LLM 能够自我管理上下文,按需加载/卸载大型 MCP。
Server Descriptions (服务器描述)
mcporter-bridge 会为每个 MCP 服务器提供功能描述,帮助 LLM 了解每个服务是干什么的。
描述来源(优先级从高到低)
用户配置 - 在
~/.mcporter/mcporter.json中添加内置映射 - 常见 MCP 的预设描述
名字推断 - 从服务器名称猜测功能
在 mcporter.json 中配置描述
{
"mcpServers": {
"my-custom-mcp": {
"command": "...",
"args": [...],
"description": "自定义 MCP 的功能描述",
"tags": ["标签1", "标签2"],
"best_for": "最适合的使用场景"
}
}
}内置描述的常见 MCP
服务器名 | 描述 | 用途 |
exa | AI 搜索引擎 | 搜索网页内容、代码、新闻 |
xiaohongshu | 小红书操作 | 搜索/发布小红书笔记 |
douyin | 抖音操作 | 解析抖音视频、下载无水印视频 |
web-search-prime | 智谱网页搜索 | 搜索中文网页内容 |
web-reader | 网页阅读器 | 读取并解析网页内容 |
context7 | 技术文档查询 | 查询编程库的官方文档 |
zread | GitHub 仓库阅读 | 搜索/阅读 GitHub 仓库内容 |
zai-mcp-server | Z.AI 多模态工具 | 图像分析、视频分析、OCR |
notion | Notion 笔记操作 | 读写 Notion 页面 |
figma | Figma 设计工具 | 读取 Figma 设计稿 |
github | GitHub 官方 MCP | 创建/更新文件、管理 Issues/PRs、搜索代码 |
linkedin-scraper | LinkedIn 数据抓取 | 获取个人/公司资料、搜索职位和人才 |
wechat-article | 微信文章处理 | 转换微信文章格式 |
名字推断规则
如果服务器不在内置列表中,会从名称推断:
包含
search→ 搜索相关包含
browser/chrome→ 浏览器相关包含
github/git→ 代码仓库相关包含
xiaohongshu→ 小红书相关...
Environment Variables
MCPORTER_BRIDGE_MCPORTER_BIN: override themcporterbinary pathMCPORTER_BRIDGE_MAX_OUTPUT_CHARS: cap captured stdout/stderr length
Troubleshooting / 一个跨三层的隐蔽 bug
如果你在 macOS + Anaconda Python 环境下遇到 ModuleNotFoundError: No module named mcporter_bridge,或者 Claude 一直报 Failed to reconnect,问题可能来自一个跨三层的隐蔽 bug:
pip 写入 .pth 文件
↓
macOS 自动给该文件打上 UF_HIDDEN flag(因为父目录 .venv 被标记为隐藏)
↓
Anaconda Python 的 site.py 读取 .pth 时,检测到 UF_HIDDEN 就直接跳过
↓
Editable install 失效,import mcporter_bridge 失败这会导致 python3 -m mcporter_bridge 直接起不来进程,Claude 等 MCP 客户端自然无法重连。
我们已经做的修复
__main__.py里加了 bootstrap fallback:如果模块加载失败,会自动探测src/目录并注入sys.path。mcporter-bridge-config在生成客户端配置时,自动检测 editable install 并写入PYTHONPATH,同时写入FASTMCP_SHOW_SERVER_BANNER=false保证 stdio 干净。show_banner=False:确保 FastMCP 的启动 banner 不会污染 stdio 的 JSON-RPC 输出。
临时 workaround
如果你不想重新安装,可以手动去掉 hidden flag:
chflags nohidden /path/to/your/.venv/lib/python3.12/site-packages/_mcporter_bridge.pth或者直接给 Claude/Codex 等客户端的 env 加上:
"env": {
"PYTHONPATH": "/absolute/path/to/mcporter-bridge/src",
"FASTMCP_SHOW_SERVER_BANNER": "false"
}这个 bug 的诡异之处在于:pip、macOS、Python 三层单独看都没错,但串在一起就把 editable install 干掉了。更让人意外的是,我们项目的 build backend
hatchling目前并不支持 symlink editable mode,所以即使想绕过.pth文件也做不到——它只能生成.pth文件。目前 Python 和 macOS 官方 issue tracker 里似乎还没有人专门报告这一现象。
Roadmap
higher-level convenience tools for common MCPs
optional tool allowlists / denylists
more client-specific path discovery
richer auth and diagnostics helpers
License
MIT
Available Tools
6 toolsmcporter_activate_mcpA
激活一个大型 MCP。激活后需重新调用 mcporter_list_servers 确认。
参数:name - 从 mcporter_list_servers().available 中获取的名称
示例:mcporter_activate_mcp(name="playwright")
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| timeout_ms | 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, the description carries the full burden. It states 'activate' (a mutation) and mentions a confirmation step, but it does not disclose side effects, reversibility, permissions, or what the activation actually changes. This is minimal behavioral disclosure.
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 brief and front-loaded: purpose, a post-requisite, parameter explanation, and an example—all in three concise sentences with no filler. Every sentence earns its place.
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 simple and there is an output schema (so return values need not be described). The description covers purpose and the name parameter, but leaves timeout_ms unexplained and lacks details on activation behavior. It is adequate but has clear 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?
Schema coverage is 0%. The description explains that 'name' is taken from mcporter_list_servers().available, which adds meaning. However, the timeout_ms parameter is not addressed at all, leaving one of two parameters undocumented. Partial compensation only.
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: '激活一个大型 MCP' (activate an MCP), which is a specific verb+resource. It distinguishes from siblings like mcporter_deactivate_mcp and mcporter_list_servers. The example also reinforces the intended use.
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 clear usage context: the name parameter must be obtained from mcporter_list_servers().available, and after activation, one should re-call mcporter_list_servers to confirm. It does not explicitly exclude alternatives, but the post-activation step gives actionable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcporter_call_toolB
调用指定服务器的工具。
参数:
server_name: 服务器名(如 xiaohongshu、douyin)
tool_name: 工具名(如 search_feeds)
arguments: JSON 对象,不是字符串
示例:mcporter_call_tool(server_name="xiaohongshu", tool_name="search_feeds", arguments={"keyword": "GLM"})
⚠️ 先用 mcporter_help 查询参数格式
| Name | Required | Description | Default |
|---|---|---|---|
| arguments | No | ||
| tool_name | Yes | ||
| timeout_ms | No | ||
| server_name | Yes | ||
| output_format | No | json |
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 full responsibility for behavioral disclosure. It clarifies that arguments must be a JSON object and directs to help, but does not disclose side effects, permissions, error behavior, or whether the call is read-only or mutating.
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 concise, with a compact parameter list, an example, and a critical warning. Every sentence adds value and there is no redundant information.
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?
Given the generic nature of a remote tool-call function, the description provides the essential information: server and tool names, arguments formatting, and a pointer to details via mcporter_help. The output schema exists for return values, so lack of return details is acceptable. It does not mention timeout or output format, but these are covered by schema defaults.
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 adds meaning for server_name, tool_name, and arguments, including an example and the JSON-object requirement. However, it omits timeout_ms and output_format, which are only documented via schema defaults.
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 calls a tool on a specified server, using a specific verb and resource. It is distinct from sibling tools like listing servers or managing activation, but does not explicitly differentiate itself by naming an alternative.
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 gives a clear prerequisite: use mcporter_help to query parameter format. It also provides an example, but lacks explicit when-not-to-use instructions or mention of alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcporter_deactivate_mcpC
停用大型 MCP 释放上下文。
参数:name - 要停用的 MCP 名称
示例:mcporter_deactivate_mcp(name="playwright")
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| timeout_ms | 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, the description carries the full burden of behavioral disclosure. It only mentions 'frees context' as a high-level effect, but does not explain side effects such as impact on active sessions, permissions required, or the role of the timeout_ms parameter. This is insufficient for a mutation-like 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 short and front-loaded with the primary purpose, includes a parameter explanation, and provides a concrete example. It earns high marks for brevity, though it could be slightly more structured by separating the effect from parameter details.
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 an output schema, return values need not be described. However, the description lacks key context such as the timeout parameter's function, prerequisites, or consequences of deactivation. The inclusion of sibling tools suggests a management workflow, but this description does not fully position the tool within that workflow.
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 and gives an example, but it completely omits the 'timeout_ms' parameter, leaving its purpose and behavior undocumented. This is 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 action ('deactivate MCP') and the resource, and it distinguishes from sibling tools like activate_mcp by the verb 'deactivate'. However, it adds the qualifier 'large' which is somewhat ambiguous but does not obscure the core purpose.
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 ('to free context') and provides an example, but it does not explicitly state when to use this tool versus alternatives like activate_mcp or list_servers. No exclusion criteria or alternative references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcporter_helpA
探索 MCP 服务器的工具和参数。
渐进式查询(推荐):
无参数:返回使用指南
server="xxx":返回该服务器的工具列表(名称+描述)
server="xxx", tool="yyy":返回参数格式(类型/必填/默认值)
完整技术定义(需要原始 JSON):
server="xxx", raw=true:返回完整工具定义和健康状态
示例: mcporter_help(server="xiaohongshu") # 看工具有哪些 mcporter_help(server="xiaohongshu", tool="search_feeds") # 看参数格式 mcporter_help(server="xiaohongshu", raw=true) # 看原始定义
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | ||
| tool | No | ||
| server | No | ||
| timeout_ms | 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 present, so the description carries the full burden. It discloses what each parameter combination returns (usage guide, tool list, parameter format, raw definitions with health status), giving a good sense of the tool's read-only, exploratory nature. It does not mention error handling or timeouts, but the core behavior is well covered.
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 well structured with bullet points and a clear progression from simple to advanced usage, and every section adds value. It is somewhat longer than a minimal description, but the examples and mode breakdown justify the length. No filler or redundant content is present.
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?
Given the tool's multiple query modes and the presence of an output schema, the description is largely complete: it covers all main invocation patterns and provides illustrative examples. It does not mention timeout_ms or potential error scenarios, but overall an agent can confidently decide when and how to invoke this tool.
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 has 0% description coverage, so the description must compensate. It explains the server, tool, and raw parameters with examples, but it completely omits the timeout_ms parameter, leaving that parameter's purpose and impact undocumented. This is a notable gap for a tool that may need to handle large MCP definitions.
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 states clearly that the tool explores MCP server tools and parameters, and it distinguishes itself from siblings by describing specific output modes (usage guide vs. tool list vs. parameter format vs. raw JSON). This is a specific verb+resource with clear differentiation from mcporter_list_servers and mcporter_call_tool.
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 provides explicit progressive query patterns (no args, server, server+tool, raw=true) and gives concrete examples, such as mcporter_help(server="xiaohongshu"). This tells the agent exactly when to use each level of detail and implies when not to use it (e.g., when only a server list is needed, use mcporter_list_servers).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcporter_list_serversA
【MCP 全景】列出所有已加载和可激活的 MCP 服务器。
返回分区:
active: 当前已加载的 MCP(可直接调用)
available: 未加载但可激活的大型 MCP
工具分类概览:
搜索类:智谱网页搜索、Exa AI 搜索
社交类:小红书、抖音平台操作
开发类:GitHub 仓库阅读(zread)、技术文档查询(context7)
职场类:LinkedIn 招聘求职
多模态:图像分析、视频分析、OCR
协作类:Notion、Figma 读写
网页阅读:解析网页内容
注:实际可用 MCP 以调用结果为准,本列表仅为示例
⚠️ 大型 MCP 占用大量上下文,请遵循:按需激活 → 用完即释放
使用流程:
调用本工具查看 active.servers 找需要的 MCP
大型 MCP 需先 mcporter_activate_mcp(name="xxx") 激活
用 mcporter_call_tool 调用具体工具
用完立即 mcporter_deactivate_mcp(name="xxx") 释放上下文
| Name | Required | Description | Default |
|---|---|---|---|
| timeout_ms | No | ||
| include_available | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite having no annotations, the description discloses that the list is only an example, warns about large MCPs consuming context, and explains the active vs available distinction. This goes well beyond the schema and covers behavioral traits that an agent needs.
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 long but very well-structured with headers and bullet points. Every section (purpose, partitions, categories, usage flow) adds value, and the main purpose is front-loaded in the first sentence.
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 list operation, and the description explains the return partitions, provides usage workflow with sibling tools, and includes contextual caveats. Given that an output schema exists, no return format explanation is necessary, so the description is complete.
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 description does not mention the two parameters (timeout_ms, include_available) at all, and the input schema provides no descriptions (0% coverage). The param names are only weakly self-explanatory, so the description fails to compensate for the low schema coverage.
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 '列出所有已加载和可激活的 MCP 服务器' (list all loaded and activatable MCP servers), which is a specific verb+resource. It distinguishes itself from sibling tools like mcporter_activate_mcp and mcporter_call_tool by focusing on listing.
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 provides an explicit usage flow: call this to view active.servers, activate large MCPs first, use mcporter_call_tool, then deactivate. This tells the agent exactly when to use this tool vs the alternatives, plus context warnings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcporter_statusA
检查 mcporter 状态和配置。
action 参数:
"doctor":验证配置文件(默认)
"version":显示 mcporter 版本
示例: mcporter_status() # 验证配置 mcporter_status(action="version") # 查看版本
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | doctor | |
| timeout_ms | 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 of behavioral disclosure. It explains what each action does but does not state whether the tool makes any changes, requires specific permissions, or has side effects. The name and actions imply read-only status checks, but this is not explicitly asserted.
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 concise and well-structured: a one-sentence purpose, a clear action list, and two usage examples. Every sentence adds value without redundancy, and the front-loaded summary ensures quick comprehension.
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 simple status tool with two parameters and an output schema, the description covers the primary behavior and the main action parameter adequately. The missing timeout_ms explanation is a minor gap, but overall the agent has enough context to use the tool correctly, especially since the output schema likely covers return values.
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 input schema provides no descriptions (0% coverage), so the description must compensate. It thoroughly explains the 'action' parameter's two enum values and the default, but completely omits any explanation of the 'timeout_ms' parameter, leaving its purpose and usage undocumented.
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?
Description clearly states 'check mcporter status and configuration' with a specific verb and resource. It further enumerates two distinct actions (doctor and version) with examples, making its purpose unambiguous and differentiating it from sibling tools like list_servers or call_tool.
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 clear context for when to use the tool: to verify the configuration file (doctor, default) or show the version. It doesn't explicitly name alternatives, but the action list and examples imply the appropriate scenarios. The absence of exclusions is acceptable for a status-checking tool.
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.
6 tool updates
v0.1.0- First observed
mcporter_activate_mcp - First observed
mcporter_call_tool - First observed
mcporter_deactivate_mcp - First observed
mcporter_help - First observed
mcporter_list_servers - First observed
mcporter_status
TDQS
Scored across 6 tools
Each tool maps to a distinct phase of the MCP lifecycle: listing, exploring, calling, status checking, and activation/deactivation. There is no functional overlap between them, making selection unambiguous.
All tools share the mcporter_ prefix and most follow a verb_noun pattern (list_servers, call_tool, activate_mcp, deactivate_mcp). However, 'help' and 'status' are single verbs/nouns that deviate slightly from the pattern.
Six tools is an ideal number for a bridge server, covering the full management lifecycle without unnecessary bloat. Each tool has a clear and necessary role.
The tool set provides a complete workflow: discover available MCPs, activate large ones on demand, inspect tool schemas, call tools, and deactivate to free context. Status diagnostics round out the surface, so no critical operations are missing.
Maintenance
Related MCP Connectors
Host your MCP tool over streamable HTTP in one command.
Create hosted MCP servers from any OpenAPI spec. Requires a free Kaiva Bridge account.
The MCP server that finds MCP servers. Aggregates Official Registry, Glama, and Smithery.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceExposes internal tools from agent harnesses (Claude Code, Codex, etc.) as a standard MCP server by intercepting LLM API calls.1MIT
- AlicenseAqualityDmaintenanceAggregates tools from multiple MCP servers, acting as a proxy to provide unified access to various AI agents and tools.104 npm3MIT
- AlicenseAqualityBmaintenanceAggregates multiple MCP servers into a single interface, reducing token overhead and simplifying tool management for LLMs.6197 npm18Apache 2.0
- FlicenseNot gradedqualityCmaintenanceAggregates multiple MCP servers into a single standard MCP interface for agents like Claude Code, with automatic tool prefixing and hot-reload.2-