Skip to main content

2 posts tagged with "prompts"

View All Tags

Your Tool Description Is a Prompt (And You're Writing It Like a JIRA Ticket)

· 18 min read
TheMCPGuy
MCP Developer & Educator

Series cover. A bad description reading query_data: queries the data is marked as a tautology in red, next to a useful one that says search orders by status and date and adds when to use it, its inputs and its boundaries. The strapline reads: the model reads every word.

Here is a tool description from a real, public MCP server. The name has been changed because I'm not in the business of public shaming, but the wording is unchanged:

query_data: Queries the data.

Two words. One of which is the tool's own name. The other a tautology. This is what happens when a developer treats description as a field on a struct rather than what it actually is: a prompt fragment that the AI reads to decide whether to call your tool.

If you are writing tool descriptions the way you write Swagger comments, you are writing them wrong. Let's talk about why.

The Three Laws of MCP (Asimov Can Rest Easy)

· 17 min read
TheMCPGuy
MCP Developer & Educator

Series cover. Three numbered panels: Tools, where the AI acts; Resources, where the AI reads; Prompts, which humans invoke. The strapline reads: act, read, invoke.

Asimov's Three Laws of Robotics encoded a philosophy about how robots should relate to humans. They weren't just rules, they were a framework for reasoning about harm, autonomy, and control. The laws conflicted with each other by design, forcing a hierarchy.

MCP's three primitives, Tools, Resources, and Prompts, encode a similar philosophy. They're not just API categories. They're a framework for reasoning about how AI should interact with the world: what it can change, what it can only read, and what humans explicitly invoke.

Get them right, and your MCP server is intuitive, safe, and composable. Get them wrong, and you'll wonder why the AI keeps calling the wrong thing at the wrong time.