Connect an Agent

Two protocol surfaces, one token endpoint, human-granted authority.

Fullmakt is a credential broker for AI agents — it issues scoped, short-lived credentials, enforces what each agent may do on every call, and audits the result, so your API keys never reach the model. This page is the connection walkthrough; the overview is on the home page.

Using Claude or ChatGPT rather than building your own agent? Skip to connect Fullmakt to your assistant.

Fullmakt exposes two standard surfaces for AI agents. The A2A management surface lets an agent build out and manage a workspace — collections, requests, environments, policies, agent identities. The MCP execution surface turns one collection into an MCP server whose tools the agent can call. Both are authenticated with OAuth 2.0 client credentials that a human provisions in the app — an agent never grants itself access, and credential setup in the vault is always human-only.

Already signed in? Everything below is pre-filled with your own URLs and clients in the app under Governance → Connect.

A2A — manage a workspace

The management surface implements the Agent2Agent protocol (JSON-RPC 2.0 over HTTP). Discovery starts at the Agent Card, which lists every available skill with its input schema:

curl https://fullmakt.ai/.well-known/agent-card.json

To let an agent manage a workspace:

  1. Create an account, then open Governance → Connect.
  2. Create a management client for an agent principal and a workspace. You get a client_id and a one-time client_secret.
  3. The agent exchanges them for a short-lived (1 hour), workspace-scoped token:
curl -X POST https://fullmakt.ai/mcp-oauth/token \
  -d grant_type=client_credentials \
  -d client_id=pwm_… \
  -d client_secret=…

…and calls skills with message/send, passing a structured DataPart:

curl -X POST https://fullmakt.ai/a2a \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0", "id": 1, "method": "message/send",
    "params": { "message": { "parts": [{
      "kind": "data",
      "data": { "skill": "collection.list", "input": {} }
    }]}}
  }'

The credential carve-out: vault secrets are created, rotated and deleted by a human in the UI, never over A2A. Skills may reference an existing entry (vault://local/<name>), and every skill invocation — allowed or denied — lands in the same per-principal audit log as execution traffic.

MCP — execute a collection

Every collection can be served as a remote MCP server: its requests become tools, brokered through your policies and short-lived credentials. An execution client is scoped to specific collections and exchanges its credentials the same way, plus the collection it wants to talk to:

curl -X POST https://fullmakt.ai/mcp-oauth/token \
  -d grant_type=client_credentials \
  -d client_id=pwm_… \
  -d client_secret=… \
  -d collection_id=<collection slug, name, or id>

Then point any MCP client at the collection's endpoint:

{
  "mcpServers": {
    "fullmakt": {
      "url": "https://fullmakt.ai/mcp/<collection-slug>",
      "headers": { "Authorization": "Bearer <access_token>" }
    }
  }
}

Provisioning happens in Governance → Connect (or the guided setup wizard, which walks from collection to working MCP endpoint in one pass). Assistants such as Claude and ChatGPT use a different, human-consented surface instead: the connector at /mcp.

Use Fullmakt from Claude or ChatGPT

The connector is an MCP server at https://fullmakt.ai/mcp that acts as you, after you sign in and consent once (OAuth 2.1 with PKCE; dynamic client registration and client ID metadata documents are both supported). The assistant never sees a secret: credentials referenced by a request are injected server-side when it runs, and there is no tool that accepts one.

Add it as a custom connector today, or install it from the directory once listed:

The connector exposes twelve tools, split by effect so the assistant asks before writing:

Things to try once connected:

  1. “List my Fullmakt workspaces and show the last 10 requests run in Directory Review.”
  2. “Run the Create ticket request in the Support API collection against the staging environment and summarise the response.”
  3. “Set baseUrl in the staging environment to https://api-staging.example.com, then re-run Health check.”

The access token the assistant holds is valid for one hour, refreshes automatically, and works only on /mcp — not on the REST API and not on the vault. Remove the connector in the assistant to end access; every request it ran stays in your workspace history and audit log. Data handling is described in the privacy policy. Questions or problems: contact us.

Discovery endpoints

Ready to try it? Create an account — provisioning an agent takes about a minute in the Connect tab.