mcpField
M
mcp-connector

mcp-connector

github.com/starchild-ai-agentAgent 工作流3094 次安装6 天前更新
代码仓库

关于 mcp-connector

一个用于连接和操作 MCP 服务的技能,可浏览预配置注册表,也可按传输参数建立临时连接。它支持发现并调用工具、读取资源,以及在会话中管理多个连接。

主要功能

  1. 01浏览预配置 MCP 服务
  2. 02支持 stdio、SSE 和 Streamable HTTP
  3. 03发现工具与资源
  4. 04调用工具并读取资源
  5. 05连接和断开多个服务

适用场景

  1. 01按类别查找可用 MCP 服务
  2. 02连接未列入注册表的 MCP 服务
  3. 03在同一会话中调用多个服务的工具

MCP 相关

该技能本身充当 MCP 客户端,可连接本地或远程 MCP 服务,并调用其工具、读取资源。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/starchild-ai-agent/official-skills --skill mcp-connector

安装后在 Claude Code 中输入/mcp-connector确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

__init__.py
client.py
manager.py
registry.py
tools.py

详细介绍

MCP Connector

连接到任意 MCP(模型上下文协议)服务,并与其工具、资源和提示词交互。

支持的传输方式

  • stdio — 将本地 MCP 服务作为子进程启动(例如 npx @modelcontextprotocol/server-filesystem /path)
  • sse — 通过 HTTP Server-Sent Events 连接到远程 MCP 服务
  • streamable-http — 通过较新的可流式 HTTP 传输方式连接(使用 POST 并返回 SSE 响应)

使用流程

  1. 使用 mcp_browse 浏览可用服务(或按类别筛选)
  2. 从注册表按名称连接:mcp_connect(name="coingecko")
  3. 使用 mcp_list_tools 或 mcp_list_resources 发现可用工具和资源
  4. 通过 mcp_call_tool 或 mcp_read_resource 使用它们
  5. 完成后使用 mcp_disconnect 断开连接

预配置注册表

我们在 config/mcp_servers.yaml 中维护了一份精选的 MCP 服务列表。按名称连接其中任意服务即可,无需提供 URL 或传输方式详情:

mcp_connect(name="coingecko")     # Crypto market data
mcp_connect(name="exa")           # Neural web search
mcp_connect(name="dexpaprika")    # DEX data across chains

使用 mcp_browse() 查看所有可用服务,或按类别筛选:

mcp_browse(category="blockchain")
mcp_browse(category="developer")

某些服务需要环境变量(API 密钥)。工具会告知缺少哪些变量。

临时连接

你仍然可以通过提供传输方式详情,连接注册表中没有的任意 MCP 服务:

stdio(本地子进程)
mcp_connect(
    name="fs",
    transport="stdio",
    command="npx",
    args=["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]
)
SSE(HTTP Server-Sent Events)
mcp_connect(
    name="remote-tools",
    transport="sse",
    url="https://mcp.example.com/sse"
)
Streamable HTTP
mcp_connect(
    name="api-server",
    transport="streamable-http",
    url="https://mcp.example.com/mcp"
)

使用已连接的服务

调用工具
mcp_call_tool(
    server="coingecko",
    tool="get_price",
    arguments={"coin": "bitcoin"}
)
读取资源
mcp_read_resource(
    server="remote-tools",
    uri="file:///data/config.json"
)

注意事项

  • 连接会在整个会话期间保持
  • 可以同时连接多个服务
  • 服务名称必须唯一——使用相同名称重新连接会替换旧连接
  • 可以通过 env 参数向 stdio 服务传递环境变量
  • 注册表条目位于 config/mcp_servers.yaml 中——可在其中添加新服务(无需修改代码)

评论

支持 Markdown