Skip to main content
This guide shows how to extend MCP (Model Context Protocol) tools and servers with AAP alignment properties, enabling alignment verification for tool invocations.

Overview

MCP defines a protocol for exposing tools to language models. AAP extends MCP servers with alignment metadata that declares:
  • Who the server/tools serve (principal relationship)
  • What values guide tool behavior (declared values)
  • Which tools are bounded vs. require escalation (autonomy envelope)
  • How invocations are audited (trace commitment)
This extension enables clients to verify alignment before invoking tools, and produces AP-Traces for tool invocation auditing.

Prerequisites

MCP vs A2A: Key differences

MCP alignment operates at two levels:
  1. Server-level: Default alignment for all tools in the server
  2. Tool-level: Override alignment for specific tools

Step 1: Understand your current MCP server

A standard MCP server exposes tools with JSON schemas:
This tells clients what tools are available, but not:
  • Which tools are safe to invoke autonomously
  • Which tools require user approval
  • Which paths/operations are forbidden
  • What values guide tool behavior

Step 2: Add server-level alignment

Create an alignment card for your MCP server:

Key mapping: MCP tools to AAP actions

Step 3: Expose alignment card

MCP servers SHOULD expose their alignment card via a resource:
Alternatively, include alignment in server instructions:

Step 4: Generate AP-Traces for tool invocations

Wrap tool implementations to produce AP-Traces:

Step 5: Tool-level alignment overrides

For servers with many tools, specify per-tool alignment:

Step 6: Client-side verification

Clients invoking MCP tools can verify alignment before invocation:

Complete example: Aligned MCP server

MCP configuration with Alignment

Update your .mcp.json to indicate alignment support:

Migration checklist

  • Audit your current MCP tools
  • Classify tools: bounded, escalate, or forbidden
  • Create server-level alignment card
  • Define tool-level overrides if needed
  • Add alignment card resource (alignment://card)
  • Implement AP-Trace generation for tool invocations
  • Add trace storage/retrieval resource
  • Test with verify_trace() before deployment
  • Update .mcp.json with alignment metadata
  • Document alignment in server instructions
  • Handle non-AAP clients gracefully

Handling non-AAP clients

MCP servers with AAP should still work with clients that don’t support alignment:

Standard value identifiers

Use these standard identifiers where applicable: Custom values MUST be defined in the alignment card’s definitions block.

Next steps


Questions? See the specification or check the examples.