运行时参数注入工具

Superargs 是一个允许在运行时为 MCP 服务器提供参数的中间件工具,支持动态注入认证令牌、环境变量等 CLI 参数,适用于需要灵活配置的 AI 工具交互场景。

  • by supercorp-ai
  • JavaScript
  • 本地部署
  • 74 星标
  • 更新于
在 GitHub 查看 supercorp-ai/superargs

使用说明

Superargs 允许在运行时设置MCP服务器参数。 为任何人提供论据 MCP服务器 在与助手交互期间,而不是在初始设置期间。 无论是身份验证令牌、环境变量还是其他CLI参数,Superargs都可以在运行时轻松提供。

由支持 superperface.ai, 超级机器.ai 和 超级公司.ai.

安装与使用

通过运行Superargs npx:

npx -y superargs --stdio "npx -y @modelcontextprotocol/server-postgres {{databaseUrl}}"
  • --stdio:Shell命令,用于运行stdio MCP服务器,其args在运行时以以下形式替换 {{argName}}.
  • --update-args-tool-name:(可选)用于更新/重新启动参数的工具的自定义名称。默认为 update_args.

参数

Args在 --stdio 命令表示为 {{argName}}例如:

npx -y superargs --stdio "GITHUB_PERSONAL_ACCESS_TOKEN={{githubToken}} npx -y @modelcontextprotocol/server-github"

在此命令中:

  • {{githubToken}} 是一个参数,可以在运行时使用 update_args 工具(或自定义工具名称,如果指定)。

一旦开始

  • 初始状态:开始时,MCP服务器将不会设置任何参数。

  • 如果底层MCP stdio服务器可以在没有args的情况下启动,它将尝试在没有args时启动,以提供工具列表和其他MCP服务器功能。 如果它可以在没有args的情况下工作,唯一的区别就是它将有一个额外的 update_args 更新args的工具。

  • 如果服务器需要args启动,则在设置args之前它不会启动,并且它只会有 update_args 工具。 所有其他MCP服务器函数将返回空列表或错误消息。

  • 当使用update_args时:服务器将使用新的args重新启动,所有MCP服务器功能都将可用。

  • 更新参数的工具:默认情况下,命名为 update_args,允许更新参数并重新启动子MCP服务器。

例子

GitHub MCP服务器的另一个例子:

npx -y superargs --stdio "GITHUB_PERSONAL_ACCESS_TOKEN={{githubToken}} npx -y @modelcontextprotocol/server-github"

对于SQLite MCP服务器:

npx -y superargs --stdio "uv mcp-server-sqlite --db-path={{dbPath}}"

MCP检查器示例

  1. 使用Superargs运行MCP检查器:

    npx @modelcontextprotocol/inspector npx -y superargs --stdio "npx -y @modelcontextprotocol/server-postgres {{databaseUrl}}"
    

    此命令启动Superargs并将其连接到MCP Inspector,使您能够通过Inspector界面管理PostgreSQL MCP服务器。

  2. 管理MCP服务器:

    使用MCP检查器,您可以通过Superargs列出工具、运行提示、访问资源或执行其他MCP操作。

运作原理

Superargs 充当MCP服务器周围的中间件包装器,允许在运行时动态注入args。它将所有MCP请求(工具、提示、资源、消息、根等)转发到底层子服务器,并引入了一个额外的工具来管理这些参数。

主要特点

  • 动态精氨酸注射液:在运行时将MCP服务器命令中的占位符替换为实际值。
  • 可自定义工具名称:通过重命名arg更新工具 --update-args-tool-name 以适应您的工作流程。
  • 全面的MCP支持:将所有MCP请求转发到子服务器,包括工具、提示、资源、消息和根。
  • 更改通知:发送通知,如 sendToolListChanged, sendPromptListChanged,以及 sendResourceUpdated 更新args时,确保连接的客户端知道更改。

主要用例

Superargs 允许用户在与AI助手交互期间动态设置和配置MCP服务器。 用户可以通过对话即时提供这些详细信息,而不是要求管理员为服务器预先配置必要的参数和凭据,从而增强灵活性并减少设置开销。

安全地提供敏感参数

在指定的命令中将参数传递给子MCP服务器。没有存储任何内容。

如果您不希望LLM看到这些参数,请通过服务器客户端直接调用MCP服务器(因此调用它的不是助手,而是您的代码)。

为什么选择MCP?

模型上下文协议 规范人工智能工具交换数据的方式。如果您的MCP服务器需要动态参数,如身份验证令牌或配置路径, Superargs 允许您在运行时提供它们,而无需更改服务器的代码。这实现了灵活的部署、远程访问和更容易的调试。

贡献

欢迎投稿!无论您对新功能、改进有什么想法,还是遇到任何问题,请打开 问题 或提交 拉取请求.

许可证

MIT许可证


Superargs 由支持 超级接口, 超级机器 和 超级公司.