Skip to content
$EngineeringAtlas

MCP for Backend Engineers

How the Model Context Protocol connects AI clients to tools and data, and what backend teams must get right for auth, permissions, and auditability.

Amit Kumar Singh2 min read

The Problem

Every AI app needs access to private tools: tickets, docs, databases, deploys, dashboards, and internal APIs. Hardcoding every integration into every AI client does not scale.

Why It Matters

MCP gives teams a common protocol for exposing tools and context to AI clients. It also creates a new security boundary. If you expose a powerful operation through an MCP server, assume a model may try to call it in surprising ways.

Core Concepts

An MCP server exposes tools, resources, and prompts. Tools perform actions. Resources provide readable context. Prompts package reusable instructions. For remote servers, authorization should be based on standard OAuth flows, scoped access tokens, and resource-specific permission checks.

Implementation

Design tools like public APIs:

{
  "name": "create_incident",
  "description": "Create a production incident after approval.",
  "inputSchema": {
    "type": "object",
    "required": ["service", "severity", "summary"],
    "properties": {
      "service": { "type": "string" },
      "severity": { "type": "string", "enum": ["sev2", "sev3"] },
      "summary": { "type": "string", "maxLength": 240 }
    }
  }
}

Keep the schema narrow. Validate inputs again on the server. Attach the caller identity, tenant, scopes, and trace id to every tool execution.

Common Mistakes

  • Treating MCP as trusted internal traffic.
  • Returning more resource data than the user requested.
  • Building catch-all tools that accept raw SQL, shell commands, or arbitrary URLs.
  • Missing audit logs for who requested what and which client executed it.

Production Considerations

Separate read tools from write tools. Require confirmation for destructive actions. Rate-limit by user, client, and tenant. Version tool schemas so client prompts do not silently break when arguments change.

Security

Use least privilege scopes and short-lived tokens. Never trust the model to enforce authorization. It can recommend a tool call, but the MCP server must enforce access.

Performance

Return compact, structured data. Large blobs should become resources with stable ids, not huge inline tool responses that bloat the next model turn.

Summary

MCP is useful because it standardizes AI tool access. It is safe only when backend teams treat MCP servers like permissioned APIs with schemas, scopes, logs, and approval gates.

Amit Kumar Singh

// written by

Amit Kumar Singh

Software engineer writing about backend systems, cloud, and the realities of running code in production.

$ subscribe --weekly

The weekly engineering digest

Production-grade engineering writing in your inbox. No spam, unsubscribe anytime.

## related