Account, billing, team, API key and model discovery tools for agents that use ModelsLab.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
ModelsLab personal access token (Sanctum) for the agent control plane
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Manage API keys for the authenticated user. Actions: list, create, get, update, delete. API keys are used for generation endpoints (/api/v6, /api/v7, /api/v8). All actions require authentication.
The API key action: list, create, get, update, delete
API key name (required for create, optional for update)
Notes about the API key (optional for create, update)
API key ID (required for get, update, delete)
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Manage API keys for the authenticated user. Actions: list, create, get, update, delete. API keys are used for generation endpoints (/api/v6, /api/v7, /api/v8). All actions require authentication.
| Argument | Type | Description |
|---|---|---|
| name | string | API key name (required for create, optional for update) |
| notes | string | Notes about the API key (optional for create, update) |
| action* | string | The API key action: list, create, get, update, delete |
| key_id | integer | API key ID (required for get, update, delete) |
{
"type": "object",
"required": [
"action"
],
"properties": {
"name": {
"type": "string",
"description": "API key name (required for create, optional for update)"
},
"notes": {
"type": "string",
"description": "Notes about the API key (optional for create, update)"
},
"action": {
"type": "string",
"description": "The API key action: list, create, get, update, delete"
},
"key_id": {
"type": "integer",
"description": "API key ID (required for get, update, delete)"
}
}
}Manage authentication for the ModelsLab agent control plane. Actions: signup, login, logout, logout-all, forgot-password, reset-password, resend-verification, verify. Login returns a bearer token for subsequent authenticated requests. Signup, login, forgot-password, reset-password, resend-verification, and verify do not require authentication.
| Argument | Type | Description |
|---|---|---|
| name | string | User name (optional for signup) |
| string | Email address (required for signup, login, forgot-password, reset-password, resend-verification) | |
| token | string | Reset token (required for reset-password) |
| action* | string | The auth action to perform: signup, login, logout, logout-all, forgot-password, reset-password, resend-verification, verify |
| password | string | Password (required for signup, login, reset-password) |
| device_name | string | Device name for the token (optional for login, default: "agent-control-plane") |
| token_expiry | string | Token expiry: 1_week, 1_month (default), 3_months, never (optional for login) |
| verification_code | string | Email verification code (required for verify) |
Manage billing for the authenticated user. Actions: stripe-config (get Stripe publishable key for headless card tokenization), create-setup-intent (create SetupIntent for 3DS-safe card saving), create-payment-link (generate Stripe-hosted payment URL to forward to human — supports card, Google Pay, Amazon Pay, Link, etc.), overview, payment-methods, add-payment-method, set-default-payment-method, remove-payment-method, billing-info, update-billing-info, invoices, invoice-detail, invoice-pdf. Three payment paths: (1) Headless: stripe-config → tokenize → payment_method_id, (2) Human-assisted: create-payment-link → forward URL → poll confirm-checkout, (3) SetupIntent: create-setup-intent → confirm via Stripe → reuse payment method. All actions require authentication.
| Argument | Type | Description |
|---|---|---|
| name | string | Billing name (for update-billing-info) |
| string | Billing email (for update-billing-info) | |
| action* | string | The billing action: stripe-config, create-setup-intent, create-payment-link, overview, payment-methods, add-payment-method, set-default-payment-method, remove-payment-method, billing-info, update-billing-info, invoices, invoice-detail, invoice-pdf |
| amount | number | Amount in USD, minimum $15 (required for create-payment-link with purpose=fund) |
| tax_id | string | Tax ID value (for update-billing-info) |
| plan_id | integer | Plan ID (required for create-payment-link with purpose=subscribe) |
Search and discover AI models available on ModelsLab. Actions: search (browse/filter models), filters (available filter options), tags (model tags), providers (model providers), detail (get model details by ID). The detail action returns endpoint configurations with a `parameters` JSON Schema object describing each endpoint's accepted parameters (types, constraints, defaults) alongside the raw UI `config` array. Requires authentication.
| Argument | Type | Description |
|---|---|---|
| sort | string | Sort order: recommended, newest, popular (for search, default: recommended) |
| tags | string | Comma-separated tags to filter by (for search) |
| action* | string | The models action: search, filters, tags, providers, detail |
| search | string | Search query for model name/description (for search) |
| feature | string | Filter by feature: imagen, video_fusion, audio_gen, llmaster, etc. (for search, tags) |
| model_id | string | Model ID (required for detail action) |
| per_page | integer | Results per page (for search, default: 20) |
Manage the authenticated user's profile. Actions: get (view profile), update (update name/username/about), update-password, update-socials, update-preferences. All actions require authentication.
| Argument | Type | Description |
|---|---|---|
| name | string | Display name (for update) |
| action* | string | The profile action: get, update, update-password, update-socials, update-preferences |
| github | string | GitHub URL (for update-socials) |
| discord | string | Discord handle (for update-socials) |
| string | Twitter/X URL (for update-socials) | |
| about_me | string | Bio/about text (for update) |
| string | Facebook URL (for update-socials) | |
| password | string | New password (required for update-password) |
| username | string | Username (for update) |
| string |
Manage subscriptions for the authenticated user. Actions: list-plans (view available subscription plans + pay-as-you-go options), list, create (headless with payment_method_id, or checkout URL without it), confirm-checkout (confirm Stripe checkout session), status (check subscription status), update (change plan), pause, resume, reset-cycle, charge-amount (set paid model charge amount), fix-payment. Headless flow: get publishable key via agent-billing stripe-config → tokenize card via Stripe API → pass payment_method_id to create. All actions require authentication.
| Argument | Type | Description |
|---|---|---|
| action* | string | The subscription action: list-plans, list, create, confirm-checkout, status, update, pause, resume, reset-cycle, charge-amount, fix-payment |
| amount | number | Charge amount in USD, $5-$10000 (required for charge-amount) |
| plan_id | integer | Plan ID to subscribe to (required for create) |
| session_id | string | Stripe checkout session ID (required for confirm-checkout) |
| new_plan_id | integer | New plan ID to switch to (required for update) |
| plan_category | string | Plan category: "enterprise", or "imagen" for the standard ModelsLab subscription (optional for fix-payment; defaults to the subscription's own category) |
| idempotency_key |
Manage teams for the authenticated user. Actions: list (view team members and pending invites), create (invite by email), get (view a team member), update (modify member role/permissions), delete (remove member), resend-invite, accept-invite. All actions require authentication.
| Argument | Type | Description |
|---|---|---|
| role | string | Member role (for update) |
| string | Email address to invite (required for create) | |
| action* | string | The teams action: list, create, get, update, delete, resend-invite, accept-invite |
| invite_id | string | Invite UUID (required for accept-invite) |
| member_id | integer | Team member ID (required for get, update, delete, resend-invite) |
| permissions | array | Permissions array (for update) |
| invite_status | string | Invite status: pending, accepted (for update) |
{
"type": "object",
"required": [
"action"
],
"properties": {
"role": {
"type": "string",
"description": "Member role (for update)"
},
"email": {
"type": "string",
"description": "Email address to invite (required for create)"
},
"action": {
"type": "string",
"description": "The teams action: list, create, get, update, delete, resend-invite, accept-invite"
},
"invite_id": {
"type": "string",
"description": "Invite UUID (required for accept-invite)"
},
"member_id": {
"type": "integer",
"description": "Team member ID (required for get, update, delete, resend-invite)"
},
"permissions": {
"type": "array",
"description": "Permissions array (for update)"
},
"invite_status": {
"type": "string",
"description": "Invite status: pending, accepted (for update)"
}
}
}Manage Sanctum access tokens for the authenticated user. Actions: list (view all tokens), revoke (revoke a specific token by ID), revoke-others (revoke all tokens except current), switch-account (get a token for a team account). All actions require authentication.
| Argument | Type | Description |
|---|---|---|
| action* | string | The token action: list, revoke, revoke-others, switch-account |
| token_id | integer | Token ID to revoke (required for revoke action) |
| device_name | string | Device name for new token (optional for switch-account) |
| token_expiry | string | Token expiry: 1_week, 1_month, 3_months, never (optional for switch-account) |
| account_username | string | Username of the team account to switch to (required for switch-account) |
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"type": "string",
"description": "The token action: list, revoke, revoke-others, switch-account"
},
"token_id": {
"type": "integer",
"description": "Token ID to revoke (required for revoke action)"
},
"device_name": {
"type": "string",
"description": "Device name for new token (optional for switch-account)"
},
"token_expiry": {
"type": "string",
"description": "Token expiry: 1_week, 1_month, 3_months, never (optional for switch-account)"
},
"account_username": {
"type": "string",
"description": "Username of the team account to switch to (required for switch-account)"
}
}
}View API usage analytics for the authenticated user. Actions: summary (usage overview with plan limits), products (per-product usage breakdown), history (recent generation request timeline with optional date filters). All actions require authentication.
| Argument | Type | Description |
|---|---|---|
| to | string | End date for history filter (YYYY-MM-DD format, optional for history) |
| from | string | Start date for history filter (YYYY-MM-DD format, optional for history) |
| limit | integer | Max number of history items to return (1-200, default 100, optional for history) |
| action* | string | The usage action: summary, products, history |
{
"type": "object",
"required": [
"action"
],
"properties": {
"to": {
"type": "string",
"description": "End date for history filter (YYYY-MM-DD format, optional for history)"
},
"from": {
"type": "string",
"description": "Start date for history filter (YYYY-MM-DD format, optional for history)"
},
"limit": {
"type": "integer",
"description": "Max number of history items to return (1-200, default 100, optional for history)"
},
"action": {
"type": "string",
"description": "The usage action: summary, products, history"
}
}
}Manage the wallet for the authenticated user. Actions: balance (view wallet balance), fund (add funds via Stripe payment), confirm-checkout (confirm a Stripe checkout session), payment-status (check payment intent status), auto-funding (configure auto-recharge), disable-auto-funding, withdraw (reseller only), validate-coupon, redeem-coupon. Fund with payment_method_id charges immediately; without it creates a Stripe checkout session. All actions require authentication.
| Argument | Type | Description |
|---|---|---|
| action* | string | The wallet action: balance, fund, confirm-checkout, payment-status, auto-funding, disable-auto-funding, withdraw, validate-coupon, redeem-coupon |
| amount | number | Amount in USD, minimum $15 for fund (required for fund, withdraw) |
| session_id | string | Stripe checkout session ID (required for confirm-checkout) |
| coupon_code | string | Coupon code (required for validate-coupon, redeem-coupon) |
| idempotency_key | string | Idempotency key for mutation actions (optional — auto-generated if omitted for fund, auto-funding, redeem-coupon) |
| purchase_amount | number | Purchase amount for bonus coupons (optional for validate-coupon, required for bonus coupon redeem) |
| charge_threshold | number |
| password_confirmation | string | Password confirmation (required for reset-password) |
{
"type": "object",
"required": [
"action"
],
"properties": {
"name": {
"type": "string",
"description": "User name (optional for signup)"
},
"email": {
"type": "string",
"description": "Email address (required for signup, login, forgot-password, reset-password, resend-verification)"
},
"token": {
"type": "string",
"description": "Reset token (required for reset-password)"
},
"action": {
"type": "string",
"description": "The auth action to perform: signup, login, logout, logout-all, forgot-password, reset-password, resend-verification, verify"
},
"password": {
"type": "string",
"description": "Password (required for signup, login, reset-password)"
},
"device_name": {
"type": "string",
"description": "Device name for the token (optional for login, default: \"agent-control-plane\")"
},
"token_expiry": {
"type": "string",
"description": "Token expiry: 1_week, 1_month (default), 3_months, never (optional for login)"
},
"verification_code": {
"type": "string",
"description": "Email verification code (required for verify)"
},
"password_confirmation": {
"type": "string",
"description": "Password confirmation (required for reset-password)"
}
}
}| purpose | string | Payment link purpose: "fund" (wallet) or "subscribe" (subscription). Required for create-payment-link. |
| invoice_id | string | Invoice ID (for invoice-detail, invoice-pdf) |
| tax_id_type | string | Tax ID type e.g. eu_vat, us_ein (required with tax_id) |
| address_city | string | City (for update-billing-info) |
| make_default | boolean | Make the new payment method the default (for add-payment-method, default: true) |
| address_line1 | string | Address line 1 (for update-billing-info) |
| address_line2 | string | Address line 2 (for update-billing-info) |
| address_state | string | State/province (for update-billing-info) |
| address_country | string | Country code (for update-billing-info) |
| idempotency_key | string | Idempotency key for mutation actions (optional — auto-generated if omitted for add-payment-method, update-billing-info) |
| payment_method_id | string | Stripe payment method ID (for add/set-default/remove-payment-method) |
| address_postal_code | string | Postal/zip code (for update-billing-info) |
{
"type": "object",
"required": [
"action"
],
"properties": {
"name": {
"type": "string",
"description": "Billing name (for update-billing-info)"
},
"email": {
"type": "string",
"description": "Billing email (for update-billing-info)"
},
"action": {
"type": "string",
"description": "The billing action: stripe-config, create-setup-intent, create-payment-link, overview, payment-methods, add-payment-method, set-default-payment-method, remove-payment-method, billing-info, update-billing-info, invoices, invoice-detail, invoice-pdf"
},
"amount": {
"type": "number",
"description": "Amount in USD, minimum $15 (required for create-payment-link with purpose=fund)"
},
"tax_id": {
"type": "string",
"description": "Tax ID value (for update-billing-info)"
},
"plan_id": {
"type": "integer",
"description": "Plan ID (required for create-payment-link with purpose=subscribe)"
},
"purpose": {
"type": "string",
"description": "Payment link purpose: \"fund\" (wallet) or \"subscribe\" (subscription). Required for create-payment-link."
},
"invoice_id": {
"type": "string",
"description": "Invoice ID (for invoice-detail, invoice-pdf)"
},
"tax_id_type": {
"type": "string",
"description": "Tax ID type e.g. eu_vat, us_ein (required with tax_id)"
},
"address_city": {
"type": "string",
"description": "City (for update-billing-info)"
},
"make_default": {
"type": "boolean",
"description": "Make the new payment method the default (for add-payment-method, default: true)"
},
"address_line1": {
"type": "string",
"description": "Address line 1 (for update-billing-info)"
},
"address_line2": {
"type": "string",
"description": "Address line 2 (for update-billing-info)"
},
"address_state": {
"type": "string",
"description": "State/province (for update-billing-info)"
},
"address_country": {
"type": "string",
"description": "Country code (for update-billing-info)"
},
"idempotency_key": {
"type": "string",
"description": "Idempotency key for mutation actions (optional — auto-generated if omitted for add-payment-method, update-billing-info)"
},
"payment_method_id": {
"type": "string",
"description": "Stripe payment method ID (for add/set-default/remove-payment-method)"
},
"address_postal_code": {
"type": "string",
"description": "Postal/zip code (for update-billing-info)"
}
}
}| provider |
| string |
| Filter by provider name (for search) |
| base_model | string | Filter by base model (for search) |
| model_type | string | Filter by model type (for search) |
| model_subcategory | string | Filter by model subcategory (for search) |
{
"type": "object",
"required": [
"action"
],
"properties": {
"sort": {
"type": "string",
"description": "Sort order: recommended, newest, popular (for search, default: recommended)"
},
"tags": {
"type": "string",
"description": "Comma-separated tags to filter by (for search)"
},
"action": {
"type": "string",
"description": "The models action: search, filters, tags, providers, detail"
},
"search": {
"type": "string",
"description": "Search query for model name/description (for search)"
},
"feature": {
"type": "string",
"description": "Filter by feature: imagen, video_fusion, audio_gen, llmaster, etc. (for search, tags)"
},
"model_id": {
"type": "string",
"description": "Model ID (required for detail action)"
},
"per_page": {
"type": "integer",
"description": "Results per page (for search, default: 20)"
},
"provider": {
"type": "string",
"description": "Filter by provider name (for search)"
},
"base_model": {
"type": "string",
"description": "Filter by base model (for search)"
},
"model_type": {
"type": "string",
"description": "Filter by model type (for search)"
},
"model_subcategory": {
"type": "string",
"description": "Filter by model subcategory (for search)"
}
}
}| Instagram URL (for update-socials) |
| nsfw_content | boolean | Enable NSFW content (for update-preferences) |
| current_password | string | Current password (required for update-password) |
| password_confirmation | string | New password confirmation (required for update-password) |
| wallet_notification_enabled | boolean | Enable wallet notifications (for update-preferences) |
| wallet_notification_threshold | number | Wallet notification threshold amount (for update-preferences) |
{
"type": "object",
"required": [
"action"
],
"properties": {
"name": {
"type": "string",
"description": "Display name (for update)"
},
"action": {
"type": "string",
"description": "The profile action: get, update, update-password, update-socials, update-preferences"
},
"github": {
"type": "string",
"description": "GitHub URL (for update-socials)"
},
"discord": {
"type": "string",
"description": "Discord handle (for update-socials)"
},
"twitter": {
"type": "string",
"description": "Twitter/X URL (for update-socials)"
},
"about_me": {
"type": "string",
"description": "Bio/about text (for update)"
},
"facebook": {
"type": "string",
"description": "Facebook URL (for update-socials)"
},
"password": {
"type": "string",
"description": "New password (required for update-password)"
},
"username": {
"type": "string",
"description": "Username (for update)"
},
"instagram": {
"type": "string",
"description": "Instagram URL (for update-socials)"
},
"nsfw_content": {
"type": "boolean",
"description": "Enable NSFW content (for update-preferences)"
},
"current_password": {
"type": "string",
"description": "Current password (required for update-password)"
},
"password_confirmation": {
"type": "string",
"description": "New password confirmation (required for update-password)"
},
"wallet_notification_enabled": {
"type": "boolean",
"description": "Enable wallet notifications (for update-preferences)"
},
"wallet_notification_threshold": {
"type": "number",
"description": "Wallet notification threshold amount (for update-preferences)"
}
}
}| string |
| Idempotency key for mutation actions (optional — auto-generated if omitted for create) |
| subscription_id | integer | Subscription ID (required for update, pause, resume, reset-cycle, fix-payment) |
| payment_method_id | string | Stripe payment method ID for headless subscription (optional for create — if provided, charges immediately without checkout redirect) |
| stripe_subscription_id | string | Stripe subscription ID (optional override for fix-payment) |
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"type": "string",
"description": "The subscription action: list-plans, list, create, confirm-checkout, status, update, pause, resume, reset-cycle, charge-amount, fix-payment"
},
"amount": {
"type": "number",
"description": "Charge amount in USD, $5-$10000 (required for charge-amount)"
},
"plan_id": {
"type": "integer",
"description": "Plan ID to subscribe to (required for create)"
},
"session_id": {
"type": "string",
"description": "Stripe checkout session ID (required for confirm-checkout)"
},
"new_plan_id": {
"type": "integer",
"description": "New plan ID to switch to (required for update)"
},
"plan_category": {
"type": "string",
"description": "Plan category: \"enterprise\", or \"imagen\" for the standard ModelsLab subscription (optional for fix-payment; defaults to the subscription's own category)"
},
"idempotency_key": {
"type": "string",
"description": "Idempotency key for mutation actions (optional — auto-generated if omitted for create)"
},
"subscription_id": {
"type": "integer",
"description": "Subscription ID (required for update, pause, resume, reset-cycle, fix-payment)"
},
"payment_method_id": {
"type": "string",
"description": "Stripe payment method ID for headless subscription (optional for create — if provided, charges immediately without checkout redirect)"
},
"stripe_subscription_id": {
"type": "string",
"description": "Stripe subscription ID (optional override for fix-payment)"
}
}
}| Balance threshold to trigger auto charge, min $1 (required for auto-funding) |
| payment_intent_id | string | Stripe payment intent ID (required for payment-status) |
| payment_method_id | string | Stripe payment method ID (optional for fund — charges immediately if provided, otherwise creates checkout session; required for bonus coupon redeem) |
| auto_charge_amount | number | Auto charge amount, min $5 (required for auto-funding) |
| auto_recharge_amount | number | Auto recharge amount (optional for fund) |
| auto_recharge_threshold | number | Auto recharge threshold (optional for fund) |
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"type": "string",
"description": "The wallet action: balance, fund, confirm-checkout, payment-status, auto-funding, disable-auto-funding, withdraw, validate-coupon, redeem-coupon"
},
"amount": {
"type": "number",
"description": "Amount in USD, minimum $15 for fund (required for fund, withdraw)"
},
"session_id": {
"type": "string",
"description": "Stripe checkout session ID (required for confirm-checkout)"
},
"coupon_code": {
"type": "string",
"description": "Coupon code (required for validate-coupon, redeem-coupon)"
},
"idempotency_key": {
"type": "string",
"description": "Idempotency key for mutation actions (optional — auto-generated if omitted for fund, auto-funding, redeem-coupon)"
},
"purchase_amount": {
"type": "number",
"description": "Purchase amount for bonus coupons (optional for validate-coupon, required for bonus coupon redeem)"
},
"charge_threshold": {
"type": "number",
"description": "Balance threshold to trigger auto charge, min $1 (required for auto-funding)"
},
"payment_intent_id": {
"type": "string",
"description": "Stripe payment intent ID (required for payment-status)"
},
"payment_method_id": {
"type": "string",
"description": "Stripe payment method ID (optional for fund — charges immediately if provided, otherwise creates checkout session; required for bonus coupon redeem)"
},
"auto_charge_amount": {
"type": "number",
"description": "Auto charge amount, min $5 (required for auto-funding)"
},
"auto_recharge_amount": {
"type": "number",
"description": "Auto recharge amount (optional for fund)"
},
"auto_recharge_threshold": {
"type": "number",
"description": "Auto recharge threshold (optional for fund)"
}
}
}