【技术文档摘要】:

Superargs 允许在运行时设置MCP服务器参数。 在与助手交互时提供参数,而不是在初始设置时提供。 无论是认证令牌、环境变量还是其他CLI参数,Superargs都使得在运行时提供这些参数变得容易。
由 superinterface.ai、supermachine.ai 和 supercorp.ai 支持。
通过 npx 运行 Superargs:
npx -y superargs --stdio "npx -y @modelcontextprotocol/server-postgres {{databaseUrl}}"
--stdio: 运行一个带有参数的 stdio MCP 服务器的 shell 命令,这些参数将在运行时被替换为 {{argName}} 的形式。--update-args-tool-name: (可选)用于更新/重启参数的工具的自定义名称。默认为 update_args。在 --stdio 命令中的参数以 {{argName}} 表示。例如:
npx -y superargs --stdio "GITHUB_PERSONAL_ACCESS_TOKEN={{githubToken}} npx -y @modelcontextprotocol/server-github"
在这个命令中:
{{githubToken}} 是一个可以在运行时使用 update_args 工具(或指定的自定义工具名称)设置的参数。初始状态:启动时,MCP 服务器不会有任何参数设置。
如果底层 MCP stdio 服务器可以在没有参数的情况下启动,它会尝试在没有参数的情况下启动,以提供工具列表和其他 MCP 服务器功能。 如果它可以无参数工作,唯一的区别是它将有一个额外的 update_args 工具来更新参数。
如果服务器需要参数才能启动,它将不会启动,直到设置了参数,并且它将只有 update_args 工具。 所有其他 MCP 服务器功能要么返回空列表,要么返回错误消息。
当使用 update_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}}"
使用 Superargs 运行 MCP Inspector:
npx @modelcontextprotocol/inspector npx -y superargs --stdio "npx -y @modelcontextprotocol/server-postgres {{databaseUrl}}"
此命令启动 Superargs 并将其连接到 MCP Inspector,使您能够通过检查器界面管理您的 PostgreSQL MCP 服务器。
管理 MCP 服务器:
使用 MCP Inspector,您可以列出工具、运行提示、访问资源或执行其他 MCP 操作,通过 Superargs。
Superargs 作为 MCP 服务器的中间件包装器,允许在运行时动态注入参数。它将所有 MCP 请求(工具、提示、资源、消息、根等)转发给底层子服务器,并引入了一个额外的工具来管理这些参数。
--update-args-tool-name 将参数更新工具重命名,以适应您的工作流程。sendToolListChanged、sendPromptListChanged 和 sendResourceUpdated 的通知,确保连接的客户端了解更改。Superargs 赋予用户在与AI助手互动时动态设置和配置MCP服务器的能力。 不再需要管理员预先配置服务器所需的参数和凭据,用户可以通过对话实时提供这些细节,增强灵活性并减少设置开销。
参数通过指定的命令传递给子 MCP 服务器。没有任何内容被存储。
如果您不希望LLM看到这些参数,请通过服务器客户端进行直接调用(因此不是助手在调用,而是您的代码直接调用)。
模型上下文协议 标准化了AI工具之间的数据交换方式。如果您的MCP服务器需要动态参数,如认证令牌或配置路径,Superargs 允许您在运行时提供这些参数而不需修改服务器代码。这使得灵活部署、远程访问和更容易调试成为可能。
欢迎贡献!如果您有新的功能想法、改进意见或遇到任何问题,请打开一个 问题 或提交一个 拉取请求。
Superargs 由 Superinterface、Supermachine 和 Supercorp 支持。