Superargs allows setting up MCP server args during runtime. Provide arguments to any MCP server during interaction with assistant instead of during initial setup. Whether it’s authentication tokens, environment variables, or other CLI arguments, Superargs makes it easy to provide it during runtime.
Supported by superinterface.ai, supermachine.ai and supercorp.ai.
Run Superargs via npx
:
npx -y superargs --stdio "npx -y @modelcontextprotocol/server-postgres {{databaseUrl}}"
--stdio
: Shell command that runs a stdio MCP server with args to be replaced during runtime in the form{{argName}}
.--update-args-tool-name
: (Optional) Custom name for the tool used to update/restart args. Defaults toupdate_args
.
Args in the --stdio
command are denoted by {{argName}}
. For example:
npx -y superargs --stdio "GITHUB_PERSONAL_ACCESS_TOKEN={{githubToken}} npx -y @modelcontextprotocol/server-github"
In this command:
{{githubToken}}
is an arg that can be set at runtime using theupdate_args
tool (or a custom tool name if specified).
-
Initial state: At the start, the MCP server will not have any args set.
-
If underlying MCP stdio server can start without args, it will try to start without them to provide tools lists and other MCP server functions. If it can work without args, the only difference will be that it will have an additional update_args tool to update args.
-
If the server requires args to start, it will not start until the args are set and it will only have the update_args tool. All other MCP server functions will either return an empty list or an error message.
-
When update_args is used: The server will restart with the new args and all MCP server functions will be available.
-
Tool to Update Args: By default, named
update_args
, allows updating args and restarting the child MCP server.
Another example with GitHub MCP server:
npx -y superargs --stdio "GITHUB_PERSONAL_ACCESS_TOKEN={{githubToken}} npx -y @modelcontextprotocol/server-github"
And with SQLite MCP server:
npx -y superargs --stdio "uv mcp-server-sqlite --db-path={{dbPath}}"
-
Run MCP Inspector with Superargs:
npx @modelcontextprotocol/inspector npx -y superargs --stdio "npx -y @modelcontextprotocol/server-postgres {{databaseUrl}}"
This command starts Superargs and connects it to MCP Inspector, enabling you to manage your PostgreSQL MCP server through the inspector interface.
-
Manage MCP Server:
With MCP Inspector, you can list tools, run prompts, access resources, or perform other MCP actions through Superargs.
Superargs acts as a middleware wrapper around your MCP server, enabling dynamic injection of args at runtime. It forwards all MCP requests (tools, prompts, resources, messages, roots, etc.) to the underlying child server and introduces an additional tool to manage these args.
- Dynamic Arg Injection: Replace placeholders in your MCP server command with actual values during runtime.
- Customizable Tool Name: Rename the arg update tool via
--update-args-tool-name
to suit your workflow. - Comprehensive MCP Support: Forwards all MCP requests to the child server, including tools, prompts, resources, messages, and roots.
- Change Notifications: Sends notifications like
sendToolListChanged
,sendPromptListChanged
, andsendResourceUpdated
when args are updated, ensuring connected clients are aware of changes.
Superargs empowers users to set up and configure MCP servers dynamically during their interactions with AI assistants. Instead of requiring administrators to pre-configure servers with necessary args and credentials, users can provide these details on-the-fly through conversation, enhancing flexibility and reducing setup overhead.
Args are passed to the child MCP server in the command specified. Nothing is stored.
If you don’t want the LLM to ever see these args, do a direct call to the MCP server through server client (so it’s not the assistant who is calling it, but your code directly).
Model Context Protocol standardizes how AI tools exchange data. If your MCP server requires dynamic args such as authentication tokens or configuration paths, Superargs allows you to provide them at runtime without altering the server's code. This enables flexible deployments, remote access, and easier debugging.
Contributions are welcome! Whether you have ideas for new features, improvements, or encounter any issues, please open an issue or submit a pull request.
Superargs is supported by Superinterface, Supermachine and Supercorp.