Model Context Protocol (MCP)
MCP (Model Context Protocol) is an open standard for connecting AI agents to external tools and data sources through a typed, structured interface. It defines how tools expose their schemas, inputs, and outputs to the agent runtime, enabling consistent integration regardless of the underlying model or framework.
Why MCP matters
Before MCP, every agent framework integrated tools differently, making it hard to share tools across systems or frameworks. MCP standardizes the contract between agent and tool, enabling:
- Reusability — a tool built once works in any MCP-compatible agent
- Safety — typed schemas constrain what inputs the tool can receive
- Discovery — agents can inspect available tools from an MCP server at runtime
- Interoperability — used by both Claude SDK (email agent demo uses MCP) and NVIDIA NeMo Agent Toolkit
In the Claude Agent SDK
The Claude Agent SDK demo project includes an email agent that demonstrates MCP tool integration. The agent connects to a custom MCP server that exposes typed domain tools (e.g., send email, search inbox). This is the bridge from query() + basic tools to domain-specific, enterprise-grade tooling.
In the NVIDIA stack
NVIDIA’s NeMo Agent Toolkit supports MCP natively. NVIDIA also ships a Video Analytics MCP server that exposes Metropolis VSS capabilities (video search, summarization, Q&A) as MCP tools, allowing agents to treat camera feeds as queryable context.
Custom MCP tools
Custom MCP tools are the correct way to extend agent capabilities with domain logic:
- Define a schema (input types, output types, description)
- Expose the tool through an MCP server
- The agent discovers and calls it through the standard protocol
This is safer than giving agents raw shell access because the tool contract is explicit and bounded.
Related
- ClaudeAgentSDK — consumes MCP tools through the agent loop
- NeMoAgentToolkit — NVIDIA’s agent framework with MCP support
- AgentLoop — where MCP tool calls happen
- BoundedAgent — MCP tools can be constrained to a defined allowlist