# Vee3 (remote · mcp.vee3.io)

Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.

- Trust score: 61/100 (medium)
- Change this week: +1
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.vee3.io`: 61/100 (this document), [markdown](https://verifymcp.io/servers/vee3io-vee3/mcp.md), [page](https://verifymcp.io/servers/vee3io-vee3/mcp)

## Channel facts

- Endpoint: `https://mcp.vee3.io/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 240 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 63/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 34744 tokens (~144/item across 240 items; 240 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 6/100
  - Stability check failed: schema churn in the 8 days we've observed: 62 tool removals, 0 breaking changes, 0 auth/transport breaks, 6 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http vee3io-vee3 https://mcp.vee3.io/mcp
```

### Codex

```toml
[mcp_servers.vee3io-vee3]
url = "https://mcp.vee3.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "vee3io-vee3": {
      "type": "remote",
      "url": "https://mcp.vee3.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add vee3io-vee3 --url https://mcp.vee3.io/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  vee3io-vee3:
    url: "https://mcp.vee3.io/mcp"
```

### Other

```json
{
  "mcpServers": {
    "vee3io-vee3": {
      "type": "http",
      "url": "https://mcp.vee3.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 0 to 2.

### 2026-07-31 (score 60, −1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 61, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 61, +1)

- [functional] This server's schema is too large to store in full, so we cannot compare its tools day to day

### 2026-07-28 (score 60, 0)

- [functional] This server's schema is too large to store in full, so we cannot compare its tools day to day

### 2026-07-27 (score 60, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 60)

First indexed and scored.

## MCP tools (240)

### `clerk.get_instance_settings` (~85 tokens)

Retrieve core settings for a connected Clerk application instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns core instance settings.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `instance_settings`: Core Clerk instance settings from the Backend API.

### `clerk.update_instance_settings` (~215 tokens)

Update core settings for a connected Clerk application instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated instance settings.

Cost = 8 tokens.

Input parameters:

- `allowed_origins`: Allowed browser origins for the instance.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `clerk_js_version`: Pinned Clerk.js version for the instance.
- `development_origin`: Development origin URL for local testing.
- `hibp`: Whether Have I Been Pwned password checking should be enabled.
- `preferred_sign_in_strategy_when_password_required`: Preferred sign-in strategy when a password is required: "password" or "otp".
- `support_email`: Support email address shown to end users.
- `test_mode`: Whether the instance should run in test mode.
- `url_based_session_syncing`: Whether URL-based session syncing should be enabled.

Output parameters:

- `instance_settings`: Updated Clerk instance settings from the Backend API.

### `clerk.update_instance_restrictions` (~181 tokens)

Update sign-up and sign-in restriction settings for a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated instance restrictions.

Cost = 8 tokens.

Input parameters:

- `allowlist`: Whether the allowlist restriction should be enabled.
- `allowlist_blocklist_disabled_on_sign_in`: Whether allowlist and blocklist checks should be skipped during sign-in.
- `block_disposable_email_domains`: Whether disposable email domains should be blocked.
- `block_email_subaddresses`: Whether email subaddresses (plus-addressing) should be blocked.
- `blocklist`: Whether the blocklist restriction should be enabled.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `restrictions`: Updated Clerk instance restrictions from the Backend API.

### `clerk.get_instance_communication_settings` (~86 tokens)

Retrieve SMS communication settings for a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns communication settings.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `communication_settings`: Clerk instance communication settings from the Backend API.

### `clerk.update_instance_communication_settings` (~109 tokens)

Update SMS communication settings for a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated communication settings.

Cost = 8 tokens.

Input parameters:

- `blocked_country_codes`: ISO country codes to block from receiving SMS messages (up to 250).
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `communication_settings`: Updated Clerk instance communication settings from the Backend API.

### `clerk.get_instance_organization_settings` (~87 tokens)

Retrieve organization feature settings for a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns organization feature settings.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `organization_settings`: Clerk instance organization settings from the Backend API.

### `clerk.update_instance_organization_settings` (~214 tokens)

Update organization feature settings for a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated organization settings.

Cost = 8 tokens.

Input parameters:

- `admin_delete_enabled`: Whether organization admins can delete their organization.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `creator_role`: Default role assigned to the organization creator.
- `domains_default_role`: Default role for members who join via a verified organization domain.
- `domains_enabled`: Whether organization domains should be enabled.
- `domains_enrollment_modes`: Allowed organization domain enrollment modes: manual_invitation, automatic_invitation, or automatic_suggestion.
- `enabled`: Whether organizations should be enabled for the instance.
- `initial_role_set_key`: Initial role set key applied to new organizations.
- `max_allowed_memberships`: Maximum organization memberships allowed per user.

Output parameters:

- `organization_settings`: Updated Clerk instance organization settings from the Backend API.

### `clerk.get_instance_oauth_settings` (~85 tokens)

Retrieve OAuth settings for a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns OAuth settings.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `oauth_settings`: Clerk instance OAuth settings from the Backend API.

### `clerk.update_instance_oauth_settings` (~123 tokens)

Update OAuth settings for a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated OAuth settings.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `dynamic_oauth_client_registration`: Whether dynamic OAuth client registration should be enabled.
- `oauth_jwt_access_tokens`: Whether OAuth access tokens should be issued as JWTs.

Output parameters:

- `oauth_settings`: Updated Clerk instance OAuth settings from the Backend API.

### `clerk.change_instance_domain` (~144 tokens)

Change the primary or secondary home URL for a connected Clerk instance.

WARNING: Destructive operation — changing the instance domain invalidates active sessions and may cause brief downtime.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns whether Clerk accepted the domain change request.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `home_url` (string, required): New home URL for the instance domain.
- `is_secondary`: When true, change the secondary domain instead of the primary.

Output parameters:

- `accepted`: Whether Clerk accepted the domain change request.

### `clerk.list_domains` (~87 tokens)

List custom domains configured for a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns custom domain summaries and total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `domains`: Custom domains configured for the connected Clerk instance.
- `total_count`: Total number of domains.

### `clerk.add_domain` (~134 tokens)

Add a custom domain to a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the created domain with CNAME targets for DNS setup.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `is_satellite` (boolean, required): Whether this is a satellite domain.
- `name` (string, required): Domain hostname to add.
- `proxy_url`: Proxy URL when using a satellite domain behind a reverse proxy.

Output parameters:

- `domain`: Created Clerk domain from the Backend API.

### `clerk.update_domain` (~129 tokens)

Update a custom domain on a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated domain.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `domain_id` (string, required): Clerk organization domain id (dmn_...) to update, delete, or verify.
- `name`: Updated domain hostname.
- `proxy_url`: Updated proxy URL for a satellite domain.

Output parameters:

- `domain`: Updated Clerk domain from the Backend API.

### `clerk.delete_domain` (~113 tokens)

Remove a custom domain from a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the deleted domain id and a deleted flag.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `domain_id` (string, required): Clerk organization domain id (dmn_...) to update, delete, or verify.

Output parameters:

- `domain`: Clerk deleted-object payload confirming domain removal.

### `clerk.list_redirect_urls` (~122 tokens)

List allowed redirect URLs for a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns redirect URL summaries and total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit` (integer): Maximum number of redirect URLs to return (1–500).
- `offset` (integer): Number of redirect URLs to skip before returning results.

Output parameters:

- `redirect_urls`: Allowed redirect URLs returned for the requested page.
- `total_count`: Total number of redirect URLs.

### `clerk.create_redirect_url` (~105 tokens)

Add an allowed redirect URL to a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the created redirect URL.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `url` (string, required): Redirect URL to allow for sign-in and sign-up flows.

Output parameters:

- `redirect_url`: Created Clerk redirect URL from the Backend API.

### `clerk.get_redirect_url` (~105 tokens)

Retrieve an allowed redirect URL by id from a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the redirect URL.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `redirect_url_id` (string, required): Clerk redirect URL id to retrieve or delete.

Output parameters:

- `redirect_url`: Clerk redirect URL from the Backend API.

### `clerk.delete_redirect_url` (~109 tokens)

Remove an allowed redirect URL from a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the deleted redirect URL id and a deleted flag.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `redirect_url_id` (string, required): Clerk redirect URL id to retrieve or delete.

Output parameters:

- `redirect_url`: Clerk deleted-object payload confirming redirect URL removal.

### `clerk.get_jwks` (~97 tokens)

Retrieve the JSON Web Key Set (JWKS) for verifying Clerk session tokens.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns public signing keys for verifying Clerk JWTs.

Cost = 2 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `jwks`: Clerk JWKS payload from the Backend API.

### `clerk.list_oauth_applications` (~118 tokens)

List OAuth applications registered in a connected Clerk application when Clerk acts as an OAuth identity provider.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns each application's id, name, client_id, redirect_uris, scopes, public flag, and related endpoint URLs, plus total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `oauth_applications`: OAuth applications in the connected Clerk application.
- `total_count`: Total number of OAuth applications.

### `clerk.create_oauth_application` (~199 tokens)

Create a new OAuth application in a connected Clerk application (Clerk as IdP).

\**Sensitive** — client_secret may be present for confidential clients; do not log or expose it.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the new OAuth application summary.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `consent_screen_enabled`: Whether to show the OAuth consent screen during authorization.
- `name` (string, required): Display name for the new OAuth application.
- `public`: Whether this is a public OAuth client (no client secret; PKCE-capable).
- `redirect_uris`: Allowed redirect URIs for the OAuth authorization flow.
- `scopes`: Space-delimited scopes (e.g. profile email public_metadata).

Output parameters:

- `oauth_application`: Newly created Clerk OAuth application summary.

### `clerk.get_oauth_application` (~114 tokens)

Retrieve a single OAuth application by id from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the OAuth application summary.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `oauth_application_id` (string, required): Clerk OAuth application id (oa_...) to retrieve, update, or delete.

Output parameters:

- `oauth_application`: Clerk OAuth application summary.

### `clerk.update_oauth_application` (~192 tokens)

Update an OAuth application in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated OAuth application summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `consent_screen_enabled`: Whether to show the OAuth consent screen during authorization.
- `name`: New display name for the OAuth application.
- `oauth_application_id` (string, required): Clerk OAuth application id (oa_...) to retrieve, update, or delete.
- `public`: Whether this is a public OAuth client (no client secret; PKCE-capable).
- `redirect_uris`: Replacement list of allowed redirect URIs.
- `scopes`: Space-delimited scopes (e.g. profile email public_metadata).

Output parameters:

- `oauth_application`: Updated Clerk OAuth application summary.

### `clerk.delete_oauth_application` (~116 tokens)

Permanently delete an OAuth application from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the deleted OAuth application object from Clerk.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `oauth_application_id` (string, required): Clerk OAuth application id (oa_...) to retrieve, update, or delete.

Output parameters:

- `oauth_application`: Deleted Clerk OAuth application object from the Backend API.

### `clerk.upload_oauth_application_logo` (~161 tokens)

Upload or replace the logo image for an OAuth application in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated OAuth application summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `file_name` (string, required): Stored file name from files.list_uploaded_files. Upload with files.upload_file first.
- `oauth_application_id` (string, required): Clerk OAuth application id (oa_...) to retrieve, update, or delete.
- `uploader_user_id`: Clerk user id (user_...) credited with the image upload.

Output parameters:

- `oauth_application`: OAuth application summary with updated client_image_url.

### `clerk.rotate_oauth_application_secret` (~147 tokens)

Rotate the client secret for a confidential OAuth application in a connected Clerk application.

\**Sensitive** — the response includes a new client_secret. Update authorized OAuth clients immediately and do not log the secret.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated OAuth application summary with the new client_secret.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `oauth_application_id` (string, required): Clerk OAuth application id (oa_...) to retrieve, update, or delete.

Output parameters:

- `oauth_application`: OAuth application summary with the new client_secret.

### `clerk.ban_users` (~114 tokens)

Ban one or more Clerk users, preventing them from signing in.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated user summaries and total count.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `user_ids` (array, required): List of one or more Clerk user ids (user_...) to ban.

Output parameters:

- `total_count`: Number of users that were banned.
- `users`: Updated user summaries for all banned users.

### `clerk.count_users` (~115 tokens)

Return the total number of users in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Cheaper than listing users when you only need the total count.

Cost = 2 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `query`: Optional filter query forwarded to Clerk (email, phone, username, or external id).

Output parameters:

- `total_count`: Total number of users in the Clerk application.

### `clerk.create_actor_token` (~218 tokens)

Create an actor token that lets one user impersonate another in a connected Clerk application.

\**Sensitive** — the returned token is a high-privilege secret that grants impersonation access; do not log or expose it.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Cost = 15 tokens.

Input parameters:

- `actor_sub` (string, required): Clerk user id (user_...) of the impersonating actor (maps to actor.sub).
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `expires_in_seconds`: Actor token lifetime in seconds (minimum 1). Defaults to 3600 (1 hour).
- `session_max_duration_in_seconds`: Maximum duration in seconds for the session created from this token (minimum 1). Defaults to 1800 (30 minutes).
- `user_id` (string, required): Clerk user id (user_...) of the user being impersonated.

Output parameters:

- `actor_token`: Created Clerk actor token object from the Backend API.

### `clerk.create_admin_portal_link_token` (~183 tokens)

Create an admin portal link token in a connected Clerk instance.

\**Sensitive** — the returned token is a single-use deep-link secret; do not log or expose it.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Cost = 15 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `it_contact_id`: Optional opaque IT contact reference for the link.
- `organization_id`: Optional organization id (org_...) to scope the admin portal link.
- `scopes`: Optional scopes for the link (for example "admin_portal:read").
- `seconds_until_expiration`: Link token lifetime in seconds (default 3600, max 86400).

Output parameters:

- `admin_portal_link_token`: Created admin portal link token from the Backend API.

### `clerk.create_allowlist_identifier` (~151 tokens)

Add an identifier to the allowlist in a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the created allowlist identifier summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `identifier` (string, required): Identifier to allowlist: email, wildcard domain (*@example.com), E.164 phone (+15555555555), or Web3 wallet address.
- `notify`: When true, notify the user by email or SMS that they were added to the allowlist.

Output parameters:

- `identifier`: Created allowlist identifier object from the Backend API.

### `clerk.create_api_key` (~232 tokens)

Create an API key in a connected Clerk application.

\**Sensitive** — the returned secret is a high-privilege credential; do not log or expose it.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the new API key summary.

Cost = 10 tokens.

Input parameters:

- `claims`: Custom claims to embed in tokens minted from this API key.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `created_by`: User id to record as the creator of this API key.
- `description`: Optional description for the API key.
- `key_type`: API key type (typically "api_key").
- `name` (string, required): Human-readable name for the new API key.
- `scopes`: Permission scopes to grant the API key.
- `seconds_until_expiration`: Seconds from creation until the API key expires.
- `subject` (string, required): Subject the API key is scoped to (user_... or org_...).

Output parameters:

- `api_key`: Newly created Clerk API key from the Backend API.

### `clerk.create_blocklist_identifier` (~131 tokens)

Add an identifier to the blocklist in a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Blocked identifiers cannot sign up or sign in. Returns the created blocklist identifier summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `identifier` (string, required): Identifier to block: email, domain, E.164 phone (+15555555555), or Web3 wallet address.

Output parameters:

- `identifier`: Created blocklist identifier object from the Backend API.

### `clerk.create_email_address` (~153 tokens)

Create a new email address for a Clerk user.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the created email address summary.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `email_address` (string, required): Email address to create for the user.
- `primary`: When true, set this email as the user's primary email address.
- `user_id` (string, required): Clerk user id (user_...) to retrieve or modify.
- `verified`: When true, the email address is created as verified.

Output parameters:

- `email_address`: Created Clerk email address summary.

### `clerk.create_enterprise_connection` (~268 tokens)

Create a SAML or OIDC enterprise SSO connection in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the new enterprise_connection summary.

Cost = 10 tokens.

Input parameters:

- `active`: Whether the connection is active.
- `allow_organization_account_linking`: Whether account linking via organization membership is allowed.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `custom_attributes`: Custom attribute mappings from the IdP to user metadata.
- `disable_additional_identifications`: Whether to block additional identifications for this connection.
- `domains` (array, required): Email domains that may use this connection.
- `name` (string, required): Display name for the enterprise connection.
- `oidc`: OIDC client configuration when provider uses OAuth.
- `organization_id`: Clerk organization id (org_...) to link to this connection.
- `provider` (string, required): Identity provider key (for example saml_custom or oidc_custom).
- `saml`: SAML IdP configuration when provider uses SAML.
- `sync_user_attributes`: Whether to sync user attributes on each sign-in.

Output parameters:

- `enterprise_connection`: Newly created enterprise SSO connection.

### `clerk.create_enterprise_connection_test_run` (~128 tokens)

Start an SSO test flow for an enterprise connection in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns a short-lived url that opens the IdP test flow.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `connection_id` (string, required): Clerk enterprise connection id (entc_...) to retrieve, update, delete, or test.

Output parameters:

- `url`: Short-lived URL to start the enterprise SSO test flow.

### `clerk.create_invitations` (~125 tokens)

Invite one or more email addresses to sign up for a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `invitations` (array, required): One or more invitation objects. Each item requires email_address (string). Optional fields per item: role (string), redirect_url (string), public_metadata (object).

Output parameters:

- `invitations`: Created Clerk invitation summaries.

### `clerk.create_jwt_template` (~199 tokens)

Create a new JWT template in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the new template summary.

Cost = 10 tokens.

Input parameters:

- `allowed_clock_skew`: Allowed clock skew in seconds (0–300).
- `claims` (object, required): JWT claims template as a JSON object.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `custom_signing_key`: Whether to use a custom signing key and algorithm.
- `lifetime`: Token lifetime in seconds (30–315360000).
- `name` (string, required): Unique JWT template name.
- `signing_algorithm`: Custom signing algorithm (required when custom_signing_key is true).
- `signing_key`: Custom signing private key (required when custom_signing_key is true).

Output parameters:

- `jwt_template`: Newly created Clerk JWT template summary.

### `clerk.create_m2m_token` (~202 tokens)

Create an M2M token in a connected Clerk instance.

\**Sensitive** — the returned token is a high-privilege secret; do not log or expose it.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the created M2M token.

Cost = 15 tokens.

Input parameters:

- `claims`: Optional custom claims embedded in the token.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `machine_secret_key` (string, required): Machine secret key (msk_...) used to authenticate the create request.
- `min_remaining_ttl_seconds`: For opaque tokens, reuse an existing token with at least this TTL remaining.
- `seconds_until_expiration`: Token lifetime in seconds.
- `token_format`: Token format: "opaque" (default) or "jwt".

Output parameters:

- `m2m_token`: Created M2M token from the Backend API.

### `clerk.create_machine` (~162 tokens)

Create a machine in a connected Clerk instance for machine-to-machine authentication.

\**Sensitive** — the response may include a machine secret_key on creation; do not log or expose it.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `default_token_ttl`: Default M2M token lifetime in seconds (minimum 1).
- `name` (string, required): Machine display name (1–255 characters).
- `scoped_machines`: Machine ids (mch_...) this machine may access (max 150).

Output parameters:

- `machine`: Created machine object from the Backend API.

### `clerk.create_machine_scope` (~128 tokens)

Create a machine scope so one machine can access another.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the created machine scope.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `machine_id` (string, required): Clerk machine id (mch_...) to retrieve or modify.
- `to_machine_id` (string, required): Target machine id (mch_...) to grant access to.

Output parameters:

- `machine_scope`: Created machine scope from the Backend API.

### `clerk.create_organization` (~169 tokens)

Create a new organization in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the new organization summary.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `created_by` (string, required): Clerk user id (user_...) of the user creating the organization.
- `max_allowed_memberships`: Optional maximum number of memberships allowed.
- `name` (string, required): Organization display name.
- `private_metadata`: Optional private metadata as a JSON object.
- `public_metadata`: Optional public metadata as a JSON object.
- `slug`: Optional URL-friendly slug for the organization.

Output parameters:

- `organization`: Newly created Clerk organization summary.

### `clerk.create_organization_domain` (~159 tokens)

Add a domain to a Clerk organization.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the created domain summary.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `enrollment_mode`: Filter or set enrollment mode: manual_invitation, automatic_invitation, or automatic_suggestion.
- `name` (string, required): Domain name to add (for example example.com).
- `organization_id` (string, required): Clerk organization id (org_...) to operate on.
- `verified`: Whether the domain is verified. Defaults to true when omitted.

Output parameters:

- `domain`: Created organization domain summary.

### `clerk.create_organization_invitations` (~150 tokens)

Invite one or more email addresses to join a Clerk organization with specific roles.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the list of created invitation summaries.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `invitations` (array, required): One or more invitation objects. Each item requires email_address (string) and role (string, e.g. org:admin, org:member).
- `organization_id` (string, required): Clerk organization id (org_...) to operate on.

Output parameters:

- `invitations`: Created invitation summaries.

### `clerk.create_organization_membership` (~156 tokens)

Add a user to a Clerk organization with a specified role.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the created membership.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `organization_id` (string, required): Clerk organization id (org_...) to add the member to.
- `role` (string, required): Role to assign to the user in the organization (e.g. org:member, org:admin).
- `user_id` (string, required): Clerk user id (user_...) of the user to add.

Output parameters:

- `membership`: Created organization membership.

### `clerk.create_organization_permission` (~115 tokens)

Create a new organization permission in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the new permission summary.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `description`: Permission description.
- `key` (string, required): Unique permission key.
- `name` (string, required): Permission display name.

Output parameters:

- `organization_permission`: Newly created organization permission summary.

### `clerk.create_organization_role` (~147 tokens)

Create a new organization role in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the new role summary.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `description`: Role description.
- `include_in_initial_role_set`: Whether to include this role in the initial role set.
- `key` (string, required): Unique role key.
- `name` (string, required): Role display name.
- `permissions`: Permission keys to assign to the new role.

Output parameters:

- `organization_role`: Newly created organization role summary.

### `clerk.create_phone_number` (~177 tokens)

Create a phone number for a Clerk user.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the created phone number summary.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `phone_number` (string, required): Phone number in E.164 format (e.g. +15551234567).
- `primary`: Whether this should be the user's primary phone number.
- `reserved_for_second_factor`: Whether to reserve this number for multi-factor authentication.
- `user_id` (string, required): Clerk user id (user_...) to retrieve or modify.
- `verified`: Whether the phone number should be marked verified. Defaults to false.

Output parameters:

- `phone_number`: Created Clerk phone number object from the Backend API.

### `clerk.create_session` (~133 tokens)

Create a new session for a Clerk user in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the created session object with id, user_id, status, last_active_at, expire_at, client_id, created_at, and updated_at.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `user_id` (string, required): Clerk user id (user_...) to create a session for.

Output parameters:

- `client_id`: Clerk client id associated with this session.
- `created_at`: Unix timestamp in milliseconds when the session was created.
- `expire_at`: Unix timestamp in milliseconds when this session expires.
- `id`: Clerk session id (sess_...).
- `last_active_at`: Unix timestamp in milliseconds of the last activity on this session.
- `status`: Current status of the session.
- `updated_at`: Unix timestamp in milliseconds when the session was last updated.
- `user_id`: Clerk user id (user_...) that owns this session.

### `clerk.create_session_token` (~174 tokens)

Create a session token (JWT) for an active session in a connected Clerk application. Optionally pass template_name to create the token from a named JWT template. **Sensitive** — the returned JWT grants access on behalf of the user; do not log or expose it.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns a jwt field containing the signed token.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `session_id` (string, required): Clerk session id (sess_...) to retrieve or modify.
- `template_name`: Optional JWT template name. When set, the session token is created from that template.

Output parameters:

- `jwt`: Signed JWT for the session. Treat as a secret — do not log.

### `clerk.create_sign_in_token` (~174 tokens)

Create a sign-in token for a user in a connected Clerk application. The token can be used once to sign the user in without credentials (magic-link style).

\**Sensitive** — the returned token is a high-privilege secret that grants sign-in access; do not log or expose it.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Cost = 15 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `expires_in_seconds`: Token lifetime in seconds (minimum 1). Defaults to 2592000 (30 days).
- `user_id` (string, required): Clerk user id (user_...) to retrieve or modify.

Output parameters:

- `sign_in_token`: Created Clerk sign-in token object from the Backend API.

### `clerk.create_svix_app` (~97 tokens)

Create a Svix app and associate it with a connected Clerk application for webhook delivery.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns a temporary svix_url from Clerk.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `svix`: Svix app response from the Clerk Backend API.

### `clerk.create_svix_dashboard_url` (~114 tokens)

Generate a temporary URL for accessing the Svix management dashboard for a connected Clerk application.

\**Sensitive** — the returned URL grants access to webhook configuration; do not log or expose it.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns svix_url.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `svix`: Temporary Svix dashboard URL from the Clerk Backend API.

### `clerk.create_user` (~129 tokens)

Create a user in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `email_address` (string, required): Primary email address for the new Clerk user.
- `first_name`: Optional first name.
- `last_name`: Optional last name.
- `password`: Optional password. Omit to create a user without a password.

Output parameters:

- `user`: Created Clerk user object from the Backend API.

### `clerk.create_waitlist_entries` (~143 tokens)

Add one or more email addresses to the waitlist in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the created or existing waitlist entries.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `waitlist_entries` (array, required): One or more waitlist entry objects. Each item requires email_address (string). Optional fields per item: notify (boolean; whether to notify the user their email was added; defaults to true).

Output parameters:

- `waitlist_entries`: Created or existing Clerk waitlist entry summaries.

### `x-twitter.create_bookmark` (~152 tokens)

Bookmark a post for a connected X account.

Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.

Cost = 30 tokens.

Input parameters:

- `post_id` (string, required): Numeric id of the post to bookmark.
- `user_id`: Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.
- `user_name`: X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.

Output parameters:

- `bookmarked`: Whether the post is bookmarked after this request.
- `user_id`: Numeric X user id of the connected account.
- `user_name`: X handle of the connected account.

### `x-twitter.create_post` (~678 tokens)

Publish a post to a connected X account via the official X API (POST /2/tweets).

Call x-twitter.connected_accounts first. If accounts is empty, the user must connect an X account at https://vee3.io/dashboard/connections before posting. Agents cannot complete OAuth; ask the user to connect, then call x-twitter.connected_accounts again.

Pass user_id or user_name to target a specific account, not both. Omit both to use the default connected account.

At least one of text, poll, media, or card_uri is required.

Supports text, polls, media attachments, reply settings, paid partnership disclosure, AI-generated labels, super-follower exclusivity, nullcast posts, cards, communities, and direct-message deep links.

To attach media, upload files with files.upload_file and the @vee3/upload CLI, then pass file_name values returned by files.list_uploaded_files in the media array (up to 4 files). Only files listed by list_uploaded_files can be attached. poll, media, and card_uri are mutually exclusive in the X API.

Token pricing: 60 tokens base for text posts. Posts whose text includes a URL are billed 1000 tokens base instead. Attaching only media (an image or video) without a URL in the text does not trigger the URL rate. Each attached image adds 50 tokens. Each attached video adds 150 tokens plus 50 tokens per 5 MB of video size.

X rate limit: 100 POST /2/tweets requests per connected user per 15 minutes. Wait and retry if posting is temporarily blocked.

If X authorization fails, reconnect the account in the Vee3 dashboard. Read the error message when X rejects a post and adjust the request.

Input parameters:

- `card_uri`: Card URI for the post. Mutually exclusive with poll and media.
- `community_id`: Community id when posting to an X community.
- `direct_message_deep_link`: Deep link that moves the conversation into Direct Messages.
- `for_super_followers_only`: Whether the post is exclusive to super followers.
- `made_with_ai`: Whether the post contains AI-generated media.
- `media` (array): File names from files.list_uploaded_files to attach (up to 4). Upload with files.upload_file and @vee3/upload first, then list_uploaded_files to get the stored file_name values.
- `nullcast`: Whether the post is promoted-only and hidden from the public timeline.
- `paid_partnership`: Whether the post is a paid partnership.
- `poll`: Poll object with options (2-4 strings) and duration_minutes (5-10080).
- `reply_settings`: Who can reply to the post.
- `share_with_followers`: Whether to share a community post with followers too.
- `text`: Post text content. At least one of text, poll, media, or card_uri is required.
- `user_id`: Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.
- `user_name`: X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.

Output parameters:

- `text`: Post text returned by the X API.
- `tweet_id`: Numeric id of the created or edited post.
- `user_id`: Numeric X user id of the connected account that published the post.
- `user_name`: X handle of the connected account that published the post.

### `clerk.delete_allowlist_identifier` (~110 tokens)

Remove an allowlist identifier by id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns a deleted confirmation.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `identifier_id` (string, required): Allowlist or blocklist identifier id (alid_... or blid_...) to delete.

Output parameters:

- `deleted_identifier`: Clerk deleted-object payload confirming removal.

### `clerk.delete_api_key` (~119 tokens)

Permanently delete an API key from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the deleted API key id and a deleted flag.

Cost = 10 tokens.

Input parameters:

- `api_key_id` (string, required): Clerk API key id (ak_...) to retrieve, update, delete, or revoke.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `api_key`: Deletion confirmation with API key id and deleted flag.

### `clerk.delete_blocklist_identifier` (~110 tokens)

Remove a blocklist identifier by id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns a deleted confirmation.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `identifier_id` (string, required): Allowlist or blocklist identifier id (alid_... or blid_...) to delete.

Output parameters:

- `deleted_identifier`: Clerk deleted-object payload confirming removal.

### `clerk.delete_email_address` (~112 tokens)

Delete a Clerk email address by its id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the deleted email address summary when Clerk provides it.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `email_address_id` (string, required): Clerk email address id (idn_...) to retrieve or modify.

Output parameters:

- `email_address`: Deleted Clerk email address summary, when returned by Clerk.

### `clerk.delete_enterprise_connection` (~118 tokens)

Delete an enterprise SSO connection from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the deleted enterprise connection object from Clerk.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `connection_id` (string, required): Clerk enterprise connection id (entc_...) to retrieve, update, delete, or test.

Output parameters:

- `enterprise_connection`: Deleted enterprise connection object returned by Clerk.

### `clerk.delete_jwt_template` (~122 tokens)

Permanently delete a JWT template from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

This action is irreversible. Returns the deleted template id and a deleted flag.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `template_id` (string, required): Clerk JWT template id (jtmp_...) to retrieve, update, or delete.

Output parameters:

- `jwt_template`: Deletion confirmation with template id and deleted flag.

### `clerk.delete_machine` (~105 tokens)

Delete a machine by id from a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns a deletion confirmation.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `machine_id` (string, required): Clerk machine id (mch_...) to retrieve or modify.

Output parameters:

- `deleted_machine`: Deleted machine confirmation from the Backend API.

### `clerk.delete_machine_scope` (~129 tokens)

Delete a machine scope, removing access from one machine to another.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns a deletion confirmation.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `machine_id` (string, required): Clerk machine id (mch_...) to retrieve or modify.
- `scope_id` (string, required): Target machine id (mch_...) for the scope to remove.

Output parameters:

- `deleted_machine_scope`: Deleted machine scope confirmation from the Backend API.

### `clerk.delete_organization` (~114 tokens)

Permanently delete an organization from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

This action is irreversible. Returns the deleted organization id and a deleted flag.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `organization_id` (string, required): Clerk organization id (org_...) to operate on.

Output parameters:

- `organization`: Deletion confirmation with organization id and deleted flag.

### `clerk.delete_organization_domain` (~114 tokens)

Remove an organization domain from a Clerk organization.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the deleted domain id and a deleted flag.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `domain_id` (string, required): Clerk organization domain id (dmn_...) to update, delete, or verify.

Output parameters:

- `deleted_domain`: Deletion confirmation with domain id and deleted flag.

### `clerk.delete_organization_membership` (~126 tokens)

Remove a user from a Clerk organization.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

This action cannot be undone.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `organization_id` (string, required): Clerk organization id (org_...) to remove the member from.
- `user_id` (string, required): Clerk user id (user_...) of the member to remove.

Output parameters:

- `membership`: Deleted organization membership object, when returned.

### `clerk.delete_organization_permission` (~103 tokens)

Delete an organization permission from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the Clerk deletion payload.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `permission_id` (string, required): Clerk organization permission id to update or delete.

Output parameters:

- `organization_permission`: Clerk deletion payload for the organization permission.

### `clerk.delete_organization_role` (~106 tokens)

Delete an organization role from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the Clerk deletion payload.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `role_id` (string, required): Clerk organization role id to retrieve, update, or delete.

Output parameters:

- `organization_role`: Clerk deletion payload for the organization role.

### `clerk.delete_phone_number` (~116 tokens)

Delete a Clerk phone number by id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

This action cannot be undone. Returns a deleted confirmation.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `phone_number_id` (string, required): Clerk phone number id (idn_... or phn_...) to retrieve or modify.

Output parameters:

- `deleted`: Deleted object confirmation from the Clerk Backend API.

### `clerk.delete_svix_app` (~93 tokens)

Delete the Svix app associated with a connected Clerk application and disassociate webhook delivery.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns a deleted confirmation.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `svix`: Deletion confirmation for the Svix app.

### `clerk.delete_user` (~102 tokens)

Permanently delete a Clerk user by user id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

This action cannot be undone.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `user_id` (string, required): Clerk user id (user_...) to delete.

Output parameters:

- `user`: Deleted Clerk user object from the Backend API, when returned.

### `clerk.delete_user_backup_codes` (~105 tokens)

Delete all MFA backup codes for a Clerk user.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated user object.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `user_id` (string, required): Clerk user id (user_...) to operate on.

Output parameters:

- `user`: Updated Clerk user object after backup codes were removed.

### `clerk.delete_user_external_account` (~130 tokens)

Delete (unlink) an external OAuth or social account from a Clerk user.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the deleted external account.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `external_account_id` (string, required): External account id (for example ea_...) to unlink.
- `user_id` (string, required): Clerk user id (user_...) to operate on.

Output parameters:

- `external_account`: Deleted external account object from the Clerk Backend API.

### `clerk.delete_user_passkey` (~123 tokens)

Delete a passkey for a Clerk user by passkey id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated user object.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `passkey_id` (string, required): Passkey identification id to delete.
- `user_id` (string, required): Clerk user id (user_...) to operate on.

Output parameters:

- `user`: Updated Clerk user object after the passkey was removed.

### `clerk.delete_user_totp` (~106 tokens)

Delete all TOTP authenticators for a Clerk user.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated user object.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `user_id` (string, required): Clerk user id (user_...) to operate on.

Output parameters:

- `user`: Updated Clerk user object after TOTP was removed.

### `clerk.delete_user_web3_wallet` (~123 tokens)

Delete a Web3 wallet for a Clerk user.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated user object.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `user_id` (string, required): Clerk user id (user_...) to operate on.
- `web3_wallet_id` (string, required): Web3 wallet identification id to delete.

Output parameters:

- `user`: Updated Clerk user object after the Web3 wallet was removed.

### `clerk.delete_waitlist_entry` (~113 tokens)

Delete a pending waitlist entry from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the Clerk deleted-object payload.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `waitlist_entry_id` (string, required): Clerk waitlist entry id (wle_...) to operate on.

Output parameters:

- `deleted`: Clerk deleted-object payload.

### `files.delete_file` (~77 tokens)

Permanently delete a file from the authenticated account's upload storage.

Pass file_name from files.list_uploaded_files. The file is removed from storage and any linked upload session is marked expired.

Cost = 0 tokens.

Input parameters:

- `file_name` (string, required): Relative file name or path to delete. Use files.list_uploaded_files to see available names.

Output parameters:

- `file_name`: Deleted file name.

### `x-twitter.delete_bookmark` (~154 tokens)

Remove a bookmarked post for a connected X account.

Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.

Cost = 30 tokens.

Input parameters:

- `post_id` (string, required): Numeric id of the bookmarked post to remove.
- `user_id`: Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.
- `user_name`: X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.

Output parameters:

- `bookmarked`: Whether the post is bookmarked after this request.
- `user_id`: Numeric X user id of the connected account.
- `user_name`: X handle of the connected account.

### `x-twitter.delete_post` (~152 tokens)

Delete a post published by a connected X account.

Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.

Cost = 25 tokens.

Input parameters:

- `post_id` (string, required): Numeric id of the post to delete.
- `user_id`: Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.
- `user_name`: X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.

Output parameters:

- `deleted`: Whether the post was deleted.
- `user_id`: Numeric X user id of the connected account.
- `user_name`: X handle of the connected account.

### `meta-tools.describe` (~109 tokens)

Describe a single Vee3 capability.

Pass the MCP tool name (for example `website-screenshots.capture`) or capability id (for example `website-screenshot`). Use this after meta-tools.list_group_tools when you need parameter names, defaults, response fields, examples, and token cost before calling a tool

Cost = 0 tokens.

Input parameters:

- `tool_name` (string, required): MCP tool name (for example `x-twitter.create_post`) or capability id (for example `create-x-post`).

Output parameters:

- `capability_id`: Described capability id.
- `tool`: Full capability detail including fields, examples, and bindings.

### `clerk.disable_user_mfa` (~115 tokens)

Disable all MFA methods (SMS, TOTP, and similar) for a Clerk user at once.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated user object.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `user_id` (string, required): Clerk user id (user_...) to operate on.

Output parameters:

- `user`: Updated Clerk user object after MFA was disabled.

### `domains.check_availability` (~76 tokens)

Check domain name availability for up to ten domains in one request.

Returns a JSON object whose keys are the requested domain names and whose values are booleans: true if the domain appears available, false if it is taken.

Cost = 5 tokens.

Input parameters:

- `domains` (array, required): Domain names to check (maximum 10).

### `domains.dns_records` (~121 tokens)

Fetch DNS records for a domain.

Returns an array of records. Each record includes name, ttl, type (for example A, AAAA, CNAME, MX, NS, SOA, TXT), and data (record value).

Optionally pass subdomain to include records for a host under the domain (for example blog for blog.example.com).

Cost = 2 tokens.

Input parameters:

- `domain` (string, required): Domain name to look up (for example example.com).
- `subdomain`: Optional subdomain label to include (for example www or blog).

Output parameters:

- `records`: DNS records returned for the domain.

### `domains.lookup` (~107 tokens)

Look up a domain and return normalized registration details.

Combines registry and registrar RDAP and WHOIS sources to return the most accurate normalized fields across TLDs: availability, domain status, created/updated/expiry dates, registrar data, contact records, and nameservers.

Use this when you need registrant-oriented summary data rather than raw WHOIS or RDAP payloads.

Cost = 5 tokens.

Input parameters:

- `domain` (string, required): Domain name to look up (for example example.com).

Output parameters:

- `availability`: Availability state (for example registered or available).
- `contacts`: Registrant, admin, tech, and billing contact records.
- `dates`: Registration lifecycle dates.
- `domain`: Looked-up domain name.
- `keyword`: Second-level domain label without the TLD.
- `nameservers`: Authoritative nameserver host names.
- `registrar`: Registrar summary data.
- `source`: Primary data source used for the normalized response.
- `status`: Normalized EPP status codes.
- `tld`: Top-level domain suffix.

### `domains.metrics` (~128 tokens)

Analyze a domain with comprehensive SEO metrics, backlink data, and social signals.

Returns authority metrics (Moz domain/page authority, Ahrefs domain rating, Majestic trust and citation flow), backlink profile counts (total backlinks, referring domains, EDU/GOV links), traffic and keyword estimates (organic traffic, traffic value, organic keywords, Ahrefs rank), social signals (Facebook shares/comments, Pinterest pins, StumbleUpon), and technical data (IP addresses, subnets, topical trust flow categories).

Cost = 40 tokens.

Input parameters:

- `domain` (string, required): Domain name to analyze (for example example.com).

Output parameters:

- `FB_comments`: Total Facebook comments.
- `FB_shares`: Total Facebook shares.
- `ahrefsBacklinks`: Total number of backlinks from Ahrefs.
- `ahrefsDR`: Ahrefs domain rating (0-100).
- `ahrefsOrganicKeywords`: Number of ranking organic keywords.
- `ahrefsRank`: Global website ranking from Ahrefs.
- `ahrefsRefDomains`: Number of unique referring domains from Ahrefs.
- `ahrefsTraffic`: Estimated monthly organic traffic.
- `ahrefsTrafficValue`: Estimated value of organic traffic.
- `domain`: Analyzed domain name.
- `last_updated`: When the metrics snapshot was last updated.
- `majesticCF`: Majestic citation flow score (0-100).
- `majesticLinks`: Total links from the Majestic database.
- `majesticTF`: Majestic trust flow score (0-100).
- `mozDA`: Moz domain authority score (0-100).
- `mozPA`: Moz page authority score (0-100).
- `pinterest_pins`: Total Pinterest saves.
- `stumbles`: Total StumbleUpon shares.

### `domains.rdap` (~79 tokens)

Look up raw RDAP (Registration Data Access Protocol) data for a domain.

Returns registrar entities, domain status codes, registration and expiration events, nameservers, DNSSEC delegation data, RDAP conformance labels, and registry notices.

Cost = 3 tokens.

Input parameters:

- `domain` (string, required): Domain name to look up (for example example.com).

Output parameters:

- `entities`: Registrar, registrant, and related RDAP entities.
- `events`: Registration, expiration, and last-changed timestamps.
- `ldhName`: Domain name in LDH form.
- `nameservers`: Authoritative nameservers for the domain.
- `objectClassName`: RDAP object class (for example domain).
- `secureDNS`: DNSSEC delegation and DS record data.
- `status`: EPP status codes for the domain.

### `domains.tld_details` (~106 tokens)

Look up detailed registry information for a single top-level domain (TLD).

Returns status, TLD type, availability phase, WHOIS and RDAP servers, registry URL, domain counts, delegation dates, registry organization, administrative/technical contacts, and remarks.

Pass the TLD suffix without a leading dot (for example io or com).

Cost = 1 token.

Input parameters:

- `tld` (string, required): TLD suffix to look up without a leading dot (for example io).

Output parameters:

- `availability`: Registration phase for the TLD.
- `changed`: TLD record last changed timestamp.
- `contacts`: Registry contact records.
- `created`: TLD delegation created timestamp.
- `domains_count`: Approximate registered domain count when reported by the registry.
- `level`: TLD level (1 for standard TLDs).
- `organization`: Registry operator contact details.
- `rdap_server`: Authoritative RDAP server URL.
- `registry_url`: Registry web site URL.
- `remarks`: Additional registry notes or links.
- `status`: Delegation status (for example ACTIVE).
- `tld`: TLD suffix without a leading dot.
- `type`: TLD category (for example country-code or generic).
- `whois_server`: Authoritative WHOIS server host name.

### `domains.list_tlds` (~209 tokens)

List or search top-level domains (TLDs) with registry metadata.

Filter by substring search, availability phase, TLD category, and paginate with limit and page. limit defaults to 100 when omitted. Each result includes the TLD suffix, type, availability phase, WHOIS server, domain counts when known, registry organization details, and created/changed timestamps.

availability values: general-availability (open for normal registration) or sunrise (trademark sunrise period before general availability).

Cost = 2 tokens.

Input parameters:

- `availability`: Filter by registration phase: general-availability (normal public registration) or sunrise (early trademark-holder period).
- `limit`: Maximum number of TLDs to return. Defaults to 100 when omitted.
- `page`: Page number for paginated results.
- `search`: Return TLDs whose suffix contains this substring.
- `tld_type`: Filter by TLD category: country-code, generic, generic-restricted, infrastructure, or sponsored.

Output parameters:

- `tlds`: Matching top-level domain records.

### `domains.whois` (~145 tokens)

Fetch WHOIS registration data for a domain.

Returns a JSON object keyed by WHOIS server host name. Each value contains parsed fields such as Domain Name, registrar details, dates, name servers, domain status, DNSSEC data, and raw text lines.

Set include_registrar to true to query registry and registrar servers (slower, more complete). Default false queries the registry server only.

Cost = 4 tokens.

Input parameters:

- `domain` (string, required): Domain name to look up (for example example.com).
- `include_registrar` (boolean): When true, query registry and registrar WHOIS servers for more complete data. When false (default), query the registry server only.

### `files.download_file` (~194 tokens)

Reserve a direct download for a previously uploaded file.

Pass the file_name from files.list_uploaded_files (paths such as folder/subfolder/name.ext are supported). Vee3 returns a download_code.

Install the Vee3 CLI once with `npm install -g @vee3/cli` (requires Node 18+), then run `vee3-get-file {download_code} ./path/to/save` in the terminal. The CLI does not need an API key.

If installation fails with a TLS or certificate error (common on networks that inspect HTTPS traffic), use Node 22.15 or newer and run with NODE_OPTIONS=--use-system-ca, or configure npm to trust your network's root certificate.

Download codes can be resolved within 60 minutes of reserve.

Cost = 0 tokens.

Input parameters:

- `file_name` (string, required): Relative file name or path to download. Use files.list_uploaded_files to see available names.

Output parameters:

- `command`: Suggested terminal command for downloading to a local path.
- `content_type`: MIME type on the stored object when known.
- `download_code`: Short code to pass to the @vee3/get-file CLI.
- `download_id`: Stable identifier for the reserved download.
- `expires_at`: ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve).
- `file_name`: Stored file name.
- `install_command`: One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca.
- `size_bytes`: Object size in bytes when known.
- `troubleshooting`: What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps.

### `tiktok.download_music` (~125 tokens)

Download a TikTok music track so the user or agent can save and reuse it.

Provide either music_id or music_url, not both. The file is saved to account file storage. The response includes file_url for API users and download_code for agents to run `vee3-get-file`.

Cost = 10 tokens.

Input parameters:

- `file_name`: Optional account-relative storage path for the music file. If omitted, the file is stored under downloads/ with a generated name.
- `music_id`: TikTok music id.
- `music_url`: TikTok music page URL.

Output parameters:

- `command`: Suggested terminal command for downloading to a local path.
- `content_type`: MIME type of the music file.
- `download_code`: Short code to pass to the @vee3/cli `vee3-get-file` command.
- `download_id`: Stable identifier for the reserved agent download session.
- `expires_at`: ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve).
- `file_name`: Account-relative path where the file was stored.
- `file_size_bytes`: Music file size in bytes.
- `file_url`: Signed download URL from account file storage.
- `install_command`: One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca.
- `retained_until`: ISO 8601 timestamp when account storage retention expires.
- `tiktok_download_id`: Unique TikTok download operation identifier, prefix td_.
- `troubleshooting`: What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps.

### `tiktok.download_music_from_video` (~127 tokens)

Download music from a TikTok video so the user or agent can save and reuse it.

Provide either video_id or video_url, not both. The file is saved to account file storage. The response includes file_url for API users and download_code for agents to run `vee3-get-file`.

Cost = 10 tokens.

Input parameters:

- `file_name`: Optional account-relative storage path for the music file. If omitted, the file is stored under downloads/ with a generated name.
- `video_id`: TikTok video id.
- `video_url`: TikTok video URL.

Output parameters:

- `command`: Suggested terminal command for downloading to a local path.
- `content_type`: MIME type of the music file.
- `download_code`: Short code to pass to the @vee3/cli `vee3-get-file` command.
- `download_id`: Stable identifier for the reserved agent download session.
- `expires_at`: ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve).
- `file_name`: Account-relative path where the file was stored.
- `file_size_bytes`: Music file size in bytes.
- `file_url`: Signed download URL from account file storage.
- `install_command`: One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca.
- `retained_until`: ISO 8601 timestamp when account storage retention expires.
- `tiktok_download_id`: Unique TikTok download operation identifier, prefix td_.
- `troubleshooting`: What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps.

### `tiktok.download_video` (~154 tokens)

Download a TikTok video so the user or agent can save and reuse it.

Provide either video_id or video_url, not both. The file is saved to account file storage. The response includes file_url for API users and download_code for agents to run `vee3-get-file`.

Cost = 10 tokens.

Input parameters:

- `file_name`: Optional account-relative storage path for the video. If omitted, the file is stored under downloads/ with a generated name.
- `quality` (string): Video quality to download. 'standard' is default quality; 'hd' is high definition. Only one selected quality is downloaded.
- `video_id`: TikTok video id.
- `video_url`: TikTok video URL.

Output parameters:

- `command`: Suggested terminal command for downloading to a local path.
- `content_type`: MIME type of the downloaded file.
- `download_code`: Short code to pass to the @vee3/cli `vee3-get-file` command.
- `download_id`: Stable identifier for the reserved agent download session.
- `expires_at`: ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve).
- `file_name`: Account-relative path where the file was stored.
- `file_size_bytes`: Downloaded file size in bytes.
- `file_url`: Signed download URL from account file storage.
- `install_command`: One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca.
- `quality`: Echo of the requested video quality (standard or hd).
- `retained_until`: ISO 8601 timestamp when account storage retention expires.
- `tiktok_download_id`: Unique TikTok download operation identifier, prefix td_.
- `troubleshooting`: What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps.

### `x-twitter.edit_post` (~320 tokens)

Edit a recent post from a connected X account.

Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.

Requires post_id and at least one of text, media, paid_partnership, or made_with_ai.

Edits must be within X's one-hour window after posting. The authenticated X account may need X Premium for API edits. Posts with polls and some other types cannot be edited. Each edit returns a new post_id.

To attach media, upload files with files.upload_file and pass file_name values from files.list_uploaded_files.

Token pricing matches x-twitter.create_post: 60 tokens base, 1000 with URL, plus media surcharges.

Input parameters:

- `made_with_ai`: Whether the post contains AI-generated media.
- `media` (array): File names from files.list_uploaded_files to attach (up to 4). Upload with files.upload_file first.
- `paid_partnership`: Whether the post is a paid partnership.
- `post_id` (string, required): Numeric id of the post to edit.
- `text`: Updated post text.
- `user_id`: Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.
- `user_name`: X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.

Output parameters:

- `post_id`: Numeric id of the edited post returned by the X API.
- `text`: Post text returned by the X API.
- `user_id`: Numeric X user id of the connected account.
- `user_name`: X handle of the connected account.

### `files.extend_file` (~135 tokens)

Extend retention for a file that was uploaded with files.upload_file and appears in files.list_uploaded_files with retained_until.

Adds additional_retention_days to the current schedule (or from now if retention already expired). Only files with a completed upload session and retention metadata can be extended.

Cost = max(1, ceil(size_gibibytes * additional_retention_days * 2)) tokens.

Input parameters:

- `additional_retention_days` (integer, required): Days to add to the file's retention schedule.
- `file_name` (string, required): Relative file name or path to extend. Use files.list_uploaded_files and choose a file that includes retained_until.

Output parameters:

- `additional_retention_days`: Days added in this request.
- `file_name`: Extended file name.
- `retained_until`: ISO 8601 timestamp when the file is now scheduled to be removed.
- `size_bytes`: File size in bytes used for billing.
- `token_cost`: Tokens billed for this extension.

### `clerk.get_api_key` (~117 tokens)

Retrieve API key metadata by id from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the API key summary without the secret.

Cost = 3 tokens.

Input parameters:

- `api_key_id` (string, required): Clerk API key id (ak_...) to retrieve, update, delete, or revoke.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `api_key`: Clerk API key metadata from the Backend API.

### `clerk.get_api_key_secret` (~135 tokens)

Reveal the secret for an API key in a connected Clerk application.

\**Sensitive** — the returned secret is a high-privilege credential; do not log or expose it.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns secret.

Cost = 5 tokens.

Input parameters:

- `api_key_id` (string, required): Clerk API key id (ak_...) to retrieve, update, delete, or revoke.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `secret`: API key secret value. Treat as high-privilege — do not log.

### `clerk.get_connected_accounts` (~110 tokens)

List Clerk applications connected to the authenticated Vee3 account.

Returns clerk_instance_id, display name, environment type, and whether each connection is the default. Use clerk_instance_id on future Clerk calls, or omit it to use the default account.

If accounts is empty, the user must connect a Clerk application at https://vee3.io/dashboard/connections before Clerk capabilities work. Agents cannot complete the connection flow; ask the user to connect, then call this tool again.

Cost = 0 tokens.

Output parameters:

- `accounts`: Active connected Clerk applications for the authenticated Vee3 account.

### `clerk.get_development_api_keys` (~173 tokens)

Return the Publishable Key and Secret Key for a connected development Clerk instance so the agent can configure a local app env (NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY).

\**Sensitive** — the returned Secret Key is a high-privilege credential; do not log or expose it.

Development only. Production connections are refused.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

If the connection was created before Publishable Keys were stored, ask the user to reconnect the Clerk application at https://vee3.io/dashboard/connections.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) for the connected development app.
- `environment_type`: Always "development" when this capability succeeds.
- `publishable_key`: Clerk Publishable Key (pk_test_...). Safe for frontend env vars; do not treat as a secret equivalent to the Secret Key.
- `secret_key`: Clerk Secret Key (sk_test_...). Treat as high-privilege — do not log.

### `clerk.get_email_address` (~107 tokens)

Retrieve a Clerk email address by its id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the email address summary.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `email_address_id` (string, required): Clerk email address id (idn_...) to retrieve or modify.

Output parameters:

- `created_at`: Unix timestamp in milliseconds when the email address was created.
- `email_address`: Email address value.
- `id`: Clerk email address id (idn_...).
- `primary`: Whether this is the user's primary email address.
- `updated_at`: Unix timestamp in milliseconds when the email address was last updated.
- `user_id`: Clerk user id (user_...) that owns this email address.
- `verification_status`: Verification status (e.g. verified, unverified, failed).
- `verified`: Whether the email address is verified.

### `clerk.get_enterprise_connection` (~125 tokens)

Retrieve a single enterprise SSO connection from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the enterprise_connection summary including SAML or OIDC configuration when present.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `connection_id` (string, required): Clerk enterprise connection id (entc_...) to retrieve, update, delete, or test.

Output parameters:

- `enterprise_connection`: Enterprise SSO connection details.

### `clerk.get_instance` (~108 tokens)

Retrieve the connected Clerk application instance id and environment type.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the Clerk instance id (ins_...) and environment_type (development or production). App display names are not available from the Backend API.

Cost = 2 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `instance`: Connected Clerk instance metadata.

### `clerk.get_jwt_template` (~135 tokens)

Retrieve a single JWT template from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns id, name, claims, lifetime, allowed_clock_skew, created_at, updated_at, signing_algorithm, and custom_signing_key.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `template_id` (string, required): Clerk JWT template id (jtmp_...) to retrieve, update, or delete.

Output parameters:

- `jwt_template`: Clerk JWT template details.

### `clerk.get_machine` (~108 tokens)

Retrieve a machine by id from a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns machine metadata including scoped_machines.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `machine_id` (string, required): Clerk machine id (mch_...) to retrieve or modify.

Output parameters:

- `machine`: Machine object from the Backend API.

### `clerk.get_machine_secret_key` (~128 tokens)

Retrieve the secret key for a machine in a connected Clerk instance.

\**Sensitive** — the returned secret grants machine authentication; do not log or expose it.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the machine secret key.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `machine_id` (string, required): Clerk machine id (mch_...) to retrieve or modify.

Output parameters:

- `machine_secret_key`: Machine secret key payload from the Backend API.

### `clerk.get_organization` (~113 tokens)

Retrieve a single organization from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns organization id, name, slug, members_count, and created_at.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `organization_id` (string, required): Clerk organization id (org_...) to operate on.

Output parameters:

- `organization`: Clerk organization details.

### `clerk.get_organization_invitation` (~123 tokens)

Retrieve a single Clerk organization invitation by id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the invitation summary including status.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `invitation_id` (string, required): Clerk organization invitation id (orginv_...).
- `organization_id` (string, required): Clerk organization id (org_...) to operate on.

Output parameters:

- `invitation`: Requested organization invitation summary.

### `clerk.get_organization_role` (~110 tokens)

Retrieve an organization role by id from a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the role summary including assigned permissions.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `role_id` (string, required): Clerk organization role id to retrieve, update, or delete.

Output parameters:

- `organization_role`: Organization role summary.

### `clerk.get_phone_number` (~111 tokens)

Retrieve a Clerk phone number by id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the phone number summary.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `phone_number_id` (string, required): Clerk phone number id (idn_... or phn_...) to retrieve or modify.

Output parameters:

- `default_second_factor`: Whether this is the user's default second factor.
- `id`: Clerk phone number id.
- `phone_number`: Phone number in E.164 format.
- `reserved_for_second_factor`: Whether the phone number is reserved for multi-factor authentication.
- `verified`: Whether the phone number is verified.

### `clerk.get_session` (~128 tokens)

Retrieve a single session from a connected Clerk application by its session id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns session id, user_id, status, last_active_at, expire_at, client_id, created_at, and updated_at.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `session_id` (string, required): Clerk session id (sess_...) to retrieve or modify.

Output parameters:

- `client_id`: Clerk client id associated with this session.
- `created_at`: Unix timestamp in milliseconds when the session was created.
- `expire_at`: Unix timestamp in milliseconds when this session expires.
- `id`: Clerk session id (sess_...).
- `last_active_at`: Unix timestamp in milliseconds of the last activity on this session.
- `status`: Current status of the session.
- `updated_at`: Unix timestamp in milliseconds when the session was last updated.
- `user_id`: Clerk user id (user_...) that owns this session.

### `clerk.get_sign_up` (~121 tokens)

Retrieve an in-progress sign-up from a connected Clerk application by sign-up id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns status, contact fields, missing and unverified fields, and completion timestamps.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `sign_up_id` (string, required): Clerk sign-up id (su_...) to retrieve.

Output parameters:

- `abandon_at`: Unix timestamp in milliseconds when the sign-up will be abandoned.
- `created_session_id`: Clerk session id created when the sign-up completed.
- `created_user_id`: Clerk user id created when the sign-up completed.
- `email_address`: Email address associated with the in-progress sign-up.
- `first_name`: First name collected during sign-up.
- `id`: Clerk sign-up id (su_...).
- `last_name`: Last name collected during sign-up.
- `missing_fields`: Fields still required before the sign-up can complete.
- `phone_number`: Phone number associated with the in-progress sign-up.
- `status`: Sign-up status: "missing_requirements", "complete", or "abandoned".
- `unverified_fields`: Fields that still need verification.
- `username`: Username associated with the in-progress sign-up.

### `clerk.get_user` (~105 tokens)

Retrieve one Clerk user by id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns id, name, primary email, and created_at.

Cost = 3 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `user_id` (string, required): Clerk user id (user_...) to retrieve.

Output parameters:

- `user`: Requested Clerk user summary.

### `tiktok.comment_replies` (~93 tokens)

List replies to a TikTok comment. Requires video_id and comment_id. Pass cursor from a previous response to fetch the next page.

Cost = 2 tokens.

Input parameters:

- `comment_id` (string, required): TikTok comment id.
- `count`: Number of replies to return (max 40).
- `cursor`: Pagination cursor from a previous response.
- `video_id` (string, required): TikTok video id.

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: Capability-specific payload from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `tiktok.for_you_feed` (~60 tokens)

Fetch for-you feed videos for a region. Requires region.

Cost = 4 tokens.

Input parameters:

- `count`: Number of videos to return (max 20).
- `region` (string, required): Region code (for example us, jp, kr).

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: For-you feed videos from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `tiktok.music_details` (~58 tokens)

Look up metadata for a TikTok music track. Provide either music_id or music_url, not both.

Cost = 2 tokens.

Input parameters:

- `music_id`: TikTok music id.
- `music_url`: TikTok music page URL.

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: Capability-specific payload from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `tiktok.music_videos` (~80 tokens)

List videos that use a TikTok music track. Requires music_id. Pass cursor from a previous response to fetch the next page.

Cost = 3 tokens.

Input parameters:

- `count`: Number of items to return (max 30).
- `cursor`: Pagination cursor from a previous response.
- `music_id` (string, required): TikTok music id.

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: Capability-specific payload from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `tiktok.user_followers` (~79 tokens)

List followers for a TikTok user. Requires user_id. Pass cursor from a previous response to fetch the next page.

Cost = 2 tokens.

Input parameters:

- `count`: Number of items to return (max 200).
- `cursor`: Pagination cursor from a previous response.
- `user_id` (string, required): TikTok numeric user id.

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: Capability-specific payload from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `tiktok.user_following` (~79 tokens)

List accounts a TikTok user follows. Requires user_id. Pass cursor from a previous response to fetch the next page.

Cost = 2 tokens.

Input parameters:

- `count`: Number of items to return (max 200).
- `cursor`: Pagination cursor from a previous response.
- `user_id` (string, required): TikTok numeric user id.

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: Capability-specific payload from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `tiktok.user_info` (~58 tokens)

Look up a TikTok user profile. Provide either user_id or unique_id, not both.

Cost = 2 tokens.

Input parameters:

- `unique_id`: TikTok unique id (username).
- `user_id`: TikTok numeric user id.

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: Capability-specific payload from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `tiktok.user_reposts` (~97 tokens)

List reposts for a TikTok user. Provide either user_id or unique_id, not both. Pass cursor from a previous response to fetch the next page.

Cost = 3 tokens.

Input parameters:

- `count`: Number of items to return (max 30).
- `cursor`: Pagination cursor from a previous response.
- `unique_id`: TikTok unique id (username).
- `user_id`: TikTok numeric user id.

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: Capability-specific payload from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `tiktok.user_videos` (~128 tokens)

List videos posted by a TikTok user. Provide either user_id or unique_id, not both. Set latest to true for newest posts or false for top posts. Pass cursor from a previous response to fetch the next page.

Cost = 3 tokens.

Input parameters:

- `count`: Number of items to return (max 30).
- `cursor`: Pagination cursor from a previous response.
- `latest`: When true, return latest videos. When false, return top videos.
- `unique_id`: TikTok unique id (username).
- `user_id`: TikTok numeric user id.

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: Capability-specific payload from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `tiktok.video_comments` (~92 tokens)

List comments on a TikTok video. Provide either video_id or video_url, not both. Pass cursor from a previous response to fetch the next page.

Cost = 2 tokens.

Input parameters:

- `count`: Number of comments to return (max 50).
- `cursor`: Pagination cursor from a previous response.
- `video_id`: TikTok video id.
- `video_url`: TikTok video URL.

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: Capability-specific payload from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `tiktok.video_details` (~56 tokens)

Look up metadata for a TikTok video. Provide either video_id or video_url, not both.

Cost = 1 token.

Input parameters:

- `video_id`: TikTok video id.
- `video_url`: TikTok video URL.

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: Capability-specific payload from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `meta-tools.token_balance` (~66 tokens)

Get the current API token balance for the authenticated account.

Returns tokens used, tokens remaining, monthly allowance, billing plan, and when the allowance resets (billing_period_end). Use this before expensive calls or when you receive a 402 insufficient_tokens response

Cost = 0 tokens.

Output parameters:

- `billing_period_end`: ISO 8601 end of the current billing period.
- `billing_period_resets_at`: ISO 8601 timestamp when the token allowance resets (same as period end).
- `billing_period_start`: ISO 8601 start of the current billing period.
- `billing_plan`: Current billing plan id (free, starter, pro, scale).
- `monthly_token_allowance`: Total tokens included in the current billing period.
- `tokens_remaining`: Tokens left before quota is exhausted.
- `tokens_used`: Tokens consumed in the current billing period.

### `x-twitter.get_bookmarks` (~198 tokens)

Fetch bookmarked posts for a connected X account.

Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.

Returns raw X API data with tweet objects, expanded authors, media, polls, and places. Use next_cursor to fetch the next page.

Cost = 25 tokens.

Input parameters:

- `cursor`: Pagination cursor from a previous response next_cursor field.
- `limit`: Maximum number of bookmarks to return (default 20, max 100).
- `user_id`: Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.
- `user_name`: X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.

Output parameters:

- `data`: Bookmarked posts returned by the X API.
- `includes`: Expanded users, media, polls, places, and referenced posts.
- `next_cursor`: Cursor for the next page of bookmarks, when available.
- `result_count`: Number of bookmarks in this page.

### `x-twitter.connected_accounts` (~118 tokens)

List X (Twitter) accounts connected to the authenticated Vee3 account for write capabilities.

Returns user_id, user_name, display name, avatar URL, and whether each account is the default. Use user_id or user_name on future write calls, or omit both to use the default account.

If accounts is empty, the user must connect an X account at https://vee3.io/dashboard/connections before write capabilities work. Agents cannot complete OAuth; ask the user to connect, then call this tool again.

Cost = 0 tokens.

Output parameters:

- `accounts`: Active connected X accounts for the authenticated Vee3 account.

### `x-twitter.tweet_info` (~77 tokens)

Fetch metadata for a single public X (Twitter) post by its numeric tweet id.

Returns tweet text, engagement counts (likes, retweets, replies, quotes, bookmarks), language, conversation id, author profile summary, and attached media when present.

Cost = 2 tokens.

Input parameters:

- `id` (string, required): Numeric tweet id.

Output parameters:

- `author`: Author profile summary for the tweet.
- `bookmarks`: Bookmark count.
- `conversation_id`: Conversation thread id for the tweet.
- `created_at`: Tweet creation timestamp from X.
- `id`: Numeric tweet id.
- `lang`: Detected language code.
- `likes`: Like count.
- `media`: Attached media grouped by type (for example photo or video arrays). Additional provider-specific media fields may appear.
- `quotes`: Quote count.
- `replies`: Reply count.
- `retweets`: Repost count.
- `text`: Tweet body text.

### `x-twitter.tweet_replies` (~95 tokens)

Fetch the latest replies for a single X (Twitter) post by its numeric tweet id.

Returns a timeline of reply tweets with text, engagement counts, author info, media, and in-reply-to metadata. Use cursor from next_cursor to fetch the next page.

Cost = 4 tokens.

Input parameters:

- `cursor`: Pagination cursor from a previous response next_cursor field.
- `id` (string, required): Numeric tweet id.

Output parameters:

- `next_cursor`: Cursor for the next replies page, when available.
- `prev_cursor`: Cursor for the previous replies page, when available.
- `status`: Reply fetch status from the upstream provider (ok on success).
- `timeline`: Reply tweets, newest first. Additional provider-specific fields may appear on each entry.

### `x-twitter.user_info` (~130 tokens)

Fetch public profile metadata for an X (Twitter) user.

Provide user_name (handle without @) or rest_id (numeric user id). At least one is required. When rest_id is set, it takes precedence over user_name. Returns display name, bio, follower counts, verification flags, avatar URLs, and related profile fields.

Cost = 2 tokens.

Input parameters:

- `rest_id`: Numeric X user id (rest_id). When provided, user_name is ignored.
- `user_name`: X handle without the leading @ (for example elonmusk). Required when rest_id is omitted.

Output parameters:

- `affiliates`: Affiliate account metadata when present (object or empty array from the provider). Additional provider-specific fields may appear.
- `avatar`: Profile avatar image URL.
- `blue_verified`: Whether the account has X blue verification.
- `business_account`: Business account metadata when present (object with counts or empty array from the provider when not applicable).
- `created_at`: Account creation timestamp from X.
- `desc`: Profile bio / description.
- `friends`: Number of accounts the user follows.
- `header_image`: Profile banner image URL.
- `id`: Numeric X user id (may duplicate rest_id).
- `location`: Profile location string.
- `media_count`: Total media item count.
- `name`: Display name shown on the profile.
- `pinned_tweet_ids_str`: Pinned tweet ids for the profile when present.
- `profile`: X screen name (handle).
- `protected`: Whether the account is protected (private).
- `rest_id`: Numeric X user id.
- `status`: Profile lookup status from the upstream provider.
- `statuses_count`: Total post count.
- `sub_count`: Follower count.
- `verification_type`: Verification type label from X when present.

### `x-twitter.user_timeline` (~160 tokens)

Fetch a user's recent X (Twitter) posts, pinned tweet, and profile summary.

Provide user_name (handle without @) or rest_id (numeric user id). At least one is required. When rest_id is set, it takes precedence over user_name. Returns timeline entries with tweet text, engagement counts, media, quoted tweets, and author info. Use cursor from next_cursor to fetch the next page.

Cost = 4 tokens.

Input parameters:

- `cursor`: Pagination cursor from a previous response next_cursor field.
- `rest_id`: Numeric X user id (rest_id). When provided, user_name is ignored.
- `user_name`: X handle without the leading @ (for example elonmusk). Required when rest_id is omitted.

Output parameters:

- `next_cursor`: Cursor for the next timeline page, when available.
- `pinned`: Pinned tweet object when the user has one pinned post.
- `prev_cursor`: Cursor for the previous timeline page, when available.
- `status`: Timeline fetch status from the upstream provider (ok on success).
- `timeline`: Recent posts from the user. Additional provider-specific fields may appear on each entry.
- `user`: Profile summary for the requested user.

### `google-maps.languages` (~60 tokens)

List supported language codes for Google Maps place endpoints.

Returns languages as a map of language names to codes (for example English: en). Use these codes with the language parameter on place detail, review, and photo calls.

Cost = 1 token.

Output parameters:

- `languages`: Map of language names to language codes for Google Maps place endpoints (for example English: en).

### `google-maps.nearby_search` (~333 tokens)

Search for places near a latitude and longitude.

Required: location. Optional: radius (defaults to 1000 meters when sort_by is Relevance), keyword, place_type, open_now, min_price, max_price, language, region, and cursor. When sort_by is Distance, omit radius and provide keyword or place_type. Pass cursor from a previous cursor_next to fetch the next page.

Returns matching places in places. Use place_id with place detail, review, and photo endpoints.

cursor_next and cursor_previous appear only when pagination cursors are available. Additional upstream fields may appear.

Cost = 10 tokens.

Input parameters:

- `cursor`: Pagination cursor from cursor_next on a previous response.
- `keyword`: Keyword to match nearby places (for example restaurant).
- `language`: Language code for results (for example en).
- `location` (string, required): Latitude and longitude of the search point (for example 40,-110).
- `max_price`: Maximum price level (0–4, inclusive).
- `min_price`: Minimum price level (0–4, inclusive).
- `open_now`: When true, return only places open for business at query time.
- `place_type`: Restrict results to a single Google Maps place type (for example restaurant).
- `radius`: Search radius in meters (default 1000).
- `region`: Two-character region code (for example us). On search endpoints this biases results by ccTLD. On place endpoints this selects regional place data.
- `sort_by`: Result ordering: "Relevance" (default) or "Distance".

Output parameters:

- `cursor_next`: Cursor for the next page when more results are available.
- `cursor_previous`: Cursor for the previous page when available.
- `places`: Nearby places matching the search criteria. Additional upstream fields may appear.

### `google-maps.place_details` (~208 tokens)

Get detailed information for a Google Maps place.

Provide place_id from search results. The identifier also accepts the business identifier form (0x...:0x...). Optional region and language are supported.

Returns a flat place object with fields such as name, full_address, location, hours, status, rating, review_count, website, phone_number, and types when available. Additional upstream fields may appear.

Cost = 4 tokens.

Input parameters:

- `language`: Language code for results (for example en).
- `place_id` (string, required): Google Maps place identifier (for example ChIJk_grnPDq9EcRE7gOH9gAPZA). Also accepts the business identifier form (for example 0x47f4eb87e91f866d:0x9629fabb993eb66).
- `region`: Two-character region code (for example us). On search endpoints this biases results by ccTLD. On place endpoints this selects regional place data.

Output parameters:

- `full_address`: Full formatted address when available.
- `hours`: Opening hours when available.
- `location`: Place coordinates when available.
- `name`: Place display name.
- `phone_number`: Place phone number when available.
- `rating`: Average user rating when available.
- `review_count`: Total number of reviews when available.
- `status`: Human-readable open/closed status when available.
- `types`: Place type labels when available.
- `website`: Place website when available.

### `google-maps.place_photos` (~232 tokens)

Get photos for a Google Maps place.

Provide place_id from search results. The identifier also accepts the business identifier form (0x...:0x...). Optional cursor, region, and language are supported. Pass cursor from a previous cursor_next to fetch the next page.

Returns place metadata and a photos array. Each photo has photo_url and description when available. cursor_next appears only when a pagination cursor is available. Additional upstream fields may appear.

Cost = 3 tokens.

Input parameters:

- `cursor`: Pagination cursor from cursor_next on a previous response.
- `language`: Language code for results (for example en).
- `place_id` (string, required): Google Maps place identifier (for example ChIJk_grnPDq9EcRE7gOH9gAPZA). Also accepts the business identifier form (for example 0x47f4eb87e91f866d:0x9629fabb993eb66).
- `region`: Two-character region code (for example us). On search endpoints this biases results by ccTLD. On place endpoints this selects regional place data.

Output parameters:

- `cursor_next`: Cursor for the next page when more results are available.
- `photos`: Place photos.
- `place`: Place metadata for the photo listing.

### `google-maps.place_reviews` (~276 tokens)

Get reviews for a Google Maps place.

Provide place_id from search results. The identifier also accepts the business identifier form (0x...:0x...). Optional sort_by (Relevant, Lowest, Highest, Newest), cursor, region, and language are supported. Pass cursor from a previous cursor_next to fetch the next page.

Returns place metadata and a reviews array. Each review includes fields such as review_id, review_text, rating, and user_name. cursor_next appears only when a pagination cursor is available. Additional upstream fields may appear.

Cost = 3 tokens.

Input parameters:

- `cursor`: Pagination cursor from cursor_next on a previous response.
- `language`: Language code for results (for example en).
- `place_id` (string, required): Google Maps place identifier (for example ChIJk_grnPDq9EcRE7gOH9gAPZA). Also accepts the business identifier form (for example 0x47f4eb87e91f866d:0x9629fabb993eb66).
- `region`: Two-character region code (for example us). On search endpoints this biases results by ccTLD. On place endpoints this selects regional place data.
- `sort_by`: Review sort order: "Relevant" (default), "Lowest", "Highest", or "Newest".

Output parameters:

- `cursor_next`: Cursor for the next page when more results are available.
- `place`: Place metadata for the reviewed location.
- `reviews`: Place reviews.

### `google-maps.place_types` (~56 tokens)

List supported Google Maps place type values for search filters.

Returns place_types as a string array. Use a value with place_type on google-maps.search or google-maps.nearby_search.

Cost = 1 token.

Output parameters:

- `place_types`: Supported Google Maps place type string values.

### `google-maps.review_details` (~78 tokens)

Get details for one Google Maps review.

Provide review_id from a place reviews response. Returns one review object at the top level with fields such as review_id, review_text, rating, and user_name when available. Additional upstream fields may appear.

Cost = 2 tokens.

Input parameters:

- `review_id` (string, required): Google Maps review identifier.

Output parameters:

- `rating`: Star rating for the review.
- `review_id`: Review identifier.
- `review_text`: Review body text.
- `user_name`: Reviewer display name when available.

### `google-maps.search` (~306 tokens)

Search Google Maps by text query.

Optional filters include location, radius (defaults to 1000 meters), open_now, min_price, max_price, place_type, language, and region. Pass cursor from a previous cursor_next to fetch the next page.

Returns matching places in places with names, full_address, place_id, ratings, and location. Use place_id with place detail, review, and photo endpoints.

cursor_next and cursor_previous appear only when pagination cursors are available. Additional upstream fields may appear.

Cost = 10 tokens.

Input parameters:

- `cursor`: Pagination cursor from cursor_next on a previous response.
- `language`: Language code for results (for example en).
- `location`: Optional latitude and longitude bias point (for example 40,-110). A location embedded in the query may override this.
- `max_price`: Maximum price level (0–4, inclusive).
- `min_price`: Minimum price level (0–4, inclusive).
- `open_now`: When true, return only places open for business at query time.
- `place_type`: Restrict results to a single Google Maps place type (for example restaurant).
- `query` (string, required): Search query for places (for example restaurants in Paris).
- `radius`: Search radius in meters (default 1000).
- `region`: Two-character region code (for example us). On search endpoints this biases results by ccTLD. On place endpoints this selects regional place data.

Output parameters:

- `cursor_next`: Cursor for the next page when more results are available.
- `cursor_previous`: Cursor for the previous page when available.
- `places`: Matching places from the text search. Additional upstream fields may appear.

### `google-search.autocomplete` (~50 tokens)

Get Google Search autocomplete suggestions for a partial query.

Returns the normalized query and an array of suggested search phrases.

Cost = 5 tokens.

Input parameters:

- `query` (string, required): Partial search keywords or phrase.

Output parameters:

- `query`: Normalized query echoed from the request.
- `suggestions`: Suggested search phrases for the query.

### `google-search.languages` (~70 tokens)

List languages you can pass as language on google-search.keyword_traffic_insights and google-search.url_traffic_insights.

Returns an array of entries with language_name and language_code (for example en, de). Maps to upstream lang on the provider API. No request parameters.

Cost = 5 tokens.

Output parameters:

- `languages`: Supported languages for the language request parameter.

### `google-search.locations` (~64 tokens)

List countries and region codes you can pass as location on google-search.keyword_traffic_insights and google-search.url_traffic_insights.

Returns an array of entries with country_name and country_code (for example US, GB). No request parameters.

Cost = 5 tokens.

Output parameters:

- `locations`: Supported countries for the location request parameter.

### `google-trends.categories` (~69 tokens)

List all Google Trends category and subcategory labels you can pass to other Google Trends tools in the category field.

Returns cat (array of category names, including All categories) and msg. Use this before interest-over-time or interest-by-region calls when filtering by category.

Cost = 5 tokens.

Output parameters:

- `cat`: Category and subcategory names accepted by the category field.
- `msg`: Status or informational message from the upstream API (often empty).

### `google-trends.interest_by_region` (~275 tokens)

Fetch Google Trends interest-by-region breakdowns for one to five keywords.

Returns a JSON object whose top-level keys are your keywords. Each value maps location names (countries or subregions) to interest scores (0–100).

Requires start in datetime-with-timezone form (for example 2020-05-01T00:43:37+0100). Optional end defaults to now. country defaults to global; region requires a valid country. category and gprop default to all when omitted or empty. resolution is COUNTRY (default) or REGION.

Cost = 40 tokens.

Input parameters:

- `category`: Trends category or subcategory. Defaults to all.
- `country`: Country name for geo filtering. Defaults to global.
- `end`: Range end in datetime-with-timezone form. Defaults to now.
- `gprop`: Google property filter (for example images, news, youtube, froogle). Defaults to all.
- `keywords` (array, required): Up to five keywords to compare.
- `region`: Region within country. Requires country when set.
- `resolution` (string): Geographic resolution: COUNTRY (default) or REGION.
- `start` (string, required): Range start in datetime-with-timezone form (for example 2020-05-01T00:43:37+0100).

### `google-trends.interest_over_time` (~259 tokens)

Fetch Google Trends interest-over-time series for one to five keywords.

Returns a JSON object whose top-level keys are your keywords. Each value maps timestamps to interest scores (0–100). Granularity depends on the requested date range (from about one minute to monthly buckets).

Requires start in datetime-with-timezone form (for example 2020-05-01T00:43:37+0100). Optional end defaults to now. country defaults to global; region requires a valid country. category and gprop default to all when omitted or empty.

Cost = 40 tokens.

Input parameters:

- `category`: Trends category or subcategory. Defaults to all.
- `country`: Country name for geo filtering. Defaults to global.
- `end`: Range end in datetime-with-timezone form. Defaults to now.
- `gprop`: Google property filter (for example images, news, youtube, froogle). Defaults to all.
- `keywords` (array, required): Up to five keywords to compare.
- `region`: Region within country. Requires country when set.
- `start` (string, required): Range start in datetime-with-timezone form (for example 2020-05-01T00:43:37+0100).

### `google-trends.regions` (~92 tokens)

List all countries and subregions you can pass to other Google Trends tools in the country and region fields.

Returns geo.countries: each country name maps to country (label) and regions (array of subregion names). Also returns msg.

Use this before interest-over-time or interest-by-region calls when filtering by geography. Pair with google-trends.categories when filtering by category.

Cost = 5 tokens.

Output parameters:

- `geo`: Geographic options keyed by country name.
- `msg`: Status or informational message (often empty).

### `google-trends.related_queries` (~275 tokens)

Fetch Google Trends related queries for one to five keywords.

Returns a JSON object whose top-level keys are your keywords. Each value has top and rising sections; each section has query (rank index to query string) and value (rank index to score).

Requires start in datetime-with-timezone form (for example 2020-05-01T00:43:37+0100). Optional end defaults to now. country defaults to global; region requires a valid country. category and gprop default to all when omitted or empty.

Use google-trends.categories and google-trends.regions to discover valid category, country, and region values.

Cost = 40 tokens.

Input parameters:

- `category`: Trends category or subcategory. Defaults to all.
- `country`: Country name for geo filtering. Defaults to global.
- `end`: Range end in datetime-with-timezone form. Defaults to now.
- `gprop`: Google property filter (for example images, news, youtube, froogle). Defaults to all.
- `keywords` (array, required): Up to five keywords to compare.
- `region`: Region within country. Requires country when set.
- `start` (string, required): Range start in datetime-with-timezone form (for example 2020-05-01T00:43:37+0100).

### `google-trends.suggestions` (~94 tokens)

Get Google Trends suggestions for a single keyword.

Returns result: an array of suggested topics and entities, each with mid (topic id), title (display name), and type (for example Topic, Software, Book).

Use this to refine keywords before interest-over-time, interest-by-region, or related-queries calls.

Cost = 10 tokens.

Input parameters:

- `keyword` (string, required): Keyword or phrase to get suggestions for.

Output parameters:

- `result`: Suggested topics and entities for the keyword.

### `clerk.invite_waitlist_entry` (~128 tokens)

Send an invite to the email address on a waitlist entry.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `ignore_existing`: When true, create an invitation even if one already exists for this email.
- `waitlist_entry_id` (string, required): Clerk waitlist entry id (wle_...) to operate on.

Output parameters:

- `waitlist_entry`: Updated Clerk waitlist entry after inviting.

### `meta-tools.list_all` (~71 tokens)

List all live Vee3 agent tools.

Use this when you need to discover which tools exist and what they are called in MCP. Each entry includes mcp_tool_name, group_id, and summary. Use meta-tools.describe for full request/response schemas and token costs

Cost = 0 tokens.

Output parameters:

- `tools`: Live tool summaries for every capability exposed to agents.

### `clerk.list_allowlist_identifiers` (~122 tokens)

List allowlisted identifiers in a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns allowlist identifiers and total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit` (integer): Maximum number of identifiers to return (1–500).
- `offset` (integer): Number of identifiers to skip before returning results.

Output parameters:

- `identifiers`: Allowlist identifiers returned for the requested page.
- `total_count`: Total number of allowlist identifiers for the instance.

### `clerk.list_api_keys` (~181 tokens)

List API keys in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns api_keys and total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `include_invalid`: When true, include revoked or expired API keys.
- `key_type`: Filter by API key type (typically "api_key").
- `limit`: Maximum number of API keys to return (1–500).
- `offset`: Number of API keys to skip before returning results.
- `query`: Search query to filter API keys by name.
- `subject` (string, required): Subject to list API keys for (user_... or org_...).

Output parameters:

- `api_keys`: API keys matching the request.
- `total_count`: Total number of API keys matching the filters.

### `clerk.list_blocklist_identifiers` (~122 tokens)

List blocklisted identifiers in a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns blocklist identifiers and total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit` (integer): Maximum number of identifiers to return (1–500).
- `offset` (integer): Number of identifiers to skip before returning results.

Output parameters:

- `identifiers`: Blocklist identifiers returned for the requested page.
- `total_count`: Total number of blocklist identifiers for the instance.

### `clerk.list_enterprise_connection_test_runs` (~170 tokens)

List SAML or OIDC debug test runs for an enterprise SSO connection.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns test_runs summaries plus total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `connection_id` (string, required): Clerk enterprise connection id (entc_...) to retrieve, update, delete, or test.
- `limit`: Maximum number of results to return (1–500).
- `offset`: Number of results to skip before returning.
- `status`: Filter by test run status: "pending", "success", or "failed".

Output parameters:

- `test_runs`: Enterprise connection SSO test runs.
- `total_count`: Total number of test runs matching the query.

### `clerk.list_enterprise_connections` (~157 tokens)

List enterprise SSO (SAML/OIDC) connections in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns enterprise_connections summaries plus total_count.

Cost = 5 tokens.

Input parameters:

- `active`: Filter by active status. Omit to return all connections.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit`: Maximum number of results to return (1–500).
- `offset`: Number of results to skip before returning.
- `organization_id`: Filter connections linked to this Clerk organization id (org_...).

Output parameters:

- `enterprise_connections`: Enterprise SSO connections in the connected Clerk application.
- `total_count`: Total number of enterprise connections matching the query.

### `clerk.list_invitations` (~156 tokens)

List application invitations in a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns invitation id, email_address, status, created_at, and revoked for each invitation, plus total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit` (integer): Maximum number of invitations to return (1–500).
- `offset` (integer): Number of invitations to skip before returning results.
- `status`: Optional status filter: "pending", "accepted", "revoked", or "expired".

Output parameters:

- `invitations`: Invitations returned for the requested page.
- `total_count`: Total number of invitations returned on this page.

### `clerk.list_jwt_templates` (~116 tokens)

List JWT templates in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns each template's id, name, claims, lifetime, allowed_clock_skew, created_at, updated_at, signing_algorithm, and custom_signing_key, plus total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `jwt_templates`: JWT templates in the connected Clerk application.
- `total_count`: Total number of JWT templates.

### `clerk.list_m2m_tokens` (~182 tokens)

List M2M tokens for a machine in a connected Clerk instance.

\**Sensitive** — returns token metadata for active machine credentials.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns M2M token summaries plus total_count. JWT-format tokens are not listed.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `expired`: Include expired tokens (default false).
- `limit`: Maximum number of results to return (1–500).
- `offset`: Number of results to skip before returning.
- `revoked`: Include revoked tokens (default false).
- `subject` (string, required): Machine id (mch_...) whose tokens to list.

Output parameters:

- `m2m_tokens`: M2M tokens for the requested page.
- `total_count`: Total number of matching M2M tokens.

### `clerk.list_machines` (~152 tokens)

List machines in a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns machine summaries plus total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit`: Maximum number of results to return (1–500).
- `offset`: Number of results to skip before returning.
- `order_by`: Sort by name or created_at; prefix with - for descending (default -created_at).
- `query`: Filter by machine id (exact) or name (partial match).

Output parameters:

- `machines`: Machines for the requested page.
- `total_count`: Total number of machines in the instance.

### `clerk.list_organization_domains` (~220 tokens)

List organization domains across a Clerk instance. Optionally filter to one organization via organization_id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns domain summaries and total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `enrollment_mode`: Filter or set enrollment mode: manual_invitation, automatic_invitation, or automatic_suggestion.
- `limit` (integer): Maximum number of results to return (1–500).
- `offset` (integer): Number of results to skip before returning.
- `organization_id`: Filter domains to a specific Clerk organization id (org_...).
- `query`: Search domains by name or organization id. Values starting with org_ match organization id exactly; otherwise performs a case-insensitive partial match on the domain name.
- `verified`: Filter by verification status: "true" or "false".

Output parameters:

- `domains`: Organization domains returned for the requested page.
- `total_count`: Total number of domains matching the filter.

### `clerk.list_organization_invitations` (~165 tokens)

List organization invitations across a Clerk instance. Optionally filter to one organization via organization_id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns invitation summaries and total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit` (integer): Maximum number of results to return (1–500).
- `offset` (integer): Number of results to skip before returning.
- `organization_id`: Filter invitations to a specific Clerk organization id (org_...).
- `status`: Filter by invitation status: pending, accepted, revoked, or expired.

Output parameters:

- `invitations`: Invitations returned for the requested page.
- `total_count`: Total number of invitations matching the filter.

### `clerk.list_organization_memberships` (~148 tokens)

List members of a Clerk organization.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns membership id, user_id, role, and created_at for each member, plus total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit`: Maximum number of organization memberships to return (1–500).
- `offset`: Number of organization memberships to skip before returning results.
- `organization_id` (string, required): Clerk organization id (org_...) whose members to list.

Output parameters:

- `memberships`: Memberships returned for the requested page.
- `total_count`: Total number of members in the organization.

### `clerk.list_organization_permissions` (~156 tokens)

List organization permissions in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns permission summaries and total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit` (integer): Maximum number of results to return (1–500).
- `offset` (integer): Number of results to skip before returning.
- `order_by`: Sort order with optional + or - prefix (for example -created_at or name). Defaults to -created_at.
- `query`: Search by name or key.

Output parameters:

- `organization_permissions`: Organization permissions in the connected Clerk application.
- `total_count`: Total number of organization permissions.

### `clerk.list_organization_roles` (~159 tokens)

List organization roles in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns role summaries with nested permissions and total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit` (integer): Maximum number of results to return (1–500).
- `offset` (integer): Number of results to skip before returning.
- `order_by`: Sort order with optional + or - prefix (for example -created_at or name). Defaults to -created_at.
- `query`: Search by name or key.

Output parameters:

- `organization_roles`: Organization roles in the connected Clerk application.
- `total_count`: Total number of organization roles.

### `clerk.list_organizations` (~147 tokens)

List organizations in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns organization id, name, slug, members_count, and created_at for each organization, plus total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit` (integer): Maximum number of organizations to return (1–500).
- `offset` (integer): Number of organizations to skip before returning results.
- `query`: Optional search string to filter organizations by name or slug.

Output parameters:

- `organizations`: Organizations returned for the requested page.
- `total_count`: Total number of organizations in the Clerk application.

### `clerk.list_sessions` (~210 tokens)

List sessions in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns session id, user_id, status, last_active_at, and expire_at for each session.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `client_id`: Filter sessions to those belonging to this Clerk client id (client_...).
- `limit` (integer): Maximum number of sessions to return (1–500).
- `offset` (integer): Number of sessions to skip before returning results.
- `status`: Filter sessions by status. Accepted values: abandoned, active, ended, expired, removed, replaced, revoked.
- `user_id`: Filter sessions to those belonging to this Clerk user id (user_...). Clerk requires user_id or client_id when listing sessions; pass user_id here.

Output parameters:

- `sessions`: Sessions returned for the requested page.
- `total_count`: Total number of sessions returned.

### `clerk.list_user_organization_memberships` (~144 tokens)

List all organizations a specific Clerk user belongs to.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns membership id, organization_id, role, and timestamps.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit`: Maximum number of organization memberships to return (1–500).
- `offset`: Number of organization memberships to skip before returning results.
- `user_id` (string, required): Clerk user id (user_...) whose memberships to list.

Output parameters:

- `memberships`: Organization memberships for the user.
- `total_count`: Total number of organization memberships for the user.

### `clerk.list_users` (~129 tokens)

List users in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns user id, name, primary email, and created_at for each user, plus total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit` (integer): Maximum number of users to return (1–500).
- `offset` (integer): Number of users to skip before returning results.

Output parameters:

- `total_count`: Total number of users in the Clerk application.
- `users`: Users returned for the requested page.

### `clerk.list_waitlist_entries` (~193 tokens)

List waitlist entries in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns waitlist entry summaries and total_count.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `limit` (integer): Maximum number of waitlist entries to return (1–500).
- `offset` (integer): Number of waitlist entries to skip before returning results.
- `order_by`: Sort order: created_at, email_address, or invited_at with optional + or - prefix. Defaults to -created_at.
- `query`: Filter by email address or waitlist entry id.
- `status`: Optional status filter: "pending", "invited", "rejected", or "completed".

Output parameters:

- `total_count`: Total number of waitlist entries on this page.
- `waitlist_entries`: Waitlist entries returned for the requested page.

### `meta-tools.list_group_tools` (~76 tokens)

List live tools belonging to a single capability group.

Use group_id from meta-tools.list_groups (for example website-screenshots). Returns name and summary for each live tool in the group

Cost = 0 tokens.

Input parameters:

- `group_id` (string, required): Group id to list tools for (for example website-screenshots).

Output parameters:

- `group_id`: Requested group id.
- `tools`: Live tool summaries in the requested group.

### `meta-tools.list_groups` (~51 tokens)

List all Vee3 capability groups.

Use this to see how tools are organized (for example website-screenshots or meta-tools) before listing tools in a specific group

Cost = 0 tokens.

Output parameters:

- `groups`: Capability groups with live tool counts.

### `files.list_uploaded_files` (~139 tokens)

List files currently stored for the authenticated Vee3 account.

Returns file_name (including any folders), content_type, size_bytes, uploaded_at, and retained_until when known. Use file_name to reference a file in other capabilities.

Optional folder limits results to that folder path and its subfolders (for example media/clips).

retained_until is when the file will be removed (based on retention_days at upload).

Cost = 0 tokens.

Input parameters:

- `folder`: Optional folder path (for example media/clips). When set, only files under that folder (including nested subfolders) are returned. Do not use '..' or absolute paths.

Output parameters:

- `files`: Files currently stored for the authenticated account, newest first.

### `files.move_file` (~115 tokens)

Move a stored file to a new account-relative path.

Pass source_file_name from files.list_uploaded_files and the desired destination_file_name. The file is copied to the new path and the source is removed. Any linked upload session is updated to the new path.

Cost = 0 tokens.

Input parameters:

- `destination_file_name` (string, required): New relative file name or path. Must not already exist in account storage.
- `source_file_name` (string, required): Current relative file name or path. Use files.list_uploaded_files to see available names.

Output parameters:

- `destination_file_name`: New file name after the move.
- `source_file_name`: Previous file name.

### `clerk.reject_waitlist_entry` (~112 tokens)

Reject a waitlist entry in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated waitlist entry.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `waitlist_entry_id` (string, required): Clerk waitlist entry id (wle_...) to operate on.

Output parameters:

- `waitlist_entry`: Updated Clerk waitlist entry after rejection.

### `clerk.replace_user_metadata` (~154 tokens)

Replace the entire contents of one metadata namespace for a Clerk user.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

The metadata body fully replaces the chosen namespace. Returns the updated user summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `metadata` (object, required): New metadata dict that fully replaces the chosen namespace. Pass an empty object to clear all keys.
- `metadata_type` (string, required): Metadata namespace to replace.
- `user_id` (string, required): Clerk user id (user_...) whose metadata to replace.

Output parameters:

- `user`: Updated Clerk user object after the metadata replacement.

### `x-twitter.reply_to_post` (~478 tokens)

Reply to a post from a connected X account.

Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.

Requires reply_to_post_id. Supports the same content options as x-twitter.create_post: text, polls, media, reply settings, paid partnership disclosure, AI-generated labels, super-follower exclusivity, nullcast posts, cards, communities, and direct-message deep links.

At least one of text, poll, media, or card_uri is required, same as x-twitter.create_post.

Token pricing matches x-twitter.create_post.

Input parameters:

- `auto_populate_reply_metadata`: Whether to automatically populate reply metadata.
- `card_uri`: Card URI for the post. Mutually exclusive with poll and media.
- `community_id`: Community id when posting to an X community.
- `direct_message_deep_link`: Deep link that moves the conversation into Direct Messages.
- `exclude_reply_user_ids`: User ids to exclude from the reply mention list.
- `for_super_followers_only`: Whether the post is exclusive to super followers.
- `made_with_ai`: Whether the post contains AI-generated media.
- `media` (array): File names from files.list_uploaded_files to attach (up to 4).
- `nullcast`: Whether the post is promoted-only and hidden from the public timeline.
- `paid_partnership`: Whether the post is a paid partnership.
- `poll`: Poll object with options (2-4 strings) and duration_minutes (5-10080).
- `reply_settings`: Who can reply to the post.
- `reply_to_post_id` (string, required): Numeric id of the post to reply to.
- `share_with_followers`: Whether to share a community post with followers too.
- `text`: Reply text content. At least one of text, poll, media, or card_uri is required.
- `user_id`: Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.
- `user_name`: X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.

Output parameters:

- `post_id`: Numeric id of the reply post.
- `text`: Reply text returned by the X API.
- `user_id`: Numeric X user id of the connected account.
- `user_name`: X handle of the connected account.

### `meta-tools.report_bug` (~143 tokens)

Report a bug, error, or anything that did not work as expected while using Vee3.

Use this when a capability fails unexpectedly, returns wrong data, or behaves inconsistently. Include what you tried, what happened, and any error output

Cost = 0 tokens.

Input parameters:

- `description` (string, required): Detailed explanation of what went wrong, what was expected, and steps to reproduce if known.
- `error_details`: Raw error message, stack trace, or API response that shows the failure.
- `related_capability_id`: MCP tool name or capability id involved in the issue, if applicable.
- `summary` (string, required): Short title describing the issue.

Output parameters:

- `created_at`: ISO 8601 timestamp when the report was recorded.
- `report_id`: Unique identifier for the submitted bug report.
- `status`: Submission status. Always "received" on success.

### `x-twitter.repost_post` (~164 tokens)

Repost a post for a connected X account.

Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.

Returns the reposted post_id and retweeted status.

Cost = 75 tokens.

Input parameters:

- `post_id` (string, required): Numeric id of the post to repost.
- `user_id`: Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.
- `user_name`: X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.

Output parameters:

- `post_id`: Numeric id of the reposted post.
- `retweeted`: Whether the post was reposted.
- `user_id`: Numeric X user id of the connected account.
- `user_name`: X handle of the connected account.

### `meta-tools.request_feature` (~158 tokens)

Request a new capability or feature that Vee3 does not offer yet.

Use this when you need something that is not available in the catalog — a missing integration, data source, workflow, or enhancement to an existing capability. Describe what you need, why you cannot accomplish it today, and how you would use it

Cost = 0 tokens.

Input parameters:

- `description` (string, required): Detailed explanation of what is needed, why it cannot be done with existing tools, and how it would help.
- `related_capability_id`: Capability id this request extends or relates to, if applicable.
- `summary` (string, required): Short title describing the requested capability or feature.
- `use_case`: Example workflow or scenario where this feature would be used.

Output parameters:

- `created_at`: ISO 8601 timestamp when the request was recorded.
- `request_id`: Unique identifier for the submitted feature request.
- `status`: Submission status. Always "received" on success.

### `clerk.revoke_actor_token` (~127 tokens)

Revoke an actor token in a connected Clerk application so it can no longer be used for impersonation.

\**Sensitive** — invalidates a high-privilege token.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the revoked actor token object.

Cost = 5 tokens.

Input parameters:

- `actor_token_id` (string, required): Clerk actor token id to revoke.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.

Output parameters:

- `actor_token`: Revoked Clerk actor token object from the Backend API.

### `clerk.revoke_admin_portal_link_token` (~150 tokens)

Revoke an admin portal link token by id in a connected Clerk instance.

\**Sensitive** — invalidates a single-use deep-link token.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the revoked admin portal link token.

Cost = 8 tokens.

Input parameters:

- `admin_portal_link_token_id` (string, required): Admin portal link token id (aplt_...) to revoke.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `revocation_reason`: Optional reason recorded when revoking the link token.

Output parameters:

- `admin_portal_link_token`: Revoked admin portal link token from the Backend API.

### `clerk.revoke_api_key` (~138 tokens)

Revoke an API key in a connected Clerk application so it can no longer be used.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the revoked API key summary.

Cost = 8 tokens.

Input parameters:

- `api_key_id` (string, required): Clerk API key id (ak_...) to retrieve, update, delete, or revoke.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `revocation_reason`: Optional reason recorded when revoking the API key.

Output parameters:

- `api_key`: Revoked Clerk API key from the Backend API.

### `clerk.revoke_invitation` (~106 tokens)

Revoke a pending application invitation by invitation id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Only pending invitations can be revoked.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `invitation_id` (string, required): Clerk application invitation id (inv_...) to revoke.

Output parameters:

- `invitation`: Revoked Clerk invitation object from the Backend API.

### `clerk.revoke_m2m_token` (~130 tokens)

Revoke an M2M token by id in a connected Clerk instance.

\**Sensitive** — invalidates a machine authentication token.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the revoked M2M token.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `m2m_token_id` (string, required): Clerk M2M token id (mt_...) to revoke.

Output parameters:

- `m2m_token`: Revoked M2M token from the Backend API.

### `clerk.revoke_organization_invitation` (~132 tokens)

Revoke a pending Clerk organization invitation.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Only pending invitations can be revoked. Returns the updated invitation summary with status revoked.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `invitation_id` (string, required): Clerk organization invitation id (orginv_...).
- `organization_id` (string, required): Clerk organization id (org_...) to operate on.

Output parameters:

- `invitation`: Revoked organization invitation summary.

### `clerk.revoke_session` (~114 tokens)

Revoke a session in a connected Clerk application, immediately ending it.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the revoked session object with status set to revoked.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `session_id` (string, required): Clerk session id (sess_...) to retrieve or modify.

Output parameters:

- `client_id`: Clerk client id associated with this session.
- `created_at`: Unix timestamp in milliseconds when the session was created.
- `expire_at`: Unix timestamp in milliseconds when this session expires.
- `id`: Clerk session id (sess_...).
- `last_active_at`: Unix timestamp in milliseconds of the last activity on this session.
- `status`: Current status of the session.
- `updated_at`: Unix timestamp in milliseconds when the session was last updated.
- `user_id`: Clerk user id (user_...) that owns this session.

### `clerk.revoke_sign_in_token` (~129 tokens)

Revoke a sign-in token in a connected Clerk application so it can no longer be used.

\**Sensitive** — invalidates a high-privilege token.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the revoked sign-in token object.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `sign_in_token_id` (string, required): Clerk sign-in token id to revoke.

Output parameters:

- `sign_in_token`: Revoked Clerk sign-in token object from the Backend API.

### `clerk.rotate_machine_secret_key` (~153 tokens)

Rotate the secret key for a machine in a connected Clerk instance.

\**Sensitive** — the response includes the new secret key; do not log or expose it.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the new secret key.

Cost = 10 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `machine_id` (string, required): Clerk machine id (mch_...) to retrieve or modify.
- `previous_token_ttl` (integer, required): Seconds the previous secret key remains valid after rotation (0–28800).

Output parameters:

- `machine_secret_key`: Rotated machine secret key payload from the Backend API.

### `rotten-tomatoes.celebrity_details` (~83 tokens)

Look up a celebrity on Rotten Tomatoes by slug (for example morgan-freeman).

Returns name, bio, birth date and place, profile image, and filmography lists for movies and TV with scores and years.

Cost = 5 tokens.

Input parameters:

- `celebrity_slug` (string, required): Celebrity slug (for example morgan-freeman).

Output parameters:

- `movies`: Movie credits with title, slug, year, and score.
- `name`: Celebrity name.
- `slug`: Celebrity slug.
- `tv`: TV credits with title, slug, year, and score.

### `rotten-tomatoes.movie_cast_and_crew` (~77 tokens)

List cast and crew credits for a movie by slug (for example shawshank-redemption).

Returns cast and crew members with names, roles, character names, and profile links where available.

Cost = 5 tokens.

Input parameters:

- `movie_slug` (string, required): Movie slug (for example shawshank-redemption).

Output parameters:

- `cast`: Cast and crew credits for the movie.
- `slug`: Movie slug.

### `rotten-tomatoes.movie_details` (~90 tokens)

Look up a movie on Rotten Tomatoes by slug (for example shawshank-redemption).

Returns title, year, rating, runtime, genres, description, poster and hero images, Tomatometer and Popcornmeter scores, cast highlights, and where to watch links.

Cost = 5 tokens.

Input parameters:

- `movie_slug` (string, required): Movie slug (for example shawshank-redemption).

Output parameters:

- `cast`: Featured cast with name, slug, and imageUrl.
- `popcornmeter`: Audience Popcornmeter score and metadata.
- `slug`: Movie slug.
- `title`: Movie title.
- `tomatometer`: Critic Tomatometer score and metadata.
- `year`: Release year.

### `rotten-tomatoes.movie_reviews` (~148 tokens)

Load reviews for a movie by slug (for example shawshank-redemption).

Returns review quotes, sentiment, publication, critic details, and pageInfo for pagination. Use cursor from pageInfo.endCursor for the next page. Optionally set type to critic for critic reviews only.

Cost = 5 tokens.

Input parameters:

- `cursor`: Pagination cursor from a previous response pageInfo.endCursor field.
- `limit`: Maximum number of review pages to return (1–50, default 20).
- `movie_slug` (string, required): Movie slug (for example shawshank-redemption).
- `review_type`: Review filter. Use critic for critic reviews; omit for the default set.

Output parameters:

- `pageInfo`: Pagination metadata for review listings.
- `reviews`: Review entries with quote, sentiment, critic, and publication.
- `slug`: Movie slug.
- `type`: Review set type (for example critic).

### `rotten-tomatoes.search` (~91 tokens)

Search Rotten Tomatoes by title or name.

Returns matching movies, TV series, and celebrities with slugs, scores, poster URLs, release years, and top-billed cast where available.

Cost = 10 tokens.

Input parameters:

- `limit`: Maximum number of search results to return (1–50, default 20).
- `query` (string, required): Search query for movies, TV series, or celebrities.

Output parameters:

- `movies`: Search hits (movies, TV series, or celebrities). Each entry includes type, slug, title, url, posterUrl, score, and cast when available.
- `query`: Echo of the search query.

### `rotten-tomatoes.tv_show_cast_and_crew` (~77 tokens)

List cast and crew credits for a TV series by slug (for example breaking-bad).

Returns cast and crew members with names, roles, character names, and profile links where available.

Cost = 5 tokens.

Input parameters:

- `tv_show_slug` (string, required): TV series slug (for example breaking-bad).

Output parameters:

- `cast`: Cast and crew credits for the series.
- `slug`: TV series slug.

### `rotten-tomatoes.tv_show_details` (~91 tokens)

Look up a TV series on Rotten Tomatoes by slug (for example breaking-bad).

Returns title, years on air, TV rating, season count, genres, description, poster and hero images, Tomatometer and Popcornmeter scores, and creator/cast highlights.

Cost = 5 tokens.

Input parameters:

- `tv_show_slug` (string, required): TV series slug (for example breaking-bad).

Output parameters:

- `popcornmeter`: Average Popcornmeter score and metadata.
- `slug`: TV series slug.
- `title`: Series title.
- `tomatometer`: Average Tomatometer score and metadata.
- `year`: Years on air (for example 2008 - 2013).

### `rotten-tomatoes.tv_show_episode` (~123 tokens)

Load a single episode by TV series slug (for example breaking-bad), season number, and episode number.

Returns episode title, air date, description, and episode Tomatometer score when available.

Cost = 5 tokens.

Input parameters:

- `episode_number` (string, required): Episode number as one or two digits (for example 1 or 01).
- `season_number` (string, required): Season number as one or two digits (for example 1 or 01).
- `tv_show_slug` (string, required): TV series slug (for example breaking-bad).

Output parameters:

- `episode`: Episode number.
- `season`: Season number.
- `slug`: TV series slug.
- `title`: Episode title.

### `rotten-tomatoes.tv_show_season_reviews` (~178 tokens)

Load reviews for a TV season by series slug (for example breaking-bad) and season number.

Returns review quotes, sentiment, publication, critic details, and pageInfo for pagination. Use cursor from pageInfo.endCursor for the next page. Optionally set type to critic for critic reviews only.

Cost = 5 tokens.

Input parameters:

- `cursor`: Pagination cursor from a previous response pageInfo.endCursor field.
- `limit`: Maximum number of review pages to return (1–50, default 20).
- `review_type`: Review filter. Use critic for critic reviews; omit for the default set.
- `season_number` (string, required): Season number as one or two digits (for example 1 or 01).
- `tv_show_slug` (string, required): TV series slug (for example breaking-bad).

Output parameters:

- `pageInfo`: Pagination metadata for review listings.
- `reviews`: Review entries with quote, sentiment, critic, and publication.
- `season`: Season number.
- `slug`: TV series slug.

### `rotten-tomatoes.tv_show_season` (~99 tokens)

Load season-level details for a TV series by slug (for example breaking-bad) and season number.

Returns season title, episode list summaries, and season Tomatometer scores when available.

Cost = 5 tokens.

Input parameters:

- `season_number` (string, required): Season number as one or two digits (for example 1 or 01).
- `tv_show_slug` (string, required): TV series slug (for example breaking-bad).

Output parameters:

- `episodes`: Episodes in the season when listed.
- `season`: Season identifier.
- `slug`: TV series slug.

### `tiktok.search_photos` (~89 tokens)

Search TikTok photo posts by keyword. Requires query. Pass cursor from a previous response to fetch the next page.

Cost = 5 tokens.

Input parameters:

- `count`: Number of items to return (max 30).
- `cursor`: Pagination cursor from a previous response.
- `query` (string, required): Search keywords.
- `region`: Region code (for example us, jp, kr).

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: Capability-specific payload from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `tiktok.search_users` (~87 tokens)

Search TikTok users by keyword. Requires query. Pass cursor from a previous response to fetch the next page.

Cost = 5 tokens.

Input parameters:

- `count`: Number of items to return (max 30).
- `cursor`: Pagination cursor from a previous response.
- `follower_count`: Follower count filter: 0-4.
- `query` (string, required): Search keywords.

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: Capability-specific payload from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `tiktok.search_videos` (~134 tokens)

Search TikTok videos by keyword. Requires query. Pass cursor from a previous response to fetch the next page.

Cost = 5 tokens.

Input parameters:

- `count`: Number of items to return (max 30).
- `cursor`: Pagination cursor from a previous response.
- `publish_time`: Publish time filter: 0, 1, 7, 30, 90, or 180.
- `query` (string, required): Search keywords.
- `region`: Region code (for example us, jp, kr).
- `sort_by`: Sort order: relevance, like_count, or date_posted.

Output parameters:

- `code`: Upstream status code (0 = success).
- `data`: Capability-specific payload from the upstream provider.
- `msg`: Upstream status message.
- `processed_time`: Upstream processing time in seconds.

### `meta-tools.search` (~150 tokens)

Search live Vee3 agent tools by keyword or short task description.

Call this first when you are unsure which tool to use. Returns ranked matches with tool_name, summary, and cost for each hit. Use meta-tools.describe on the best match for full request and response schemas.

Optional group_id narrows results to one capability group. limit defaults to 8 (maximum 20).

Cost = 0 tokens.

Input parameters:

- `group_id`: Optional group id to narrow results (for example `x-twitter`).
- `limit`: Maximum results to return (1–20).
- `query` (string, required): Keywords or short task description (for example `tiktok video comments` or `domain availability`).

Output parameters:

- `query`: Normalized search query that was executed.
- `results`: Ranked capability matches visible to the caller.

### `x-twitter.search` (~115 tokens)

Search public X (Twitter) posts matching a keyword or phrase.

Returns a timeline of matching posts with tweet text, engagement counts, author info, media, and quoted tweets. Use cursor from next_cursor to fetch the next page. search_type controls ranking: Top (default), Latest, Media, People, or Lists.

Cost = 5 tokens.

Input parameters:

- `cursor`: Pagination cursor from a previous response next_cursor field.
- `query` (string, required): Search keywords or phrase.
- `search_type` (string): Result ranking mode.

Output parameters:

- `next_cursor`: Cursor for the next results page, when available.
- `prev_cursor`: Cursor for the previous results page, when available.
- `status`: Search status from the upstream provider (ok on success).
- `timeline`: Matching posts from the search. Additional provider-specific fields may appear on each entry.

### `seo.backlinks` (~111 tokens)

Find backlinks pointing to a website URL.

Returns an overview (domain rating, URL rating, backlink counts, referring domains, dofollow breakdown) and a list of individual backlinks with anchor text, source and target URLs, domain rating, and redirect chains.

Cost = 10 tokens.

Input parameters:

- `include_subdomains` (boolean): When true (default), include backlinks to the domain and its subdomains. When false, analyze only the exact URL.
- `url` (string, required): Public website URL to check for backlinks.

Output parameters:

- `backlinks`: Individual backlink records with anchor text and source URLs.
- `overview`: Aggregate backlink statistics for the target.

### `seo.basic_metrics` (~80 tokens)

Get Ahrefs domain authority signals for a website URL.

Returns domainRating (0–100 Ahrefs authority score) and ahRank (global Ahrefs website rank). Useful for comparing site strength and prioritizing outreach or competitive research.

Cost = 10 tokens.

Input parameters:

- `url` (string, required): Public website URL to analyze (for example https://example.com).

Output parameters:

- `ahRank`: Global website rank (lower is stronger).
- `domainRating`: Domain authority score from 0 to 100.

### `seo.country_codes` (~47 tokens)

List country codes you can pass as country on seo.keyword_metrics.

Returns an array of 2-letter ISO country codes (for example us, gb, de).

Cost = 0 tokens.

Output parameters:

- `country_codes`: Supported ISO country codes for keyword metrics.

### `seo.keyword_metrics` (~90 tokens)

Get SEO metrics for a search keyword in a specific country market.

Returns keyword, searchVolume, clicks, cpc, difficulty, globalSearchVolume, and trafficPotential.

Cost = 10 tokens.

Input parameters:

- `country` (string): 2-letter ISO country code for the target market (default us). Use seo.country_codes for supported values.
- `keyword` (string, required): Search keyword or phrase to analyze.

Output parameters:

- `clicks`: Estimated monthly clicks from organic search.
- `cpc`: Estimated cost per click in paid search.
- `difficulty`: Keyword difficulty score (higher is harder to rank).
- `globalSearchVolume`: Estimated global monthly search volume.
- `keyword`: Analyzed keyword.
- `searchVolume`: Estimated monthly search volume in the selected country.
- `trafficPotential`: Estimated traffic potential if ranking well.

### `google-search.keyword_traffic_insights` (~255 tokens)

Get Google keyword traffic insights and related keyword suggestions for a seed keyword.

Returns an array of keyword suggestions. Each item includes text, monthly search volume, competition_level, competition_index, low_bid, high_bid, and trend.

Required: keyword and language (for example en). Optional: location (for example US) for country-specific data; omit location for global results (default). Optional: mode (exact or all, default all), min_search_volume (default 0), and intent (informational, navigational, commercial, or transactional).

Cost = 20 tokens.

Input parameters:

- `intent`: Filter by search intent: informational, navigational, commercial, or transactional.
- `keyword` (string, required): Seed keyword to get traffic insights and suggestions for.
- `language` (string, required): Language code for the search market (for example en).
- `location`: Optional country or region code for localized traffic (for example US). Omit for global keyword insights.
- `min_search_volume` (integer): Minimum monthly search volume; only keywords at or above this threshold are returned.
- `mode` (string): Keyword suggestion filter: exact returns only suggestions that exactly match the seed keyword; all returns all suggestions (default).

Output parameters:

- `keyword_suggestions`: Keyword suggestions with traffic and competition metrics.

### `seo.url_metrics` (~91 tokens)

Get detailed Ahrefs SEO metrics for a specific URL.

Returns two sections:
\- page: backlinks, referring domains, estimated traffic, traffic value, organic keywords, URL rating, and word count on the page
\- domain: domain rating, rank, backlinks, referring domains, traffic, traffic value, and organic keywords

Cost = 10 tokens.

Input parameters:

- `url` (string, required): Public page URL to analyze.

Output parameters:

- `domain`: Metrics for the parent domain.
- `page`: Metrics for the requested page URL.

### `google-search.url_traffic_insights` (~221 tokens)

Get Google keyword traffic insights and related keyword suggestions for a URL.

Returns an array of keyword suggestions. Each item includes text, monthly search volume, competition_level, competition_index, low_bid, high_bid, and trend.

Required: url and language (for example en). Optional: location (for example US) for country-specific data; omit location for global results (default). Optional: min_search_volume (default 0) and intent (informational, navigational, commercial, or transactional).

Cost = 20 tokens.

Input parameters:

- `intent`: Filter by search intent: informational, navigational, commercial, or transactional.
- `language` (string, required): Language code for the search market (for example en).
- `location`: Optional country or region code for localized traffic (for example US). Omit for global URL keyword insights.
- `min_search_volume` (integer): Minimum monthly search volume; only keywords at or above this threshold are returned.
- `url` (string, required): Public http or https URL to get traffic insights and suggestions for.

Output parameters:

- `keyword_suggestions`: Keyword suggestions with traffic and competition metrics.

### `clerk.unban_users` (~118 tokens)

Remove bans from one or more Clerk users, restoring their ability to sign in.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated user summaries and total count.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `user_ids` (array, required): List of one or more Clerk user ids (user_...) to unban.

Output parameters:

- `total_count`: Number of users that were unbanned.
- `users`: Updated user summaries for all unbanned users.

### `x-twitter.unrepost_post` (~155 tokens)

Remove a repost for a connected X account.

Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.

Cost = 50 tokens.

Input parameters:

- `post_id` (string, required): Numeric id of the original post to unrepost.
- `user_id`: Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.
- `user_name`: X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account.

Output parameters:

- `retweeted`: Whether the post is still reposted after this request.
- `user_id`: Numeric X user id of the connected account.
- `user_name`: X handle of the connected account.

### `clerk.update_api_key` (~180 tokens)

Update an API key in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated API key summary.

Cost = 8 tokens.

Input parameters:

- `api_key_id` (string, required): Clerk API key id (ak_...) to retrieve, update, delete, or revoke.
- `claims`: Updated custom claims for tokens minted from this API key.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `description`: Updated description for the API key.
- `scopes`: Updated permission scopes for the API key.
- `seconds_until_expiration`: Updated seconds until expiration from now.
- `subject`: Updated subject (user_... or org_...).

Output parameters:

- `api_key`: Updated Clerk API key from the Backend API.

### `clerk.update_email_address` (~138 tokens)

Update a Clerk email address by id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated email address summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `email_address_id` (string, required): Clerk email address id (idn_...) to retrieve or modify.
- `primary`: When true, set this email as the user's primary email address.
- `verified`: When true, mark the email address as verified.

Output parameters:

- `email_address`: Updated Clerk email address summary.

### `clerk.update_enterprise_connection` (~255 tokens)

Update an enterprise SSO connection in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated enterprise_connection summary.

Cost = 8 tokens.

Input parameters:

- `active`: Whether the connection is active.
- `allow_organization_account_linking`: Whether account linking via organization membership is allowed.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `connection_id` (string, required): Clerk enterprise connection id (entc_...) to retrieve, update, delete, or test.
- `custom_attributes`: Updated custom attribute mappings.
- `disable_additional_identifications`: Whether to block additional identifications for this connection.
- `domains`: Updated domain list (replaces existing domains when provided).
- `name`: Updated display name for the connection.
- `oidc`: Updated OIDC client configuration.
- `organization_id`: Clerk organization id (org_...) to link to this connection.
- `saml`: Updated SAML IdP configuration.
- `sync_user_attributes`: Whether to sync user attributes on each sign-in.

Output parameters:

- `enterprise_connection`: Updated enterprise SSO connection.

### `clerk.update_jwt_template` (~211 tokens)

Update an existing JWT template in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated template summary.

Cost = 8 tokens.

Input parameters:

- `allowed_clock_skew`: Optional new allowed clock skew in seconds (0–300).
- `claims`: Optional new JWT claims template as a JSON object.
- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `custom_signing_key`: Optional flag to enable or disable a custom signing key.
- `lifetime`: Optional new token lifetime in seconds (30–315360000).
- `name`: Optional new unique template name.
- `signing_algorithm`: Optional custom signing algorithm.
- `signing_key`: Optional custom signing private key.
- `template_id` (string, required): Clerk JWT template id (jtmp_...) to retrieve, update, or delete.

Output parameters:

- `jwt_template`: Updated Clerk JWT template summary.

### `clerk.update_machine` (~129 tokens)

Update a machine in a connected Clerk instance.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated machine.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `default_token_ttl`: Updated default M2M token lifetime in seconds.
- `machine_id` (string, required): Clerk machine id (mch_...) to retrieve or modify.
- `name`: Updated machine display name.

Output parameters:

- `machine`: Updated machine object from the Backend API.

### `clerk.update_organization` (~166 tokens)

Update fields for a Clerk organization.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated organization summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `max_allowed_memberships`: Optional new maximum number of memberships allowed.
- `name`: Optional new display name for the organization.
- `organization_id` (string, required): Clerk organization id (org_...) to operate on.
- `private_metadata`: Optional private metadata to merge into the organization.
- `public_metadata`: Optional public metadata to merge into the organization.
- `slug`: Optional new URL-friendly slug.

Output parameters:

- `organization`: Updated Clerk organization summary.

### `clerk.update_organization_domain` (~146 tokens)

Update enrollment mode or verification status for an organization domain.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated domain summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `domain_id` (string, required): Clerk organization domain id (dmn_...) to update, delete, or verify.
- `enrollment_mode`: Filter or set enrollment mode: manual_invitation, automatic_invitation, or automatic_suggestion.
- `verified`: Whether the domain is verified.

Output parameters:

- `domain`: Updated organization domain summary.

### `clerk.update_organization_membership` (~147 tokens)

Change the role of a Clerk organization member.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated membership.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `organization_id` (string, required): Clerk organization id (org_...) containing the member.
- `role` (string, required): New role for the member (e.g. org:member, org:admin).
- `user_id` (string, required): Clerk user id (user_...) of the member to update.

Output parameters:

- `membership`: Updated organization membership.

### `clerk.update_organization_membership_metadata` (~151 tokens)

Merge public or private metadata on a Clerk organization membership.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated membership.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `organization_id` (string, required): Clerk organization id (org_...) containing the membership.
- `private_metadata`: Private metadata to merge into the membership.
- `public_metadata`: Public metadata to merge into the membership.
- `user_id` (string, required): Clerk user id (user_...) of the member.

Output parameters:

- `membership`: Updated organization membership.

### `clerk.update_organization_metadata` (~138 tokens)

Merge metadata into a Clerk organization (deep merge — existing keys are preserved unless overwritten).

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated organization summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `organization_id` (string, required): Clerk organization id (org_...) to operate on.
- `private_metadata`: Private metadata to merge into the organization.
- `public_metadata`: Public metadata to merge into the organization.

Output parameters:

- `organization`: Updated Clerk organization summary.

### `clerk.update_organization_permission` (~120 tokens)

Update an organization permission in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated permission summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `description`: Updated permission description.
- `name`: Updated permission display name.
- `permission_id` (string, required): Clerk organization permission id to update or delete.

Output parameters:

- `organization_permission`: Updated organization permission summary.

### `clerk.update_organization_role` (~152 tokens)

Update an organization role in a connected Clerk application.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated role summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `description`: Updated role description.
- `is_creator_eligible`: Whether this role may be assigned as organization creator.
- `name`: Updated role display name.
- `permissions`: Permission keys to assign to the role.
- `role_id` (string, required): Clerk organization role id to retrieve, update, or delete.

Output parameters:

- `organization_role`: Updated organization role summary.

### `clerk.update_phone_number` (~156 tokens)

Update a Clerk phone number by id.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated phone number summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `phone_number_id` (string, required): Clerk phone number id (idn_... or phn_...) to retrieve or modify.
- `primary`: Whether this should be the user's primary phone number.
- `reserved_for_second_factor`: Whether to reserve this number for multi-factor authentication.
- `verified`: Whether the phone number should be marked verified.

Output parameters:

- `phone_number`: Updated Clerk phone number object from the Backend API.

### `clerk.update_user` (~137 tokens)

Update profile fields for a Clerk user.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated user summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `external_id`: Optional external id for the user.
- `first_name`: Optional first name.
- `last_name`: Optional last name.
- `user_id` (string, required): Clerk user id (user_...) to update.
- `username`: Optional username.

Output parameters:

- `user`: Updated Clerk user summary.

### `clerk.update_user_metadata` (~165 tokens)

Merge metadata fields for a Clerk user. Only the provided metadata keys are updated.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Returns the updated user summary.

Cost = 8 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `private_metadata`: Private metadata fields to merge. Existing keys not listed are preserved.
- `public_metadata`: Public metadata fields to merge. Existing keys not listed are preserved.
- `unsafe_metadata`: Unsafe metadata fields to merge. Existing keys not listed are preserved.
- `user_id` (string, required): Clerk user id (user_...) whose metadata to update.

Output parameters:

- `user`: Updated Clerk user object after the metadata merge.

### `files.upload_file` (~414 tokens)

Reserve a direct upload slot for a local file.

Pass the desired file_name. To place a file in folders, use a path in file_name (folder/subfolder/.../name). Optionally pass retention_days (default 7, minimum 1). The name may omit an extension. Vee3 returns an upload_code.

Install the Vee3 CLI once with `npm install -g @vee3/cli` (requires Node 18+), then run `vee3-upload {upload_code} {file_path}` in the terminal. The CLI resolves the code to a signed upload URL, streams the local file to Vee3 storage, and prints the stored file_name after the upload finishes. Use that file_name in files.list_uploaded_files and other capabilities. The CLI does not need an API key.

If installation fails with a TLS or certificate error (common on networks that inspect HTTPS traffic), use Node 22.15 or newer and run with NODE_OPTIONS=--use-system-ca, or configure npm to trust your network's root certificate.

Files can be up to 2 GB. Retention is chosen at reserve time (default 7 days). After the upload is detected, Vee3 bills `max(1, ceil(size_gibibytes * retention_days * 2))` tokens. Upload codes can be resolved within 60 minutes of reserve.

Use `files.list_uploaded_files` to list stored uploads for follow-up work.

Cost = 0 tokens to reserve. After upload completes, billing is max(1, ceil(size_gibibytes * retention_days * 2)) tokens.

Input parameters:

- `file_name` (string, required): Desired file name or path for the uploaded file. Use folder/subfolder/.../file_name to organize files in folders. Extension is optional and is replaced based on detected file type. Do not use '..' or…
- `retention_days`: How many days to keep the file after upload completes. Default 7. Billing uses size and this retention.

Output parameters:

- `command`: Suggested terminal command for uploading the local file.
- `expires_at`: ISO 8601 timestamp when the upload code can no longer be resolved (60 minutes after reserve).
- `install_command`: One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca.
- `max_bytes`: Maximum allowed file size in bytes.
- `retention_days`: Days the file will be retained after upload completes.
- `troubleshooting`: What to do if installation or uploading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps.
- `upload_code`: Short code to pass to the @vee3/upload CLI.
- `upload_id`: Stable identifier for the reserved upload.

### `clerk.verify_organization_domain_ownership` (~125 tokens)

Mark an organization domain's DNS ownership as verified via manual override.

Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.

Idempotent when ownership is already verified. Returns the updated domain summary.

Cost = 5 tokens.

Input parameters:

- `clerk_instance_id`: Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.
- `domain_id` (string, required): Clerk organization domain id (dmn_...) to update, delete, or verify.

Output parameters:

- `domain`: Organization domain summary after ownership verification.

### `website-screenshots.capture` (~378 tokens)

Capture a screenshot of a public website so the user or agent can inspect its layout, content, and UI.

The image is saved to account file storage. The response includes screenshot_url for API users and download_code for agents to run `vee3-get-file`.

Cost = 20 tokens.

Input parameters:

- `block_cookie_banners` (boolean): When true, attempt to dismiss common cookie consent banners and overlays before capture. Best-effort - custom or first-party banners may remain.
- `dark_mode` (boolean): When true, emulate prefers-color-scheme: dark so sites with dark-mode CSS render in dark mode. Has no effect on sites without dark-mode styling.
- `file_name`: Optional account-relative storage path for the screenshot. If omitted, the file is stored under downloads/ with a generated name.
- `format` (string): Output image format. 'png' preserves lossless quality (default). 'jpeg' produces smaller files.
- `full_page` (boolean): Capture the full scrollable page. When false, only the viewport area is captured.
- `quality` (integer): JPEG compression quality from 0 (smallest) to 100 (best). Only applies when format is 'jpeg'; ignored for PNG.
- `timeout_seconds` (integer): Maximum seconds to wait for the page to load before failing.
- `url` (string, required): Public http or https URL to capture. Private, localhost, and internal network addresses are blocked.
- `viewport_height` (integer): Browser viewport height in pixels.
- `viewport_width` (integer): Browser viewport width in pixels.
- `wait_until` (string): When to take the screenshot: 'load' (load event), 'domcontentloaded' (DOM ready, faster), or 'networkidle' (no network activity for 500ms, slowest but most complete).

Output parameters:

- `block_cookie_banners`: Echo of whether cookie banner dismissal was attempted.
- `command`: Suggested terminal command for downloading to a local path.
- `created_at`: ISO 8601 timestamp.
- `dark_mode`: Echo of whether dark color scheme emulation was used.
- `download_code`: Short code to pass to the @vee3/cli `vee3-get-file` command.
- `download_id`: Stable identifier for the reserved download.
- `expires_at`: ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve).
- `file_name`: Account-relative path where the screenshot was stored.
- `file_size_bytes`: Image file size in bytes.
- `format`: Echo of the requested output format (png or jpeg).
- `full_page`: Whether full page was captured.
- `install_command`: One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca.
- `quality`: Echo of JPEG quality used when format is jpeg.
- `retained_until`: ISO 8601 timestamp when account storage retention expires.
- `screenshot_id`: Unique identifier, prefix ss_.
- `screenshot_url`: Signed download URL from account file storage.
- `status`: Always "completed" for synchronous capture.
- `troubleshooting`: What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps.
- `url`: Echo of requested URL.
- `viewport_height`: Actual viewport height used.
- `viewport_width`: Actual viewport width used.

### `youtube.channel_details` (~143 tokens)

Fetch metadata for a public YouTube channel by channel id or URL.

Accepts a channel id (for example UCJ5v_MCY6GNUBTO8-D3XoAg) or common YouTube channel URLs (for example https://www.youtube.com/@WWE). Returns title, username, description, subscriber and view counts, join date, verification flags, avatar and banner images, keywords, and external links.

Cost = 10 tokens.

Input parameters:

- `channel_id` (string, required): YouTube channel id or URL (for example UCJ5v_MCY6GNUBTO8-D3XoAg or https://www.youtube.com/@WWE).

Output parameters:

- `artistBio`: Artist bio text when the channel is a music artist.
- `avatar`: Channel avatar images at different sizes.
- `badges`: Channel badges (for example Official Artist Channel).
- `banner`: Channel banner images for desktop, mobile, and TV layouts.
- `canonicalBaseUrl`: Canonical channel path on YouTube when available.
- `channelId`: Canonical YouTube channel id.
- `country`: Country associated with the channel when available.
- `description`: Channel About description.
- `hasBusinessEmail`: Whether a business email is available for contact.
- `isFamilySafe`: Whether the channel is marked family safe.
- `isVerified`: Whether the channel is verified.
- `isVerifiedArtist`: Whether the channel is a verified artist channel.
- `joinedDate`: Channel creation date (ISO 8601).
- `joinedDateText`: Human-readable join date.
- `keywords`: Channel keywords from the About page.
- `links`: External links listed on the channel About page.
- `stats`: Public channel statistics.
- `title`: Channel display name.
- `username`: Public @ handle when available.

### `youtube.channel_search` (~141 tokens)

Search public videos on a YouTube channel by keyword or phrase.

Accepts a bare channel id (for example UCJ5v_MCY6GNUBTO8-D3XoAg), not a URL. Returns matching video entries and cursorNext for pagination.

Use cursorNext from a prior response as cursor for the next page.

Cost = 10 tokens.

Input parameters:

- `channel_id` (string, required): YouTube channel id (for example UCJ5v_MCY6GNUBTO8-D3XoAg, not a URL).
- `cursor`: Pagination cursor from cursorNext.
- `query` (string, required): Search keywords or phrase within the channel.

Output parameters:

- `contents`: Matching video entries for the current page. Each entry includes a type field and nested video object.
- `cursorNext`: Cursor for the next page, when available.

### `youtube.channel_videos` (~147 tokens)

Fetch a paginated list of videos from a public YouTube channel by its channel id.

Accepts a channel id (for example UCg6gPGh8HU2U01vaFCAsvmQ) or common YouTube channel URLs (for example https://www.youtube.com/@ChrisTitusTech). Use cursor from a prior response for the next page.

Cost = 10 tokens.

Input parameters:

- `channel_id` (string, required): YouTube channel id or URL (for example UCg6gPGh8HU2U01vaFCAsvmQ or https://www.youtube.com/@ChrisTitusTech).
- `cursor`: Pagination cursor from a previous response cursor field.

Output parameters:

- `cursor`: Cursor for the next page, when available.
- `videos`: Channel videos for the current page.

### `youtube.playlist_details` (~87 tokens)

Fetch metadata for a public YouTube playlist by playlist id.

Returns title, description, creator summary, video and view counts, thumbnails, badges, and last updated timestamps.

Cost = 10 tokens.

Input parameters:

- `playlist_id` (string, required): YouTube playlist id (for example PLcirGkCPmbmFeQ1sm4wFciF03D_EroIfr).

Output parameters:

- `author`: Playlist creator summary.
- `badges`: Playlist badges when available.
- `description`: Playlist description.
- `playlistId`: Canonical YouTube playlist id.
- `stats`: Public playlist statistics.
- `thumbnails`: Playlist thumbnail images at different sizes.
- `title`: Playlist title.
- `updatedTime`: Last update date (ISO 8601).
- `updatedTimeText`: Human-readable last update time.

### `youtube.search` (~441 tokens)

Search public YouTube content by keyword or phrase.

Returns matching result cards, estimated result count, and spelling suggestions.

Use filter parameters to apply multiple YouTube search filters:
\- upload_date: Last hour, Today, This week, This month, This year
\- content_type: Video, Channel, Playlist, Movie
\- duration: Under 4 minutes, 4 - 20 minutes, Over 20 minutes
\- features: Live, 4K, HD, Subtitles/CC, Creative Commons, 360°, VR180, 3D, HDR, Location, Purchased (multiple allowed)
\- sort_by: Relevance, Upload date, View count, Rating

Filter values are matched case-insensitively. Only one option per group applies except features, which accepts multiple labels.

When a requested filter cannot be applied, the API returns the best-effort results available so far and includes unappliedFilters with the labels that were skipped.

Use cursor with the same query to paginate: pass cursorNext from a prior response. Filter parameters and cursor cannot be combined.

Check didYouMean when the query may be misspelled.

Cost = 20 tokens.

Input parameters:

- `content_type`: Content type filter. One of: Video, Channel, Playlist, Movie.
- `cursor`: Pagination cursor from cursorNext.
- `duration`: Duration filter. One of: Under 4 minutes, 4 - 20 minutes, Over 20 minutes.
- `features`: Feature filters. Multiple allowed. Each value must be one of: Live, 4K, HD, Subtitles/CC, Creative Commons, 360°, VR180, 3D, HDR, Location, Purchased.
- `language` (string): Language code for localized results (for example en).
- `location` (string): Country code for localized results (for example US).
- `query` (string, required): Search keywords or phrase.
- `sort_by`: Sort order. One of: Relevance, Upload date, View count, Rating.
- `upload_date`: Upload date filter. One of: Last hour, Today, This week, This month, This year.

Output parameters:

- `contents`: Search result entries for the current page. Video entries include a type field and nested video object.
- `cursorNext`: Cursor for the next results page, when available.
- `didYouMean`: Suggested corrected query when the search may be misspelled.
- `estimatedResults`: Approximate total number of matching results.
- `unappliedFilters`: Requested filter labels that could not be applied. Present only when at least one filter was skipped.

### `youtube.search_autocomplete` (~98 tokens)

Get YouTube search autocomplete suggestions for a partial query.

Returns the normalized query and an array of suggested search phrases. Optional language and location codes localize suggestions (defaults: en, US).

Cost = 8 tokens.

Input parameters:

- `language` (string): Language code for localized suggestions (for example en).
- `location` (string): Country code for localized suggestions (for example US).
- `query` (string, required): Partial search keywords or phrase.

Output parameters:

- `query`: Normalized query echoed from the provider.
- `results`: Suggested search phrases for the query.

### `youtube.video_comments` (~167 tokens)

Fetch top-level comments for a public YouTube video by its 11-character video id.

Returns comment text, author summary, vote and reply counts, pinned status, total comment count, and cursorNext for the next page.

Use sort_by to choose comment order:
\- sort_by: Top comments, Newest first

Sort values are matched case-insensitively.

Use cursor with the same video_id to paginate: pass cursorNext from a prior response. sort_by and cursor cannot be combined.

Cost = 15 tokens.

Input parameters:

- `cursor`: Pagination cursor from a previous response cursorNext field.
- `sort_by`: Comment sort order. One of: Top comments, Newest first.
- `video_id` (string, required): YouTube video id (11 characters, not a URL).

Output parameters:

- `comments`: Top-level comments for the current page and sort order. Additional provider-specific fields may appear on each entry.
- `cursorNext`: Cursor for the next comments page, when available.
- `totalCommentsCount`: Total number of comments on the video.

### `youtube.video_details` (~146 tokens)

Fetch metadata for a public YouTube video by video id or URL.

Accepts a bare 11-character video id (for example PuQFESk0BrA) or common YouTube watch, youtu.be, Shorts, and embed URLs. Returns title, description, view count, duration, publish date, channel id, category, keywords, and thumbnails.

Cost = 10 tokens.

Input parameters:

- `video_id` (string, required): YouTube video id or URL (for example PuQFESk0BrA, https://youtu.be/PuQFESk0BrA, or https://www.youtube.com/watch?v=PuQFESk0BrA).

Output parameters:

- `author`: Channel display name.
- `category`: Primary category label.
- `channel_id`: Uploader channel id.
- `description`: Plain-text video description.
- `is_live_content`: Whether the video is live content (True or False as a string).
- `keywords`: Video keyword tags.
- `number_of_views`: Total view count.
- `published_time`: Publish date (ISO 8601).
- `thumbnails`: Available thumbnail images at different sizes.
- `title`: Video title.
- `type`: Video type (for example NORMAL).
- `video_id`: Canonical YouTube video id.
- `video_length`: Video duration in seconds as a string.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/vee3io-vee3/mcp#diagnostics

## Score history

- 2026-08-03: 61
- 2026-08-02: 61
- 2026-08-01: 60
- 2026-07-31: 60
- 2026-07-30: 61
- 2026-07-29: 61
- 2026-07-28: 60
- 2026-07-27: 60
- 2026-07-26: 60

## Links

- Remote endpoint: https://mcp.vee3.io/mcp
- Authorisation metadata: https://mcp.vee3.io/.well-known/oauth-protected-resource/mcp
- Repository: https://github.com/Vee3io/vee3
- Website: https://vee3.io/capabilities
- Changelog RSS feed: https://verifymcp.io/servers/vee3io-vee3/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/vee3io-vee3/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/vee3io-vee3/mcp
