Join the discussion
Write your take first — we'll ask for email only when you're ready to publish.
- Hacker News
- MCP is for when your end user (the one driving an LLM Agent) is non technical. Most non technical people are not going to install a CLI on their computer. Most are not going to be driving the LLM agent via a terminal.
It also very helpful when you need auth. MCP OAuth with CIMD makes it easy instead of cumbersome process of generating API Keys.
If you are technical and already using CLIs, then MCP doesn't give you much.
by cgarvis - Even with a cli it doesn’t have a nice list of all commands and a nice description of when to call such a toolby edgyquant
- I hooked up claude code to Jira and Figma. This is more a condemnation of Jira than anything, but being able to interact with it in natural language in the terminal is a huge relief. Sadly, it's still limited in some ways. If it's available, it makes things a tiny bit easier than interfacing directly via api, so it's a nice to have.by earthdeity
- > "it makes things a tiny bit easier than interfacing directly via api"
By what metric? I would expect that a thin API client (with readable code) is generally going to out-perform a tool-surface which you don't have the ability to manage/edit.
by agentdev001 - I did this as well. I found that it was really inefficient because if I was doing anything with a significant amount of text, it has to shuttle all of that through the model to the MCP invocation. It was way better to work with temporary files and pipe them around CLI tools once you’re happy with the contents. E.g. developing a user story and creating the Jira issue.by jadar
- I recently started using it as a way to make my own custom software available to regular ChatGPT and Claude, both of which support MCP if you dig around deep enough. Here's my TIL: https://til.simonwillison.net/llms/mcp-in-claude-and-chatgptby simonw
- me three (at this point)
I've developed and deployed my own self hosted (on cloudflare / workerd) tool here https://github.com/TAJD/projektor and the key part was to be able to add it as a custom mcp server
by tajd - Same here. I was inspired by your post https://simonwillison.net/2026/Jul/31/stateless-mcp/
I reversed engineered my supermarket API and made a custom MCP to automate my grocery shopping. Now I can fill my cart through ChatGPT.
More details about it on https://ducret.dev/grocery-shopping-with-ai/
by tducret - MCP's are great for adoption of your service outside of developer circles. Non Technical users can click a link, trigger an OAuth flow and authenticate. You can't do that with API. API still is better for developers using a AI via a CLI but MCP is easier adoption for web or desktop based clients.by hkchad
- yes, this is the proper use case.
We hooked up fly.io's sprites mcp to our company claude and now all employees can spin up dev envs and actually prototype, verify or reproduce something before coming to engineering; doing it directly from web or wherever and it's properly authed and sandboxed through their accounts
by janee - This (points up)!
I've read many comments about how good CLIs are, and they are right. But for developers.
For non-tech people, installing the CLI is a hurdle: it involves having the right dependencies installed, controlling how you handle secrets (like API keys), and handling updates (ie. npx with a private registry). But for internal tools, once you create an MCP with OAuth, the installation (in Claude) is straightforward.
I'm surprised how non-tech people in the company use it for ad-hoc integrations, like pulling emails, getting deals from HubSpot, enriching that with the internal MCP, then drafting responses. Of course, this has scaling issues, and at some point it is better to move these everyday automations to a proper system, but I saw how MCP enables what products like Zapier, n8n, or IFTTT try to do: user-friendly ad-hoc integrations.
My only complaint: implementing MCP auth in an MCP server still isn't very streamlined. Some libraries, like Cloudflare MCP, simplify all of that, but AFAIK it's tied to using their services.
by diegof79 - I built an MCP server for my voice assistant. By default, Home Assistant offers a few tools to the models, but I felt like it was missing some, so I built it.
It has tools to get real jokes, do math, unit conversion, get stock information, search the web with Kagi, and other things I consider to be essential in a voice assistant. It even got approved by my wife.
At work I use our MCP server to debug and troubleshoot issues with our code too. Just yesterday I used it to figure out why a tag wasn’t showing up in traces; using the MCP server, the LLM was able to see that the tag was present in parent traces, but was lost along the way, and figured out why.
Could I find that without the MCP server? Yes, but I’d take me hours of going through lengthy traces, while the MCP and LLM found the issue in minutes.
- > Home Assistant
I've been using https://github.com/homeassistant-ai/ha-mcp for my Home Assistant instance and it has been awesome.
"What amps and charging schedule should I set my EV to charge at, so that at peak electricity rate time my house battery is at 90%." Looks at my house battery, car battery, current weather forecast, and house solar production, all of which are integrated into my Home Assistant. Looks at my gmail calendar. "16 amps, 9:30am-3:30pm, higher than usual because you're driving to lunch from 11am-12pm" (shows math). It can even go ahead and set it for me but I haven't given it read/write access to my car yet.
by qwerpy - I use MCP for a voice assistant as well.
I got a Pebble Index 01 ring and it has support for custom MCP servers. I run one on Tailscale and it can interact with Home Assistant, my home issue tracker, my Anki setup, etc.
I've come full circle on MCP. With agents with a shell tool they quickly became unnecessary but these days I've been coming up with more agentic use cases where I don't want to give the agent a shell, and a narrower MCP interface is a great fit.
by erikus - For what I am using it for, I recently wrote a little web app called Afterfeed [0] that lets you view backups from social media websites as a single unified timeline.
To put this into perspective, I was a voracious social media user for decades. For me, this is 25 years of data, close to 100,000 posts, spanning everything from LiveJournal in 2001 to Mastodon in 2026. But when put together, it is a timeline of my life.
As kind of a last minute idea, I added an MCP server because why not? Once I wired an LLM up to it, I could ask introspective questions and find new ways of looking at myself and my own history. Simple things like "what was I doing 10 years ago around this time?" to more complex things like researching past thought patterns.
- Interesting idea. I left social media over half a decade ago and just nuked my accounts. Something like this could have been useful. Like a personal archiveby altmanaltman
- My context is realtime visual effect creation, but I’ve used MCP extensively in my (native) custom harness as a way to drive in—app UI updates and of course bidirectional state queries, including framebuffer capture for closed loop verification.
I feel like CLI would probably work too but then I’d end up implementing something similar. That being said, I’ve been bitten by the usual suspects: too many tools will cause context windows to grow quickly and some agents will sometimes skim through a subset of the tool list without querying the entire thing, causing incorrect behavior.
If you have tokens to burn I invite you to check out the source code see how extensively it’s being used: https://github.com/sxp-studio/subjective-zero
(video to see the MCP in action, it’s a bit long so feel free to skip: https://www.youtube.com/watch?v=DcI1tsPJ8eM)
Another kind of cool use of MCP that I’ve encountered is actually from… the French government! They do it for their open data initiative: https://github.com/datagouv/datagouv-mcp
by tasoeur - Yes, quite a few uses in prod, main use case being abstracting API access for agents. In our case these are mostly in-house MCP servers, purpose built for the given agent.
Why MCP instead of CLI or agent accessing API directly?
Direct access (Curl/own small function): This requires agent to have full understanding of the API spec. Yes, context can be protected using progressive disclosure, but this essentially means agent needing to understand the API again and again, before every use in that context. Also, a typical API spec may or may not be agent-friendly. If there are nuances when calling an endpoint, where do we put these? Into OAS description? Works, but clunky.
CLI: It works beautifully, especially when a 3rd party CLI already exists for a complex backend. Assumes a well documented, agent friendly CLI, most CLIs are designed for human or CI/CD consumption. Talking about MCP taking up too much context, think about agent starting with my_cli --help, and going down through the switches and parameters one at a time to figure out how the CLI should be called. Less of a problem when calling a well know CLI (e.g. aws), but anything more niche (or custom) requires multiple turns to compose the final CLI command.
MCP: Has its issues, but offers an agent-native solution. Everything agent needs to know about a tool becomes available at once. In an enterprise environment MCPs can be served through an MCP Gateway, providing governance and permission management, this is quite contrast against running a CLI that requires agent to have execute permissions in its shell.
I must mention that we also utilise lazy-loading of MCPs. In use cases where 10s of tools needs to be loaded, only the most common ones are pre-loaded, then agent kernel connects the others as an when needed, and release them after a timeout (in case of long running sessions). This keeps the context lean.
by cagz - I'm really curious how you're dealing with lazy loading. Is the MCP then more like a tool-helper instead of the tools themselves?
I was trying to find out if the MCP has some sort of lazy loading feature/primitive in the works, but there seem to be a lot of disagreements about it.
Intuitively, lazy loading seems to be somewhere between a CLI and vanilla MCP. In the end, it sounds very similar to tiered/ progressive loading similar to images on low bandwidth connections.
- We have taken to letting our agents use specific CLIs directly and we narrow down their access control with nono tool sandboxing via a customized Pi agent running headless. We have one agent that can use the aws CLI and nono feeds in a phantom SigV4 credential and then policy limits to just read-only http methods and certain L7 filtering on paths to limit its abilities - this means we can have it monitor and debug deployment failures without it doing any damage.
It was all largely based off this example https://github.com/nolabs-ai/nono/tree/main/tool-sandbox-exa...
by trickleup - I OCR'd my Chinese textbooks and made a stateless MCP that allows me to ground my Chinese language studies according to the textbook only. With this I can start a quiz, understand differences between words that have similar meanings knowing no extra grammar is fed when reviewing. I specifically use it with glm 5.3 as it is the most language specific LLM that understands nuances.
Here's the repository: https://github.com/iodize6399/xuexi-keben
And here's the server itself: https://keben.555420.xyz
by navigate8310 - That's an awesome example! I'll definitely make use of your repo and idea for my German classes. Did you use a specific OCR method? I'm trying to get something better than tesseract :(
- We use MCP in production for our customer facing voice agents. Our custom MCP server defines tools and resources that the voice agents need access to to interact with our customers. (E.g. scheduling appointments, checking order status, etc).
Now we can point any voice agent platform we choose -- eleven labs, vapi, pipecat, whatever -- at our custom MCP server and it instantly has an understanding of the tools available, their inputs, and how to use them.
Compared to the alternatives everyone on HN champions, like clis and APIs, this is a no brainer. I'm honestly not even sure what the realistic alternative would even be.
Am I supposed to package and distribute a cli to ElevenLabs and ask them to use it? Give them a full API spec to implement for me?
I give them an endpoint and credentials and their platform instantly knows how to talk to mine. No one at ElevenLabs knows or cares about our implementation details.
HN has trouble seeing past the "developer in a terminal coding with Claude Code" use case for using AI. Real production agents have use cases that are very different!
When you don't own every piece of an integration with another system, there needs to be a well defined standard. That's what MCP provides.
by MitziMoto - Excuse me for being dense but I'd love to know more, if you can share. So you offer a voice agent for checking appointments and orders and stuff, is that through your app or website or something? So you make a button in your app which says "talk to our AI", and you've got the button set up so that it can send the customer's input query, along with a bit of text saying "our MCP is here, use it to answer the query", to any one of the voice agent providers? then you get some audio data in return that you play to the user?by denkmoon
- MCPs are diminishing in value a bit, because AI Agents are getting smarter about using API/CLIs. For example, I use gh cli via Claude instead of their MCP, because I already had cli setup, so no need to use MCP.
MCPs can potentially have great value if they cross multiple sources and combine results. For example at work we use an in-house MCP for log/metrics search across five different (legacy) systems. It finds correlation across events in different system within minutes.
by 5ersi - Agree with this.
MCP and RAG feel like the usual pattern of running a daemon 24/7 that balloons infrastructure spend. So uncivilized.
Any given REST API is a small model. A frontier or local model and modern harness can parse the already existing documentation for that REST API and invoke or generate a tool to use it.
by EyeEmOe - gh cli prbly has a lot of training data so maybe not a fair comparisonby dominotw
- MCP doesn't expose service credentials to the AI.by kobalsky
- I use MCPs all the time, but just like in your case: they're my own MCP servers.
They do exactly what I want and how I want it. They expose just the information and the features I want the LLM to have. And just like in your case, it combines multiple sources of information into 1 response.
by skerit - there is a number of importance that MCP can provide you outside using API/CLIs. when integrating with external services and you want a deterministic layer for your agent that can scale independently as your agentic layer in complex system while providing functionality like prompts and static read-only resources that can in turn be used for context injection and optimization. you might want to use MCP when it is this but for local services with alot of dependency or you want to write alot of wiring code, you can settle for API/CLIsby apexchaos