Getting Started

Connect your application to Agent Platform in four steps.

1. Implement the MCP Tool Server

Your application needs to expose an HTTP endpoint that speaks MCP (JSON-RPC 2.0). It must handle two methods: tools/list and tools/call.

server.ts
import express from "express";

const app = express();
app.use(express.json());

const tools = [
  {
    name: "lookup_account",
    description: "Look up a customer account by email or ID",
    inputSchema: {
      type: "object",
      properties: {
        email: { type: "string", description: "Customer email" },
        account_id: { type: "string", description: "Account ID" },
      },
    },
  },
];

app.post("/mcp", (req, res) => {
  const { method, params, id } = req.body;

  if (method === "tools/list") {
    return res.json({ jsonrpc: "2.0", id, result: { tools } });
  }

  if (method === "tools/call") {
    const { name, arguments: args } = params;
    // Execute the tool and return the result
    const result = executeToolHandler(name, args);
    return res.json({ jsonrpc: "2.0", id, result });
  }

  res.json({ jsonrpc: "2.0", id, error: { code: -32601, message: "Method not found" } });
});

app.listen(3001);

2. Register Your MCP Server

Tell Agent Platform where your MCP server lives. Register it as a skill using the provisioning YAML or the ConnectRPC API.

provision.yaml
skills:
  - name: account-lookup
    display_name: "Account Lookup"
    description: "Customer account operations"
    category: read
    requires_approval: false
    skill_type: mcp
    mcp_server_url: https://your-app.example.com/mcp
    mcp_headers:
      Authorization: "Bearer ${MCP_AUTH_TOKEN}"
Apply
go run ./cmd/provision -config provision.yaml -api-url https://agent-platform.example.com
Each MCP server is registered as a skill with skill_type: mcp. Agent Platform discovers tools dynamically from your server — no need to define tool schemas in the config.

3. Assign Skills to Agents

Agents only have access to the tools from their assigned skills. Assign your skill to the agents that need it.

agent-config.yaml
agents:
  - id: ops-triage
    name: "Operations Triage"
    skills:
      - account-lookup    # Your skill
      - invoice-parser    # Another skill
    system_prompt: |
      You are an operations agent. Use the available
      tools to help resolve customer issues.

4. Trigger the Agent

Agents can be triggered via webhooks, schedules, or manual conversation. Here's a webhook example:

Send a webhook event
curl -X POST https://agent-platform.example.com/webhooks/events \
  -H "Content-Type: application/json" \
  -H "X-Webhook-Token: whk_your_source_token" \
  -d '{
    "event_type": "ticket.created",
    "payload": {
      "ticket_id": "TKT-1234",
      "subject": "Cannot access account",
      "customer_email": "user@example.com"
    }
  }'

The agent receives the event payload, reasons about it, discovers your tools via tools/list, and invokes them as needed. Tool calls that modify data go through the approval gate before execution.