Access discovery
list_access returns the categories and opaque item IDs available to the current grant without returning stored values or user-assigned item labels.
Docs · MCP tools
Limits checks current access rules for each call. Each tool returns structured data and an audit record.
list_accessShow the categories and items this agent may request without returning stored values.{
"name": "list_access",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"purpose": {
"type": "string",
"minLength": 3,
"maxLength": 200
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
}
},
"additionalProperties": false
}
}get_profileRead approval-free Standard fields from categories this agent can access.{
"name": "get_profile",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"categories": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string"
}
},
"purpose": {
"type": "string",
"minLength": 3,
"maxLength": 200
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
}
},
"required": [
"purpose"
],
"additionalProperties": false
}
}find_itemsFind accessible items by category or opaque item ID. Labels are not disclosed to agents.{
"name": "find_items",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"category": {
"type": "string"
},
"query": {
"type": "string",
"maxLength": 100
},
"purpose": {
"type": "string",
"minLength": 3,
"maxLength": 200
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
}
},
"required": [
"purpose"
],
"additionalProperties": false
}
}get_itemRead permitted fields from one item, or collect it after approval.{
"name": "get_item",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"item_id": {
"type": "string",
"pattern": "^itm_[a-z2-7]{16,26}$"
},
"fields": {
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"purpose": {
"type": "string",
"minLength": 3,
"maxLength": 200
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
},
"request_id": {
"type": "string",
"maxLength": 80
}
},
"required": [
"item_id",
"purpose"
],
"additionalProperties": false
}
}get_otp_codeGet the current one-time code from a permitted OTP item.{
"name": "get_otp_code",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"item_id": {
"type": "string",
"pattern": "^itm_[a-z2-7]{16,26}$"
},
"purpose": {
"type": "string",
"minLength": 3,
"maxLength": 200
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
}
},
"required": [
"item_id",
"purpose"
],
"additionalProperties": false
}
}request_accessAsk the owner to approve additional data paths for this agent.{
"name": "request_access",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"paths": {
"minItems": 1,
"maxItems": 40,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 180
}
},
"purpose": {
"type": "string",
"minLength": 3,
"maxLength": 200
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
},
"duration_hint": {
"type": "string",
"enum": [
"once",
"1d",
"7d",
"always"
]
}
},
"required": [
"paths",
"purpose"
],
"additionalProperties": false
}
}get_request_statusCheck an access request and collect an approved result once.{
"name": "get_request_status",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"request_id": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
}
},
"required": [
"request_id"
],
"additionalProperties": false
}
}request_paymentRequest approval to use an assigned virtual card for one specific purchase.{
"name": "request_payment",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"card_id": {
"type": "string",
"pattern": "^itm_[a-z2-7]{16,26}$"
},
"amount_minor": {
"type": "integer",
"minimum": 1,
"maximum": 1000000000
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$"
},
"merchant": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"purpose": {
"type": "string",
"minLength": 3,
"maxLength": 200
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
}
},
"required": [
"card_id",
"amount_minor",
"currency",
"merchant",
"purpose"
],
"additionalProperties": false
}
}end_taskEnd task-scoped access and one-time approvals for this agent.{
"name": "end_task",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"summary": {
"type": "string",
"maxLength": 200
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
}
},
"additionalProperties": false
}
}register_session_keyRegister an ephemeral P-256 public key for encrypted one-time releases.{
"name": "register_session_key",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"public_key_spki_b64": {
"type": "string",
"minLength": 40,
"maxLength": 200
},
"alg": {
"type": "string",
"const": "ECDH-P256"
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
}
},
"required": [
"public_key_spki_b64",
"alg"
],
"additionalProperties": false
}
}admin_list_agentsList agents inside this manager grant's active delegation envelope.{
"name": "admin_list_agents",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"purpose": {
"type": "string",
"minLength": 3,
"maxLength": 200
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
}
},
"required": [
"purpose"
],
"additionalProperties": false
}
}admin_pause_agentPause a target grant within this manager's delegation envelope.{
"name": "admin_pause_agent",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"target_grant_id": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"purpose": {
"type": "string",
"minLength": 3,
"maxLength": 200
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
}
},
"required": [
"target_grant_id",
"purpose"
],
"additionalProperties": false
}
}admin_resume_agentResume a target grant within this manager's delegation envelope.{
"name": "admin_resume_agent",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"target_grant_id": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"purpose": {
"type": "string",
"minLength": 3,
"maxLength": 200
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
}
},
"required": [
"target_grant_id",
"purpose"
],
"additionalProperties": false
}
}admin_revoke_agentRevoke a target grant within this manager's delegation envelope.{
"name": "admin_revoke_agent",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"target_grant_id": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"purpose": {
"type": "string",
"minLength": 3,
"maxLength": 200
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
}
},
"required": [
"target_grant_id",
"purpose"
],
"additionalProperties": false
}
}admin_update_accessChange a target grant's access within this manager's delegation envelope.{
"name": "admin_update_access",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"target_grant_id": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"changes": {
"minItems": 1,
"maxItems": 80,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "set_category"
},
"category": {
"type": "string"
},
"scope": {
"type": "string",
"enum": [
"none",
"some",
"all"
]
}
},
"required": [
"op",
"category",
"scope"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"enum": [
"allow",
"deny",
"remove"
]
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 180
}
},
"required": [
"op",
"path"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"op": {
"type": "string",
"const": "set_expiry"
},
"expires_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"op",
"expires_at"
],
"additionalProperties": false
}
]
}
},
"purpose": {
"type": "string",
"minLength": 3,
"maxLength": 200
},
"purpose_tag": {
"type": "string",
"enum": [
"booking",
"shopping",
"support",
"coding",
"writing",
"research",
"personal",
"other"
]
}
},
"required": [
"target_grant_id",
"changes",
"purpose"
],
"additionalProperties": false
}
}identityIdentitystandard · field_levelcontactContactstandard · field_leveladdressAddressesstandard · field_levelpreferencesPreferencesstandard · readable_by_defaultpeoplePeoplestandard · per_personwork_contextWork contextstandard · per_spacememoriesMemories and notesstandard · per_space_agent_draftscredentialsCredentialssensitive · category_or_item_first_readcardsVirtual cardsrestricted · per_card_fill_onlycustomCustomstandard · user_defined_fieldslist_access returns the categories and opaque item IDs available to the current grant without returning stored values or user-assigned item labels.
get_profile, find_items, get_item, and get_otp_code request only the fields needed for the current task. Sensitive reads can wait for owner approval. request_access asks for additional scope; get_request_status checks read, scope, and payment requests.
request_payment requests one purchase on a card assigned to this grant. It records the reported amount, currency, merchant, and purpose. Per-purchase approval is the default. A user-held card is released only after the owner approves and is encrypted to the grant's registered client key. Without that key, Limits does not prepare a release. Limits does not charge a card or verify merchant claims.
end_task closes task-scoped grants. register_session_key registers a fresh P-256 ECDH public key for protected releases. Keep the matching private key only in the client and register a new key for a new session.
User-held values stay encrypted in the browser. The browser encrypts only approved fields to the grant's registered P-256 agent key; without that key, the release is not prepared. get_request_status returns a one-time encrypted_release envelope. OTP requests transform the seed into the current code in the browser and encrypt only that code. Decrypt agent-key envelopes with ECDH P-256, HKDF-SHA256, and AES-256-GCM. The HKDF salt is SHA-256(UTF-8("limits|mcp-release|v1|{grant_id}|{request_id}|{item_id}|{version}")); HKDF info is UTF-8("limits|mcp-release|v1"). Use the same context string as AES-GCM additional authenticated data. The envelope includes that context's identifiers, ephemeral_public_key_b64, nonce_b64, ciphertext_b64, and algorithm. Releases expire after two minutes and can be collected once. Keep the matching private key only in the agent client; Limits rejects server-transit releases.