In practice

We design MCP servers like internal APIs with stronger operating rules. Each tool needs a clear boundary, typed inputs, predictable outputs, audit records, and an owner who accepts the risk of read or write access.

Start with tool boundaries.

A good MCP server design begins with a list of jobs the agent is allowed to perform. Examples include searching CRM notes, reading support tickets, drafting a refund request, or opening a deployment report.

The owner should define the input, the data touched, the expected output, and the failure mode for each tool. Broad tools create ambiguous behavior. Small tools make permissions, testing, and review easier.

Separate read tools from write tools.

Read tools should return only the data needed for the task. Write tools should require stronger auth, narrower scopes, idempotency keys, and human approval for material changes.

This split gives technical leaders a clean control point. A support agent can search order history without permission to issue refunds. A deployment assistant can inspect logs without permission to change production settings.

Use schemas as operating contracts.

Model Context Protocol tools should expose strict schemas for inputs and outputs. Required fields, enums, limits, and validation errors tell the agent what it can ask for and tell engineers what they need to test.

Good schemas also protect downstream systems. They prevent free-form database filters, oversized payloads, hidden writes, and vague success messages. The output should include enough source detail for a person to verify the result.

Make approval and audit part of the server.

Internal AI tools need logs that record the caller, tool name, input summary, source system, result status, approval state, and correlation ID. These records should be searchable by engineering and operations owners.

Local testing should cover success paths, permission failures, malformed inputs, empty results, rate limits, and approval gates. The handoff point is explicit: the agent proposes, the server records, and the human approves high-impact writes.

Working rule

Give every MCP tool one job, one owner, one auth path, and one auditable result.