โ† Engineering Log
Guides ยท By Permitly

Ai Agent Builder MCP: Comprehensive Guide for 2026

Building AI agents using Anthropic's Model Context Protocol (MCP) has established itself as the open standard for LLM tool and resource integration in 2026. Creating secure, production-ready MCP agent architectures requires combining standard JSON-RPC 2.0 tool handlers, resource prompts, client-side permission gates, and cryptographic human-in-the-loop authorization.

This guide provides an authoritative, technical blueprint for building AI agents with Model Context Protocol (MCP), covering MCP server architecture, CallTool request interception, resource protection, and Permitly consent token integration.


What is ai agent builder mcp and Why It Matters

An AI agent builder using MCP (Model Context Protocol) refers to the specification, SDKs (TypeScript and Python), and client-server architectures used to expose tools, file systems, databases, and APIs to LLM clients (such as Claude Desktop, Cursor, and custom agent runtimes).

graph TD
    subgraph MCPArchitecture["Model Context Protocol (MCP) Permission Boundary"]
        Client["LLM Host Client (Cursor / Claude)"] --> MCPReq["CallToolRequest (mcp.tool.filesystem)"]
        MCPReq --> MCPServer["MCP Server Request Handler"]
        MCPServer --> ConsentGate["๐Ÿ›ก๏ธ Permitly Consent Gate"]
        ConsentGate -->|Approved| ToolExec["Execute MCP Server Tool (Disk / DB)"]
        ConsentGate -->|Declined| ErrorResp["Return RPC Authorization Error"]
        ToolExec --> RPCResponse["Return CallToolResult to Client"]
    end

Why MCP Governance Matters in 2026

  1. Open Protocol Standardization: MCP provides a standardized JSON-RPC wire format for connecting LLMs to local and remote tools, replacing proprietary tool calling APIs.
  2. Local Workstation & Cloud Risk: MCP servers run with local filesystem or production cloud access. An ungated MCP server tool allows LLM assistants to read, write, or delete host files autonomously.
  3. Dynamic Resource Scoping: MCP tools require explicit per-tool permission scopes (e.g. mcp.tool.execute_bash, mcp.tool.db_write).
  4. Human Consent Gatekeeping: Secure MCP implementations enforce explicit Human-in-the-Loop (HITL) approval before any MCP tool mutates local or remote state.

Core Features & Implementation Strategies

Building enterprise-ready MCP servers requires mastering tool handler creation, request schema definition, token verification, and client notification.

1. MCP Server Tool Interception in TypeScript

MCP servers built with the @modelcontextprotocol/sdk intercept CallToolRequestSchema handlers. By wrapping tool execution with Permitly token verification, tool dispatches require signed human approval.

Here is a complete TypeScript implementation:

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { CallToolRequestSchema } from "@modelcontextprotocol/sdk/types.js";
import { PermitlyClient } from "permitly";

const permitly = new PermitlyClient({ apiKey: process.env.PERMITLY_API_KEY! });

const server = new Server(
    { name: "secure-mcp-server", version: "1.0.0" },
    { capabilities: { tools: {} } }
);

server.setRequestHandler(CallToolRequestSchema, async (request) => {
    const { name, arguments: args } = request.params;
    const consentToken = args?.consent_token as string;
    
    // 1. Verify signed ECDSA token offline
    const verification = permitly.consent.verify(consentToken);
    
    if (!verification.isValid) {
        return {
            content: [{ type: "text", text: "MCP Execution Halted: Invalid or expired consent token." }],
            isError: true
        };
    }
    
    if (!verification.scopes.includes(`mcp.tool.${name}`)) {
        return {
            content: [{ type: "text", text: `MCP Execution Halted: Token lacks scope 'mcp.tool.${name}'.` }],
            isError: true
        };
    }
    
    // 2. Safely execute MCP tool
    console.log(`Executing MCP Tool ${name} under audit token ${verification.jti}`);
    return {
        content: [{ type: "text", text: `Tool ${name} executed successfully under token ${verification.jti}.` }]
    };
});

2. MCP Sequence Flow

sequenceDiagram
    participant LLM as ๐Ÿง  LLM Client (Claude / Cursor)
    participant MCP as ๐Ÿ”Œ MCP Server
    participant Permitly as ๐Ÿ›ก๏ธ Permitly API
    participant User as ๐Ÿ‘ค Human User
    
    LLM->>MCP: 1. CallToolRequest (name: "deploy_microservice")
    MCP->>Permitly: 2. Verify Consent Token
    alt Token Required
        MCP->>Permitly: 2a. Request Hosted Approval URL
        Permitly-->>User: 2b. Prompt User Consent Screen
        User->>Permitly: 2c. User Approves Action
        Permitly-->>MCP: 2d. Issue Signed ECDSA Token
    end
    MCP->>MCP: 3. Execute Tool Callback
    MCP-->>LLM: 4. Return CallToolResult (Output Text)

Best Practices & Common Pitfalls

Anti-Pattern Security Risk Production Solution
Ungated Local File System Tools Allowing MCP servers to write or delete local files without confirmation. Require signed Permitly consent tokens before file write or shell execution tools run.
Ignoring RPC Error Handlers Returning generic errors when tool execution fails. Return structured JSON-RPC error responses with clear permission failure details.
No Audit History Developer teams cannot prove which user authorized an MCP tool execution. Log immutable audit events with actor ID, timestamp, scope, and signed token JTI.

Key Takeaways & Actionable Next Steps

  • MCP is the Open Standard for AI Tools: Standardizing tool execution across Claude Desktop, Cursor, and custom clients.
  • Permitly Protects MCP Tool Execution: Permitly adds zero-latency cryptographic token validation to TypeScript & Python MCP servers.
  • Get Started in 3 Lines of Code:
npm install permitly @modelcontextprotocol/sdk
import { PermitlyClient } from "permitly";
const permitly = new PermitlyClient({ apiKey: process.env.PERMITLY_KEY });

Learn more at Permitly MCP Integration and Permitly Developer Documentation.

Related

DIRECTORY & RESOURCE INDEX

Explore Product Capabilities & Engineering Articles