ModelsLab Agent Control Plane
Account, billing, team, API key and model discovery tools for agents that use ModelsLab.
Should I use this
Quality & Safety
Findings (10)
- LOWin agent-auth
- LOWin agent-tokens
- LOWin agent-profile
- LOWin agent-api-keys
- LOWin agent-usage
- LOWin agent-models
- LOWin agent-billing
- LOWin agent-wallet
- LOWin agent-subscriptions
- LOWin agent-teams
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"modelslab-agents": {
"url": "https://modelslab.com/mcp/agents"
}
}
}Remote endpoints
https://modelslab.com/mcp/agentsstreamable-httpWhat it can do
Tool inventory
Tools (10)
⚪agent-auth(action, email, password, password_confirmation, name, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"action": {
"description": "The auth action to perform: signup, login, logout, logout-all, forgot-password, reset-password, resend-verification, verify",
"type": "string"
},
"email": {
"description": "Email address (required for signup, login, forgot-password, reset-password, resend-verification)",
"type": "string"
},
"password": {
"description": "Password (required for signup, login, reset-password)",
"type": "string"
},
"password_confirmation": {
"description": "Password confirmation (required for reset-password)",
"type": "string"
},
"name": {
"description": "User name (optional for signup)",
"type": "string"
},
"device_name": {
"description": "Device name for the token (optional for login, default: \"agent-control-plane\")",
"type": "string"
},
"token": {
"description": "Reset token (required for reset-password)",
"type": "string"
},
"token_expiry": {
"description": "Token expiry: 1_week, 1_month (default), 3_months, never (optional for login)",
"type": "string"
},
"verification_code": {
"description": "Email verification code (required for verify)",
"type": "string"
}
},
"required": [
"action"
]
}🟢agent-tokens(action, token_id, account_username, device_name, token_expiry)
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.
Input Schema
{
"type": "object",
"properties": {
"action": {
"description": "The token action: list, revoke, revoke-others, switch-account",
"type": "string"
},
"token_id": {
"description": "Token ID to revoke (required for revoke action)",
"type": "integer"
},
"account_username": {
"description": "Username of the team account to switch to (required for switch-account)",
"type": "string"
},
"device_name": {
"description": "Device name for new token (optional for switch-account)",
"type": "string"
},
"token_expiry": {
"description": "Token expiry: 1_week, 1_month, 3_months, never (optional for switch-account)",
"type": "string"
}
},
"required": [
"action"
]
}🟡agent-profile(action, name, username, about_me, current_password, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"action": {
"description": "The profile action: get, update, update-password, update-socials, update-preferences",
"type": "string"
},
"name": {
"description": "Display name (for update)",
"type": "string"
},
"username": {
"description": "Username (for update)",
"type": "string"
},
"about_me": {
"description": "Bio/about text (for update)",
"type": "string"
},
"current_password": {
"description": "Current password (required for update-password)",
"type": "string"
},
"password": {
"description": "New password (required for update-password)",
"type": "string"
},
"password_confirmation": {
"description": "New password confirmation (required for update-password)",
"type": "string"
},
"facebook": {
"description": "Facebook URL (for update-socials)",
"type": "string"
},
"github": {
"description": "GitHub URL (for update-socials)",
"type": "string"
},
"twitter": {
"description": "Twitter/X URL (for update-socials)",
"type": "string"
},
"instagram": {
"description": "Instagram URL (for update-socials)",
"type": "string"
},
"discord": {
"description": "Discord handle (for update-socials)",
"type": "string"
},
"nsfw_content": {
"description": "Enable NSFW content (for update-preferences)",
"type": "boolean"
},
"wallet_notification_enabled": {
"description": "Enable wallet notifications (for update-preferences)",
"type": "boolean"
},
"wallet_notification_threshold": {
"description": "Wallet notification threshold amount (for update-preferences)",
"type": "number"
}
},
"required": [
"action"
]
}⚪agent-api-keys(action, key_id, name, notes)
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.
Input Schema
{
"type": "object",
"properties": {
"action": {
"description": "The API key action: list, create, get, update, delete",
"type": "string"
},
"key_id": {
"description": "API key ID (required for get, update, delete)",
"type": "integer"
},
"name": {
"description": "API key name (required for create, optional for update)",
"type": "string"
},
"notes": {
"description": "Notes about the API key (optional for create, update)",
"type": "string"
}
},
"required": [
"action"
]
}🟢agent-usage(action, from, to, limit)
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.
Input Schema
{
"type": "object",
"properties": {
"action": {
"description": "The usage action: summary, products, history",
"type": "string"
},
"from": {
"description": "Start date for history filter (YYYY-MM-DD format, optional for history)",
"type": "string"
},
"to": {
"description": "End date for history filter (YYYY-MM-DD format, optional for history)",
"type": "string"
},
"limit": {
"description": "Max number of history items to return (1-200, default 100, optional for history)",
"type": "integer"
}
},
"required": [
"action"
]
}🟢agent-models(action, model_id, search, feature, provider, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"action": {
"description": "The models action: search, filters, tags, providers, detail",
"type": "string"
},
"model_id": {
"description": "Model ID (required for detail action)",
"type": "string"
},
"search": {
"description": "Search query for model name/description (for search)",
"type": "string"
},
"feature": {
"description": "Filter by feature: imagen, video_fusion, audio_gen, llmaster, etc. (for search, tags)",
"type": "string"
},
"provider": {
"description": "Filter by provider name (for search)",
"type": "string"
},
"model_type": {
"description": "Filter by model type (for search)",
"type": "string"
},
"model_subcategory": {
"description": "Filter by model subcategory (for search)",
"type": "string"
},
"base_model": {
"description": "Filter by base model (for search)",
"type": "string"
},
"tags": {
"description": "Comma-separated tags to filter by (for search)",
"type": "string"
},
"sort": {
"description": "Sort order: recommended, newest, popular (for search, default: recommended)",
"type": "string"
},
"per_page": {
"description": "Results per page (for search, default: 20)",
"type": "integer"
}
},
"required": [
"action"
]
}🔴agent-billing(action, payment_method_id, make_default, name, email, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"action": {
"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",
"type": "string"
},
"payment_method_id": {
"description": "Stripe payment method ID (for add/set-default/remove-payment-method)",
"type": "string"
},
"make_default": {
"description": "Make the new payment method the default (for add-payment-method, default: true)",
"type": "boolean"
},
"name": {
"description": "Billing name (for update-billing-info)",
"type": "string"
},
"email": {
"description": "Billing email (for update-billing-info)",
"type": "string"
},
"tax_id": {
"description": "Tax ID value (for update-billing-info)",
"type": "string"
},
"tax_id_type": {
"description": "Tax ID type e.g. eu_vat, us_ein (required with tax_id)",
"type": "string"
},
"address_line1": {
"description": "Address line 1 (for update-billing-info)",
"type": "string"
},
"address_line2": {
"description": "Address line 2 (for update-billing-info)",
"type": "string"
},
"address_city": {
"description": "City (for update-billing-info)",
"type": "string"
},
"address_state": {
"description": "State/province (for update-billing-info)",
"type": "string"
},
"address_postal_code": {
"description": "Postal/zip code (for update-billing-info)",
"type": "string"
},
"address_country": {
"description": "Country code (for update-billing-info)",
"type": "string"
},
"invoice_id": {
"description": "Invoice ID (for invoice-detail, invoice-pdf)",
"type": "string"
},
"idempotency_key": {
"description": "Idempotency key for mutation actions (optional — auto-generated if omitted for add-payment-method, update-billing-info)",
"type": "string"
},
"purpose": {
"description": "Payment link purpose: \"fund\" (wallet) or \"subscribe\" (subscription). Required for create-payment-link.",
"type": "string"
},
"amount": {
"description": "Amount in USD, minimum $15 (required for create-payment-link with purpose=fund)",
"type": "number"
},
"plan_id": {
"description": "Plan ID (required for create-payment-link with purpose=subscribe)",
"type": "integer"
}
},
"required": [
"action"
]
}⚪agent-wallet(action, amount, payment_method_id, auto_recharge_amount, auto_recharge_threshold, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"action": {
"description": "The wallet action: balance, fund, confirm-checkout, payment-status, auto-funding, disable-auto-funding, withdraw, validate-coupon, redeem-coupon",
"type": "string"
},
"amount": {
"description": "Amount in USD, minimum $15 for fund (required for fund, withdraw)",
"type": "number"
},
"payment_method_id": {
"description": "Stripe payment method ID (optional for fund — charges immediately if provided, otherwise creates checkout session; required for bonus coupon redeem)",
"type": "string"
},
"auto_recharge_amount": {
"description": "Auto recharge amount (optional for fund)",
"type": "number"
},
"auto_recharge_threshold": {
"description": "Auto recharge threshold (optional for fund)",
"type": "number"
},
"auto_charge_amount": {
"description": "Auto charge amount, min $5 (required for auto-funding)",
"type": "number"
},
"charge_threshold": {
"description": "Balance threshold to trigger auto charge, min $1 (required for auto-funding)",
"type": "number"
},
"coupon_code": {
"description": "Coupon code (required for validate-coupon, redeem-coupon)",
"type": "string"
},
"purchase_amount": {
"description": "Purchase amount for bonus coupons (optional for validate-coupon, required for bonus coupon redeem)",
"type": "number"
},
"session_id": {
"description": "Stripe checkout session ID (required for confirm-checkout)",
"type": "string"
},
"payment_intent_id": {
"description": "Stripe payment intent ID (required for payment-status)",
"type": "string"
},
"idempotency_key": {
"description": "Idempotency key for mutation actions (optional — auto-generated if omitted for fund, auto-funding, redeem-coupon)",
"type": "string"
}
},
"required": [
"action"
]
}🟡agent-subscriptions(action, subscription_id, plan_id, payment_method_id, new_plan_id, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"action": {
"description": "The subscription action: list-plans, list, create, confirm-checkout, status, update, pause, resume, reset-cycle, charge-amount, fix-payment",
"type": "string"
},
"subscription_id": {
"description": "Subscription ID (required for update, pause, resume, reset-cycle, fix-payment)",
"type": "integer"
},
"plan_id": {
"description": "Plan ID to subscribe to (required for create)",
"type": "integer"
},
"payment_method_id": {
"description": "Stripe payment method ID for headless subscription (optional for create — if provided, charges immediately without checkout redirect)",
"type": "string"
},
"new_plan_id": {
"description": "New plan ID to switch to (required for update)",
"type": "integer"
},
"amount": {
"description": "Charge amount in USD, $5-$10000 (required for charge-amount)",
"type": "number"
},
"plan_category": {
"description": "Plan category: \"enterprise\", or \"imagen\" for the standard ModelsLab subscription (optional for fix-payment; defaults to the subscription's own category)",
"type": "string"
},
"stripe_subscription_id": {
"description": "Stripe subscription ID (optional override for fix-payment)",
"type": "string"
},
"session_id": {
"description": "Stripe checkout session ID (required for confirm-checkout)",
"type": "string"
},
"idempotency_key": {
"description": "Idempotency key for mutation actions (optional — auto-generated if omitted for create)",
"type": "string"
}
},
"required": [
"action"
]
}🔴agent-teams(action, member_id, invite_id, email, role, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"action": {
"description": "The teams action: list, create, get, update, delete, resend-invite, accept-invite",
"type": "string"
},
"member_id": {
"description": "Team member ID (required for get, update, delete, resend-invite)",
"type": "integer"
},
"invite_id": {
"description": "Invite UUID (required for accept-invite)",
"type": "string"
},
"email": {
"description": "Email address to invite (required for create)",
"type": "string"
},
"role": {
"description": "Member role (for update)",
"type": "string"
},
"permissions": {
"description": "Permissions array (for update)",
"type": "array"
},
"invite_status": {
"description": "Invite status: pending, accepted (for update)",
"type": "string"
}
},
"required": [
"action"
]
}Community
Evidence