Card snapshot
fullmakt.ai
·
2026-08-17 07:16:24 UTC
·
dab692788f8dbde8053c4f98de39d7b511b0678721b4dca6be3c27e7988fc024
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"protocolVersion": "0.3.0",
"name": "fullmakt-a2a",
"description": "Fullmakt management agent: create and manage collections, requests, environments, policies and agent identities in one workspace. Vault credential setup is human-only \u2014 agents may reference existing secrets but never create, read, rotate or delete them. Execution (calling a collection's requests as tools) happens over MCP at https://fullmakt.ai/mcp/{collection} with an execution-scoped token from the same token endpoint.",
"url": "https://fullmakt.ai/a2a",
"preferredTransport": "JSONRPC",
"version": "0.1.0",
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false
},
"securitySchemes": {
"oauth2": {
"type": "oauth2",
"flows": {
"clientCredentials": {
"tokenUrl": "https://fullmakt.ai/mcp-oauth/token",
"scopes": {
"management": "Manage the workspace this client was provisioned for."
}
}
}
}
},
"security": [
{
"oauth2": [
"management"
]
}
],
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "workspace.get",
"name": "Get workspace",
"description": "Summary of the workspace this token manages.",
"tags": [
"WorkspaceRead"
],
"inputSchema": {
"type": "object",
"properties": {}
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "collection.list",
"name": "List collections",
"description": "List the collections in the workspace.",
"tags": [
"CollectionRead"
],
"inputSchema": {
"type": "object",
"properties": {}
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "collection.create",
"name": "Create collection",
"description": "Create a collection in the workspace.",
"tags": [
"CollectionWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Collection name"
},
"description": {
"type": "string",
"description": "Optional description"
}
},
"required": [
"name"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "collection.get",
"name": "Get collection",
"description": "Full collection detail: items tree, variables, scripts.",
"tags": [
"CollectionRead"
],
"inputSchema": {
"type": "object",
"properties": {
"collectionId": {
"type": "string",
"description": "Collection GUID"
}
},
"required": [
"collectionId"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "collection.update",
"name": "Update collection",
"description": "Update name/description/auth/default environment/scripts.",
"tags": [
"CollectionWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"collectionId": {
"type": "string",
"description": "Collection GUID"
},
"collection": {
"type": "object",
"description": "UpdateCollectionRequest: name, description?, authConfigJson?, preRequestScript?, testScript?, defaultEnvironmentId?"
}
},
"required": [
"collectionId",
"collection"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "collection.delete",
"name": "Delete collection",
"description": "Delete a collection and everything in it.",
"tags": [
"CollectionWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"collectionId": {
"type": "string",
"description": "Collection GUID"
}
},
"required": [
"collectionId"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "item.create",
"name": "Create item",
"description": "Create a folder or request (HTTP/GraphQL/WebSocket/gRPC/MCP) in a collection.",
"tags": [
"ItemWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"collectionId": {
"type": "string",
"description": "Collection GUID"
},
"item": {
"type": "object",
"description": "CreateCollectionItemRequest: itemType, name, description?, parentItemId?, protocolType?, request?, graphQlRequest?, webSocketRequest?, grpcRequest?, mcpRequest?"
}
},
"required": [
"collectionId",
"item"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "item.get",
"name": "Get item",
"description": "Fetch one item with its request definition and children.",
"tags": [
"CollectionRead"
],
"inputSchema": {
"type": "object",
"properties": {
"itemId": {
"type": "string",
"description": "Item GUID"
}
},
"required": [
"itemId"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "item.update",
"name": "Update item",
"description": "Update an item's name, request definition and scripts.",
"tags": [
"ItemWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"itemId": {
"type": "string",
"description": "Item GUID"
},
"item": {
"type": "object",
"description": "UpdateCollectionItemRequest payload"
}
},
"required": [
"itemId",
"item"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "item.delete",
"name": "Delete item",
"description": "Delete an item (and its children).",
"tags": [
"ItemWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"itemId": {
"type": "string",
"description": "Item GUID"
}
},
"required": [
"itemId"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "item.move",
"name": "Move item",
"description": "Re-parent and/or re-order an item within its collection.",
"tags": [
"ItemWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"itemId": {
"type": "string",
"description": "Item GUID"
},
"newParentId": {
"type": "string",
"description": "New parent item GUID, omit for root"
},
"newSortOrder": {
"type": "integer",
"description": "New sort position"
}
},
"required": [
"itemId",
"newSortOrder"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "environment.list",
"name": "List environments",
"description": "List the workspace's environments.",
"tags": [
"EnvironmentRead"
],
"inputSchema": {
"type": "object",
"properties": {}
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "environment.create",
"name": "Create environment",
"description": "Create an environment with variables. Variables may reference existing vault entries (vault://local/<name>) but LLM provider credentials cannot be set over A2A.",
"tags": [
"EnvironmentWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Environment name"
},
"variables": {
"type": "array",
"description": "Variables: {key, initialValue, currentValue, enabled}"
}
},
"required": [
"name"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "environment.update",
"name": "Update environment",
"description": "Rename an environment and/or replace its variables. Any stored LLM credential config is preserved untouched.",
"tags": [
"EnvironmentWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"environmentId": {
"type": "string",
"description": "Environment GUID"
},
"name": {
"type": "string",
"description": "Environment name"
},
"variables": {
"type": "array",
"description": "Replacement variables"
}
},
"required": [
"environmentId",
"name"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "environment.delete",
"name": "Delete environment",
"description": "Delete an environment.",
"tags": [
"EnvironmentWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"environmentId": {
"type": "string",
"description": "Environment GUID"
}
},
"required": [
"environmentId"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "globals.get",
"name": "Get global variables",
"description": "List the workspace's global variables.",
"tags": [
"EnvironmentRead"
],
"inputSchema": {
"type": "object",
"properties": {}
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "globals.set",
"name": "Set global variables",
"description": "Replace the workspace's global variables.",
"tags": [
"EnvironmentWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"variables": {
"type": "array",
"description": "Variables: {key, initialValue, currentValue, enabled}"
}
},
"required": [
"variables"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "policy.get",
"name": "Get collection policy",
"description": "Read the policy document governing broker calls to a collection.",
"tags": [
"PolicyRead"
],
"inputSchema": {
"type": "object",
"properties": {
"collectionId": {
"type": "string",
"description": "Collection GUID"
}
},
"required": [
"collectionId"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "policy.set",
"name": "Set collection policy",
"description": "Set the policy document (hardDeny / requireApproval / behavior rules) for a collection.",
"tags": [
"PolicyWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"collectionId": {
"type": "string",
"description": "Collection GUID"
},
"policyJson": {
"type": "string",
"description": "The policy document as a JSON string"
}
},
"required": [
"collectionId",
"policyJson"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "approval.list",
"name": "List pending approvals",
"description": "List approvals awaiting a human decision. Deciding them is human-only.",
"tags": [
"ApprovalRead"
],
"inputSchema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Pending|Approved|Rejected|Expired|Used"
},
"limit": {
"type": "integer",
"description": "Max rows (default 100)"
}
}
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "principal.list",
"name": "List agent principals",
"description": "List the account's agent principals. Principals are account-level identities (not workspace-scoped), so this spans the owner's whole account.",
"tags": [
"PrincipalRead"
],
"inputSchema": {
"type": "object",
"properties": {}
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "principal.create",
"name": "Create agent principal",
"description": "Create a named account-level agent identity for execution-side auditing and policy.",
"tags": [
"PrincipalWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Principal name"
}
},
"required": [
"name"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "client.list",
"name": "List execution clients",
"description": "List account-level OAuth clients for the remote MCP execution surface (no secrets returned).",
"tags": [
"ClientRead"
],
"inputSchema": {
"type": "object",
"properties": {}
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "client.create",
"name": "Create execution client",
"description": "Create an OAuth client scoped to collections in this workspace. The secret is returned exactly once.",
"tags": [
"ClientWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"principalId": {
"type": "string",
"description": "Principal GUID"
},
"collectionIds": {
"type": "array",
"description": "Collection GUIDs the client may scope tokens to"
}
},
"required": [
"principalId",
"collectionIds"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "vault.listEntries",
"name": "List vault entry references",
"description": "Metadata for existing vault entries (names + vault://local/<name> references). Values are never returned, and secrets can only be created, rotated or deleted by a human in the UI.",
"tags": [
"VaultRead"
],
"inputSchema": {
"type": "object",
"properties": {}
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "audit.list",
"name": "Query the audit trail",
"description": "Recent broker/A2A audit entries for this account.",
"tags": [
"AuditRead"
],
"inputSchema": {
"type": "object",
"properties": {
"collectionId": {
"type": "string",
"description": "Filter by collection GUID"
},
"surface": {
"type": "string",
"description": "Filter by surface, e.g. 'a2a'"
},
"limit": {
"type": "integer",
"description": "Max rows (default 100)"
}
}
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "collection.import",
"name": "Import Postman collection",
"description": "Import a Postman v2.1 collection JSON into the workspace.",
"tags": [
"ImportExport"
],
"inputSchema": {
"type": "object",
"properties": {
"json": {
"type": "string",
"description": "The Postman collection JSON"
}
},
"required": [
"json"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "collection.export",
"name": "Export Postman collection",
"description": "Export a collection as Postman v2.1 JSON.",
"tags": [
"ImportExport"
],
"inputSchema": {
"type": "object",
"properties": {
"collectionId": {
"type": "string",
"description": "Collection GUID"
}
},
"required": [
"collectionId"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "discovery.probe",
"name": "Probe an API surface",
"description": "Run the discovery ladder (OpenAPI/GraphQL/MCP/A2A) against a URL and return the normalized operations and auth summary. Reads only \u2014 persists nothing.",
"tags": [
"DiscoveryRun"
],
"inputSchema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Absolute http(s) URL of the API/server to probe"
}
},
"required": [
"url"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "discovery.generate",
"name": "Generate a collection from a URL",
"description": "Discover an API and generate a persisted, authenticated collection wired to credential references (never plaintext secrets). Same pipeline as the REST generate endpoint.",
"tags": [
"CollectionWrite"
],
"inputSchema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Absolute http(s) URL of the API to generate from"
},
"environmentId": {
"type": "string",
"description": "Environment GUID providing the LLM config"
},
"hint": {
"type": "string",
"description": "Optional intent hint to filter/name endpoints"
}
},
"required": [
"url",
"environmentId"
]
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "grant.list",
"name": "List upstream OAuth grant references",
"description": "Metadata for existing upstream OAuth grants (names + oauth://<name> references, provider, scopes, status). Secrets and tokens are never returned; grants are created, connected and deleted by a human in the UI.",
"tags": [
"GrantRead"
],
"inputSchema": {
"type": "object",
"properties": {}
},
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
}
]
}