Kabaido MCP Connector
Kabaido MCP Server documentation
The Kabaido Model Context Protocol connector exposes 84 tools across 13 groups so Claude can process RFQs, build quotes, configure products, cost manufacturing process chains, and run sales analytics — all from inside the caller's Kabaido workspace.
Quickstart
- Open Claude at claude.ai and visit Settings → Connectors.
- Add a new connector pointing at
https://mcp.kabaido.com/api/mcp. - Complete the OAuth consent with your Kabaido account.
- Try: "Process this RFQ: 200x carbide end mills 10mm 4-flute AlTiN and 50x EN8 shafts 25mm h7."
Authentication
OAuth 2.0 Authorization Code Flow with PKCE (S256). The connector publishes RFC 8414 metadata at /.well-known/oauth-authorization-server. Access tokens expire in 1 hour; refresh tokens rotate on use and last 30 days.
| Endpoint | Method | Purpose |
|---|---|---|
| /api/mcp/oauth/authorize | GET | Authorization code issuance (PKCE-backed) |
| /api/mcp/oauth/token | POST | Code → tokens and refresh rotation |
| /api/mcp/oauth/revoke | POST | RFC 7009 token revocation |
| /.well-known/oauth-authorization-server | GET | RFC 8414 metadata document |
All registered clients are public — no client secret is accepted. Scopes: read:catalog, write:catalog, read:quotes, write:quotes, read:customers, write:customers, read:manufacturing, write:manufacturing, read:portal, write:portal, read:settings, write:settings, read:analytics, read:knowledge, write:knowledge.
Transport
- Primary: Streamable HTTP —
POST https://mcp.kabaido.com/api/mcpwith JSON-RPC 2.0 request bodies. - Fallback: SSE —
GET https://mcp.kabaido.com/api/mcp/ssethenPOST https://mcp.kabaido.com/api/mcp/message.
Tool groups (84 tools)
| Group | Count | Examples |
|---|---|---|
| RFQ | 3 | kabaido_process_rfq, kabaido_extract_rfq_specs, kabaido_match_rfq_to_products |
| Customers | 6 | kabaido_search_customers, kabaido_create_customer, kabaido_update_customer |
| Quotes | 13 | kabaido_create_quote, kabaido_add_line_item, kabaido_generate_quote_pdf, kabaido_send_quote_email |
| Stock | 4 | kabaido_list_stock_materials, kabaido_create_stock_material |
| Products | 7 | kabaido_search_products, kabaido_bulk_import_products, kabaido_export_products |
| Configurators | 5 | kabaido_configure_product, kabaido_configure_specialised |
| Catalog | 6 | kabaido_list_categories, kabaido_update_category_schema, kabaido_create_from_template |
| Manufacturing | 10 | kabaido_list_machines, kabaido_calculate_process_chain |
| Portal | 7 | kabaido_create_portal_link, kabaido_update_portal_link_settings |
| Integrations | 4 | kabaido_list_integrations, kabaido_test_integration |
| Settings | 9 | kabaido_invite_member, kabaido_update_branding |
| Analytics | 6 | kabaido_get_quote_analytics, kabaido_get_conversion_report |
| Knowledge / AEI | 4 | kabaido_search_knowledge, kabaido_recommend_material |
Error envelopes
Every failure returns the same JSON shape so Claude never sees a bare stack trace or generic 500:
{
"error": "Customer 01234567-89ab-4cde-8fed-0123456789ab not found in this workspace.",
"code": "ENTITY_NOT_FOUND",
"suggestion": "Verify the id or locate the record via kabaido_search_customers."
}Error codes in use: AUTH_REQUIRED, AUTH_EXPIRED, AUTH_INVALID, AUTH_INSUFFICIENT_SCOPE, WORKSPACE_NOT_FOUND, ENTITY_NOT_FOUND, VALIDATION_ERROR, DUPLICATE_ENTRY, RATE_LIMITED, QUOTE_STATUS_INVALID, CONFIGURATOR_VALIDATION, PRECONDITION_FAILED, UPSTREAM_UNAVAILABLE, INTERNAL_ERROR.
Rate limits
- Global: 120 requests per minute per subject (OAuth token or user id).
- Destructive per-tool: 10 requests per minute per subject per destructive tool.
- Response payloads cap at ~75 000 characters (≈19 000 tokens) with
warningssurfaced when truncation happens.
Worked examples
1. Process an RFQ end-to-end
kabaido_process_rfq(text: "500x M8x30 A4-80 socket cap, 200x 10mm AlTiN end mills, 50x EN8 h7 shafts 25mm x 100mm")
kabaido_create_quote(title: "Aerospace Dynamics RFQ 2026-01")
kabaido_add_line_item(...) x3
kabaido_calculate_totals(quote_id: ...)2. Build and send a quote
kabaido_search_customers(query: "Hoffmann")
kabaido_create_quote(customer_id: ..., title: "Hoffmann Q1 2026")
kabaido_add_product_to_quote(...) xN
kabaido_generate_quote_pdf(quote_id: ...)
kabaido_send_quote_email(quote_id: ..., recipient_email: "procurement@hoffmann.test")3. Configure a precision shaft
kabaido_list_configurators()
kabaido_get_configurator(configurator_id: ...)
kabaido_configure_product(
configurator_id: ...,
parameters: { diameter: 50, length: 200, material: "Ti-6Al-4V" }
)4. Cost a manufacturing process chain
kabaido_list_machines(classification: "cnc_mill")
kabaido_list_resources(department: "Manufacturing")
kabaido_calculate_process_chain({
stock_id: ...,
steps: [
{ machine_id: ..., resource_id: ..., minutes: 45, consumable_ids: [...] },
{ machine_id: ..., minutes: 10 },
{ resource_id: ..., minutes: 15 }
]
})5. Create a scoped customer portal
kabaido_create_portal_link({
slug: "ita-tools-cutting",
customer_id: ...,
enabled_category_ids: ["cutting-tools-uuid"],
enabled_configurator_ids: ["end-mill-configurator-uuid"]
})6. Quarterly sales review
kabaido_get_quote_analytics({ window_days: 90 })
kabaido_get_conversion_report({ window_days: 90 })
kabaido_get_product_analytics({ window_days: 90, limit: 10 })
kabaido_get_pipeline_report({ window_days: 60 })7. Register new stock material
kabaido_create_stock_material({
material_code: "Inconel 625 Round 15mm",
material_category: "titanium",
shape: "round",
cost_per_unit: 72,
unit: "kg"
})8. Invite a teammate
kabaido_invite_member({
email: "sarah@pentaprecision.test",
role: "engineer"
})Workspace isolation
Every tool filters its Supabase query by account_id. Leakage is prevented by:
- Supabase Row Level Security on every business table.
- Explicit
account_idfilters in every tool query. - Scope enforcement inside
defineTool. - Test coverage in
src/lib/mcp/__tests__/isolation.test.tsthat seeds two workspaces and asserts invisible.
Support
- support@kabaido.com — monitored with a 24h SLA.
- Privacy policy
- Terms of service