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:
- Create an account, then open Governance → Connect.
- Create a management client for an agent principal and a workspace.
You get a
client_idand a one-timeclient_secret. - 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:
- Claude (web, desktop, mobile, Cowork): Customize → Connectors → Add
custom connector → URL
https://fullmakt.ai/mcp. - Claude Code:
claude mcp add --transport http fullmakt https://fullmakt.ai/mcp, then/mcpto sign in. - ChatGPT: Settings → Connectors → Developer mode → add an MCP server with the same URL.
The connector exposes twelve tools, split by effect so the assistant asks before writing:
- Read:
list_workspaces,list_collections,list_collection_items,get_request,get_history,list_environments,list_variables, andfetch_url(GET/HEAD only, through the proxy). - Write:
set_variable,create_request,update_request, andrun_saved_request(runs a saved request of any protocol; treated as a write because the upstream call may have side effects).
Things to try once connected:
- “List my Fullmakt workspaces and show the last 10 requests run in Directory Review.”
- “Run the Create ticket request in the Support API collection against the staging environment and summarise the response.”
- “Set
baseUrlin the staging environment tohttps://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
/.well-known/agent-card.json— A2A Agent Card: skills, schemas, auth./mcp/health— anonymous wiring report: the exact MCP, A2A, and OAuth URLs this deployment serves./.well-known/oauth-protected-resourceand/.well-known/oauth-authorization-server— OAuth metadata for spec-following MCP clients.
Ready to try it? Create an account — provisioning an agent takes about a minute in the Connect tab.