---
title: "Comment by Opportunity Biz on \"Building a Customer-Facing MCP Server: What Do You Actually Need?\" | Hashnode"
description: "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 m"
url: "https://hashnode.com/posts/building-a-customer-facing-mcp-server-what-do-you-actually-need/6a47ef4f6a19961ca143144c/comment/6a48e4c4047b24be0febcbc5"
---

[Discussion](https://hashnode.com/posts/building-a-customer-facing-mcp-server-what-do-you-actually-need/6a47ef4f6a19961ca143144c)

Comment [Building a Customer-Facing MCP Server: What Do You Actually Need?](https://hashnode.com/posts/building-a-customer-facing-mcp-server-what-do-you-actually-need/6a47ef4f6a19961ca143144c)

[Opportunity Biz](https://hashnode.com/@opptybiz)

[Jul 4](https://hashnode.com/posts/building-a-customer-facing-mcp-server-what-do-you-actually-need/6a47ef4f6a19961ca143144c/comment/6a48e4c4047b24be0febcbc5)

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.
