Model Tools Protocol (MTP)
Forget MCP, bash is all you need
Details
- External ID
- 46959655
- Source
- HN
- Company
- —
- Product
- Model Tools Protocol (MTP)
- Website domain
- github.com
- Launched
- Feb. 10, 2026
- Cohort
- —
- Upvotes
- 9
- Upvotes percentile
- 0.4865229110512129
- Tags
- —
- Fetched at
- Sept. 7, 2026, 9:26 p.m.
- Updated at
- Sept. 7, 2026, 9:26 p.m.
Description
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>)
Enrichment
- Theme
- Model Context Protocol developer tools
- Vertical
- Horizontal
- Function
- Dev tools
- Audience
- Developer
- AI stance
- Not AI
- Project type
- Hobby / open-source project
- Normalized one-liner
- protocol for model tools using bash
- Manually corrected
- False
Could you build this?
Yes The protocol is a lightweight CLI and JSON specification that translates command-line schemas and bash executions into structured LLM tool-calling contexts.
Discussion
3 comments analyzed.
Competitors mentioned: GitHub MCP, Claude Code with native CLI understanding
Concerns raised: Adoption barrier - getting coding agents to use !mtpcli by default, Tool maintainer friction - requires adding --mtp-describe flag, Standards adoption difficulty, Existing LLM training on CLIs already reduces need for additional abstraction
Feature requests: Better discovery mechanism for tools without manual --mtp-describe implementation, Default agent integration across multiple coding platforms
Competitors
Other products that read as similar to this one — 243 launches clear the similarity bar, closest 8 shown.
Attention rank: #132 of 244 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).
Launched 90 days after the earliest competitor.
- CLI-use · hn · 2026-04-21 · 7 upvotes · similarity 0.55
- Murl · hn · 2026-02-21 · 5 upvotes · similarity 0.54
- mcp-recorder · hn · 2026-03-06 · 6 upvotes · similarity 0.52
- MCP-tidy · hn · 2026-01-06 · 10 upvotes · similarity 0.50
- Turn APIs into MCP servers without code · hn · 2025-12-04 · 15 upvotes · similarity 0.49
- MCPShark · hn · 2025-12-10 · 37 upvotes · similarity 0.49
- MCP Isn't Dead. You're Just Using It Wrong · hn · 2026-03-17 · 6 upvotes · similarity 0.49
- mcp-use v2 rebuilt from scratch for stateless 2026-07-28 MCP spec · hn · 2026-08-06 · 10 upvotes · similarity 0.49
Other launches for this product
- No other launches for this product.
Same idea, different domain
Nobody's really built a dev tools tool for Sales yet.