fullmakt-a2a
fullmakt.ai
Fullmakt management agent: create and manage collections, requests, environments, policies and agent identities in one workspace. Vault credential setup is human-only — 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.
fullmakt.ai via a single DNS TXT record to add the
verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Dispute or improve this rating
C
Conformance score: 61/100
C-grade: usable but has clear conformance issues, review the breakdown below.
click to expand breakdown ▾
click to collapse breakdown ▴
agent-card.json changed within the last 7 days. We track these so downstream callers can react.
Activity (audit trail)
last 24h · 0 invocations Public aggregate · no PII recordedNothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.
Card history
1 snapshot Every change toagent-card.json
| Captured | Hash | |
|---|---|---|
| 2026-08-17 07:16:24 current | dab692788f8d… |
view → |
Skills · 31 declared · mapped to canonical taxonomy
Summary of the workspace this token manages.
List the collections in the workspace.
Create a collection in the workspace.
Full collection detail: items tree, variables, scripts.
Update name/description/auth/default environment/scripts.
Delete a collection and everything in it.
Create a folder or request (HTTP/GraphQL/WebSocket/gRPC/MCP) in a collection.
Fetch one item with its request definition and children.
Update an item's name, request definition and scripts.
Re-parent and/or re-order an item within its collection.
List the workspace's environments.
Create an environment with variables. Variables may reference existing vault entries (vault://local/<name>) but LLM provider credentials cannot be set over A2A.
Rename an environment and/or replace its variables. Any stored LLM credential config is preserved untouched.
List the workspace's global variables.
Replace the workspace's global variables.
Read the policy document governing broker calls to a collection.
Set the policy document (hardDeny / requireApproval / behavior rules) for a collection.
List approvals awaiting a human decision. Deciding them is human-only.
List the account's agent principals. Principals are account-level identities (not workspace-scoped), so this spans the owner's whole account.
Create a named account-level agent identity for execution-side auditing and policy.
List account-level OAuth clients for the remote MCP execution surface (no secrets returned).
Create an OAuth client scoped to collections in this workspace. The secret is returned exactly once.
Metadata for existing vault entries (names + vault://local/<name> references). Values are never returned, and secrets can only be created, rotated or deleted by…
Recent broker/A2A audit entries for this account.
Import a Postman v2.1 collection JSON into the workspace.
Export a collection as Postman v2.1 JSON.
Run the discovery ladder (OpenAPI/GraphQL/MCP/A2A) against a URL and return the normalized operations and auth summary. Reads only — persists nothing.
Discover an API and generate a persisted, authenticated collection wired to credential references (never plaintext secrets). Same pipeline as the REST generate …
Metadata for existing upstream OAuth grants (names + oauth://<name> references, provider, scopes, status). Secrets and tokens are never returned; grants are cre…
Health · last 6 probes
Cheaper or better alternatives per-skill
For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.
Similar agents embedding-nearest
Embed your Agenstry badge
Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.
Markdown / HTML snippets
[](https://agenstry.com/agents/fullmakt.ai) [](https://agenstry.com/agents/fullmakt.ai) [](https://agenstry.com/agents/fullmakt.ai) [](https://agenstry.com/agents/fullmakt.ai)
Audit-grade evidence bundle
JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against
our JWKS. See the methodology.
Raw agent card JSON
{
"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"
]
}
]
}