Skip to main content

MCPBundles CLI: Your Tools in the Terminal

· 4 min read
MCPBundles

MCPBundles already works with Claude Desktop, ChatGPT, Cursor, and every other MCP-compatible AI. But there's a whole class of usage that doesn't fit neatly into a chat window.

You want to pipe a tool's output into jq. You want to script a nightly check across two workspaces. You want to quickly list what tools a bundle has without waiting for an AI to respond. And if you're using Cursor or Claude Code, you want your AI coding agent to be able to reach your production tools without leaving the IDE.

pip install mcpbundles

Native MCP, Not a REST Wrapper

Every command opens a live MCP session over streamable HTTP — the same protocol your AI assistants use. When you run mcpbundles tools --bundle stripe, the CLI connects, calls list_tools, renders the result, and tears down the session. No caches, no manifest files. If someone adds a tool to a bundle, you see it immediately.

Named Connections and Workspaces

Most teams have more than one workspace. The CLI handles this with named connections — each one stores its own URL, API key (encrypted on disk), and session state.

mcpbundles connect prod --url https://mcp.mcpbundles.com --default
mcpbundles connect staging --url https://mcp.mcpbundles.com
╭────────────────────────────── Connections (2) ───────────────────────────────╮
│ Name Target Auth Default │
│ prod mcp.mcpbundles.com/hub/ api-key ★ │
│ staging mcp.mcpbundles.com/hub/ api-key │
╰──────────────────────────────────────────────────────────────────────────────╯

If you only have one connection, every command uses it automatically — no --as flag needed. Once you add a second, you pick with --as staging. Progressive disclosure: don't think about connection management until you actually need it.

Discover and Call Tools

List what's available at the hub level or inside a specific bundle:

# Hub tools (bundles, search, agents, health)
mcpbundles tools

# All tools in a bundle
mcpbundles tools --bundle stripe

# Filter within a bundle
mcpbundles tools --bundle hubspot-crm --filter "contact"

# Call a hub tool
mcpbundles call get_bundles

# Call a bundle tool directly
mcpbundles call stripe-list-customers-a1b --bundle stripe

# Search across everything
mcpbundles call search_tools query="email campaign"

The --bundle flag connects directly to that bundle's MCP endpoint — no sandbox, no wrapper. You get the raw tool response, which makes it fast for scripting and quick lookups.

Code Execution

For multi-step workflows where you need to chain tools together, exec runs Python in the Hub sandbox with access to all your enabled tools:

mcpbundles exec "
tools = await list_tools('stripe')
print(f'{len(tools)} tools available')
for t in tools[:5]:
print(t['function_name'])
"

You can also point it at a file (-f script.py), pipe from stdin, or stream output line-by-line with --stream.

Cursor and Claude Code

This is where the CLI gets interesting for day-to-day development. Cursor and Claude Code can run shell commands, which means they can use the CLI to reach your entire MCPBundles tool stack without any additional MCP configuration.

An AI coding agent in Cursor can run mcpbundles call get_bundles to see what's available, mcpbundles tools --bundle posthog to discover tool names, and mcpbundles exec to run multi-tool workflows — all from inside the IDE. Your production CRM, analytics, payment processor, and every other connected service becomes accessible to the agent through the same terminal it already uses for git and npm.

No extra setup. The CLI picks up the stored connection and credentials automatically.

Interactive Shell

For exploratory sessions, the shell gives you a REPL with tab completion and live connection switching:

$ mcpbundles shell
> tools
> call health_check
> use staging
> tools --bundle resend
> exec "print(await get_bundles())"

Arguments Three Ways

# Key=value with auto-coercion
mcpbundles call tool_name key=value active=true

# Typed JSON with :=
mcpbundles call tool_name limit:=25 tags:='["a","b"]'

# Full JSON object
mcpbundles call tool_name '{"key": "value", "limit": 25}'

Get Started

pip install mcpbundles
mcpbundles connect myserver --url https://mcp.mcpbundles.com
mcpbundles tools

Full docs at mcpbundles.com/docs/how-to/cli.