{"slug": "mcporter-the-mcp-tax-collector-use-this-before-plugging-anything-in", "title": "mcporter: The MCP Tax Collector (Use This Before Plugging Anything In)", "summary": "Developer Nico Bailey created mcporter, a CLI tool that calls MCP servers directly from the command line without loading tool schemas into an agent's context window. The tool addresses context bloat caused by MCP servers dumping entire tool definitions into context, with Playwright MCP alone consuming 15,000 tokens. mcporter routes agent bash commands to MCP servers and returns results via stdout, preserving context for actual agent work.", "body_md": "I wrote a [whole post about why MCP is rotting your context window](https://stevengonsalvez.com/blog/death-of-mcp). The short version: every MCP server you connect dumps its entire tool schema into your context. Playwright MCP alone is 15,000 tokens of tool definitions before your agent does a single thing. Connect three or four servers and you've burned half your context on tool descriptions the agent will never use.\n\n[mcporter](https://github.com/nicobailey/mcporter) by Nico Bailey fixes this. It's a CLI that calls MCP tools directly from the command line, without loading tool schemas into your context window. Your agent runs a bash command, gets the result, moves on. No schema bloat. No context rot.\n\n```\n# Call a tool directly - no MCP client needed\nmcporter call playwright navigate --params '{\"url\": \"http://localhost:3000\"}'\n\n# List what tools a server offers\nmcporter tools @playwright/mcp\n\n# Generate TypeScript types from an MCP server\nmcporter types @playwright/mcp > playwright-tools.d.ts\n```\n\nThat's it. The agent writes a bash command, mcporter routes it to the MCP server, the result comes back as stdout. The 15,000 tokens of tool definitions never touch the context window.\n\nLook, I've written extensively about [MCP being a tax on your context](https://stevengonsalvez.com/blog/death-of-mcp). Most of the ecosystem has figured this out. Skills that wrap Python, TypeScript, bash, or CLIs have replaced a lot of what MCP was doing. The trend is clear: if you can call it from the command line, don't wire it through MCP.\n\nBut MCP isn't dead. There are still proper use cases. Tools that need bidirectional communication. Services that manage persistent state. Anything where the server needs to push updates to the client. For those, MCP is the right protocol. And for those, mcporter is how you use it without paying the context tax.\n\nI use it daily. It's probably the tool I reach for most frequently after git and my editor. Any time I need to poke an MCP server, I reach for mcporter instead of connecting the server to my agent's MCP client. The savings compound across every session.\n\n```\nnpm install -g mcporter\n```\n\nThen instead of adding MCP servers to your agent config, call them through mcporter in your scripts or skills. Your context window will thank you.", "url": "https://wpnews.pro/news/mcporter-the-mcp-tax-collector-use-this-before-plugging-anything-in", "canonical_source": "https://dev.to/stevengonsalvez/mcporter-the-mcp-tax-collector-use-this-before-plugging-anything-in-4236", "published_at": "2026-07-10 15:33:45+00:00", "updated_at": "2026-07-10 15:43:12.477538+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "large-language-models", "ai-infrastructure"], "entities": ["Nico Bailey", "mcporter", "Playwright MCP", "MCP"], "alternates": {"html": "https://wpnews.pro/news/mcporter-the-mcp-tax-collector-use-this-before-plugging-anything-in", "markdown": "https://wpnews.pro/news/mcporter-the-mcp-tax-collector-use-this-before-plugging-anything-in.md", "text": "https://wpnews.pro/news/mcporter-the-mcp-tax-collector-use-this-before-plugging-anything-in.txt", "jsonld": "https://wpnews.pro/news/mcporter-the-mcp-tax-collector-use-this-before-plugging-anything-in.jsonld"}}