The "capabilities over API mirror" framing is the right mental model, and it takes a few embarrassing false starts before it clicks. The moment it clicked for me was realizing the AI client doesn't know your data model — it only knows what the tool description says. A tool called get_documents with a vague description never gets called correctly; find_invoices_by_vendor_and_date_range with a two-line description that includes the expected output format hits on the first try, consistently.
The stdio→HTTP migration point is also underrated — most tutorials skip it because they don't model concurrent connections or session state. For multi-tenant setups, per-session context isolation is the piece most examples handle poorly or not at all.
Totally agree with you. The AI client doesn't know your data model—that's exactly why good tool descriptions and the right context matter so much. AI is smart, but the quality of the outcome is often only as good as the clarity of the input and context you provide.
I couldn't agree more about the stdio part as well. I got my server working with stdio pretty quickly, and it was a great way to get my feet wet. But I soon realized it was really just a prototype, and that building a production-ready MCP server meant moving to HTTP to support multiple users and proper session handling.
Thanks for stopping by and taking the time to leave such a thoughtful comment!