Credential Manage Tool
credential_manageManage encrypted credentials for external services. List, create, update, rotate, or delete API keys, OAuth tokens, and more without exposing secret data.
Instructions
Encrypted credential vault for external services (API keys, OAuth2 tokens, basic auth, bearer tokens). Secrets are encrypted at rest with the team's per-tenant key; secret_data is never returned by get — only metadata (name, type, expires_at, last_rotated_at).
Actions:
list (read) — optional: type, status filter.
get (read) — credential_id. Metadata only, secrets redacted.
create (write) — name, type (api_key/oauth2/basic_auth/bearer_token/custom), secret_data (object).
update (write) — credential_id + any creatable field.
delete (DESTRUCTIVE) — credential_id. Hard delete; not recoverable.
rotate (write) — credential_id, new_secret_data. Bumps
last_rotated_atand re-encrypts.oauth_initiate (write) — provider, scopes[]. Returns authorization URL.
oauth_finalize (write) — provider, code (from OAuth callback). Stores tokens, returns credential_id.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list, get, create, update, delete, rotate, oauth_initiate, oauth_finalize | |
| deadline_ms | No | Optional: max wall-clock time (ms) the tool may spend. If exceeded during the call, returns a DEADLINE_EXCEEDED error. Minimum 100 ms. Leave unset for no deadline. | |
| status | No | Filter by status: active, disabled, pending_review | |
| creator_source | No | Filter by creator source: human, agent, system | |
| limit | No | Max results to return (default 10, max 100) | |
| credential_id | Yes | The credential UUID | |
| name | Yes | Credential name | |
| type | Yes | Credential type: api_token, oauth2, basic_auth, ssh_key, custom_kv | |
| secret_data | Yes | Secret data object (e.g. {"token": "..."} or {"username": "...", "password": "..."}) | |
| description | No | Credential description | |
| expires_at | No | Expiration date in ISO 8601 format (e.g. 2025-12-31T23:59:59Z) | |
| agent_id | No | UUID of the agent creating this credential. Sets creator_source=agent and status=pending_review until a human approves it. | |
| service_name | Yes | Human-readable name of the service being authorized (e.g. "GitHub", "Slack") | |
| scopes | No | List of OAuth scopes to request (e.g. ["read:user", "repo"]) | |
| credential_name | No | Name to give the stored credential once OAuth completes | |
| correlation_id | Yes | The correlation_id returned by credential_oauth_initiate |