Model Tools Protocol (MTP) – Forget MCP, bash is all you need
Recently I was trying to use an MCP server to pull data from a service, but hit a limitation: the MCP didn't expose the data I needed, even though the service's REST API supported it. So I wrote a quick CLI wrapper around the API. Worked great, except Claude Code had no structured way to know what my CLI does or how to call it. For `gh` or `curl` the model can learn from the extensive training data, but for a tool I just wrote, it was stabbing in the dark. MCP solves this discovery problem, but it does it by rebuilding tool interaction from scratch: server processes, JSON-RPC transport,…
What it does
In the maker’s words, at launch
Recently I was trying to use an MCP server to pull data from a service, but hit a limitation: the MCP didn't expose the data I needed, even though the service's REST API supported it. So I wrote a quick CLI wrapper around the API. Worked great, except Claude Code had no structured way to know what my CLI does or how to call it. For `gh` or `curl` the model can learn from the extensive training data, but for a tool I just wrote, it was stabbing in the dark. MCP solves this discovery problem, but it does it by rebuilding tool interaction from scratch: server processes, JSON-RPC transport, client-host handshakes. It got discovery right but threw out composability to get there. You can't pipe one MCP tool into another or run one in a cron job without a host process. Pulling a Confluence page, checking Jira for duplicates, and filing a ticket is three inference round-trips for work that should be a bash one-liner. I also seem to endlessly get asked to re-login to my MCPs, something `gh` CLI never asks me to do. I think the industry took a wrong turn here. We didn't need a new execution model for tools, we needed to add one capability to the execution model we already had. That's what Model Tools Protocol (MTP) is: a spec for making any CLI self-describing so LLMs can discover and use it. MTP does that with a single convention: your CLI responds to `--mtp-describe` with a JSON schema describing its commands, args, types, and examples. No server, no transport, no handshake. I wrote SDKs for Click (Python), Commander.js (TypeScript), Cobra (Go), and Clap (Rust) that introspect the types and help strings your framework already has, so adding `--mtp-describe` to an existing CLI is a single function call. I don't think MCP should disappear, so there's a bidirectional bridge. `mtpcli serve` exposes any `--mtp-describe` CLI as an MCP server, and `mtpcli wrap` goes the other direction, turning MCP servers into pipeable CLIs. The ~2,500 MCP servers out there become composable CLI tools you can script and run in CI without an LLM in the loop. The real payoff is composition: your custom CLI, a third-party MCP server, and jq in a single pipeline, no tokens burned. I'll post a concrete example in the comments. Try it: npm i -g @modeltoolsprotocol/mtpcli && mtpcli --mtp-describe I know it's unlikely this will take off as I can't compete with the great might of Anthropic, but I very much welcome collaborators on this. PRs are welcome on the spec, additional SDKs, or anything else. Happy building! Spec and rationale: <https://github.com/modeltoolsprotocol/modeltoolsprotocol> CLI tool: <https://github.com/modeltoolsprotocol/mtpcli> SDKs: TypeScript (<https://github.com/modeltoolsprotocol/typescript-sdk>) | Python (<https://github.com/modeltoolsprotocol/python-sdk>) | Go (<https://github.com/modeltoolsprotocol/go-sdk>) | Rust (<https://github.com/modeltoolsprotocol/rust-sdk>)
Does the same job
all alternatives →- CCCodemcp – Claude Code for Claude Pro subscribers – ditch API bills2025 · github.com · ▲172
Hi all! I normally work on the PyTorch project but I've been on baby leave for the past month, so I've been playing around with AI as a user rather than a framework implementor. I really liked the agent experience with Claude Code, but I couldn't really justify spending so many dollars on API costs for random side projects. I already pay for a Claude Pro subscription though, and it turns out you can simulate many of Claude Code's features with an MCP. If you have a Pro subscription, check this out! I think it really captures the Claude Code experience quite well, without forcing you to pay…
- MFMCPGod: Fine-grained control over MCP clients, servers, and tools2025 · github.com · ▲37
Hey everyone, I've wanted an easy way to control which mcp server tools are available to clients. So for example, I might want a gmail server to only expose the read tool (but not send, delete etc). I figured if I create a cli for spawning mcp servers, I could intercept the stdin, stdout, stderr etc and modify what the clients see when they are making calls to list tools, resources, and prompts. Well it worked! In the initial version you can easily add a server to claude with a safe list of tools: npx -y mcpgod add @modelcontextprotocol/server-everything --client claude --tools=echo,add…
- MOMcp2cli – One CLI for every API, 96-99% fewer tokens than native MCPMar 2026 · github.com · ▲146
Every MCP server injects its full tool schemas into context on every turn — 30 tools costs ~3,600 tokens/turn whether the model uses them or not. Over 25 turns with 120 tools, that's 362,000 tokens just for schemas. mcp2cli turns any MCP server or OpenAPI spec into a CLI at runtime. The LLM discovers tools on demand: mcp2cli --mcp https://mcp.example.com/sse --list # ~16 tokens/tool mcp2cli --mcp https://mcp.example.com/sse create-task --help # ~120 tokens, once mcp2cli --mcp https://mcp.example.com/sse create-task --title "Fix bug" No…
- STSimple to build MCP servers that easily connect with custom LLM calls2025 · mirascope.com · ▲57
Hi! After learning about MCP, I'm really excited about the future of provider-agnostic, re-usable tooling. Unfortunately I've found that while it's easy to implement an MCP server for use with tools that support it (such as Claude Desktop), it's not as easy to implement your own support (such as integrating an MCP server into your own LLM application). We implemented a thin MCP wrapper that easily integrates with Mirascope calls so that you can hook up an MCP server and client super easily to any supported LLM provider. Excited to see what people build with this!
- OSOpen-Source MCP Server for Context and AI Tools2025 · ▲43
Large Language Models (LLMs) are powerful, but they’re limited by fixed context windows and outdated knowledge. What if your AI could access live search, structured data extraction, OCR, and more—all through a standardized interface? We built the JigsawStack MCP Server, an open-source implementation of the Model Context Protocol (MCP) that lets any AI model call external tools effortlessly. Here’s what it unlocks: - Web Search & Scraping: Fetch live information and extract structured data from web pages. - OCR & Structured Data Extraction: Process images, receipts, invoices, and handwritten…
- AFA fast CLI and MCP server for managing Lambda cloud GPU instancesJan 2026 · github.com · ▲24
I built an unofficial CLI and MCP server for Lambda cloud GPU instances. The main idea: your AI agents can now spin up and manage Lambda GPUs for you. The MCP server exposes tools to find, launch, and terminate instances. Add it to Claude Code, Cursor, or any agent with one command and you can say things like "launch an H100, ssh in, and run big_job.py" Other features: - Notifications via Slack, Discord, or Telegram when instances are SSH-ready - 1Password support for API keys - Also includes a standalone CLI with the same functionality Written in Rust. MIT licensed. Note: This is an…
More dev tools this month
the category →



Open-source GTM skills for technical founders
Dev tools · 29d ago · gtmcofounder.com

OpenTrailPaper is open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO. It supports offline maps, GPX routes, FIT recording and Bluetooth sensors.
Dev tools · 2d ago · opentrailpaper.com
