Skip to content
Back to fullmakt-a2a

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"
      ]
    }
  ]
}