title: Agent quickstart · status: DRAFT (not approved, not published)
Agent quickstart: Richbee CRM
1. Get a key
TODO: signup flow. Keys are sent as Authorization: Bearer <key>. The test prefix is rb_test_; TODO: the live prefix. Machine clients can instead exchange a client_id/secret at POST <your-richbee-endpoint>/oauth/token (grant_type=client_credentials, optional scope) for an rb_at_... token.
2. Connect your client
Cursor (~/.cursor/mcp.json)
{ "mcpServers": { "richbee-crm": { "url": "<your-richbee-endpoint>/mcp", "headers": { "Authorization": "Bearer rb_..." } } } }Claude Code
claude mcp add --transport http richbee-crm <your-richbee-endpoint>/mcp --header "Authorization: Bearer rb_..."Claude.ai / Claude Desktop
TODO: custom connectors expect OAuth authorization-code, and Richbee currently supports only client_credentials. Recommended path is TBD.
Agent frameworks (any MCP client)
Point any MCP client that supports streamable HTTP at <your-richbee-endpoint>/mcp with the bearer header. TODO: tested snippets for specific frameworks.
Raw JSON-RPC check:
curl -s <your-richbee-endpoint>/mcp \
-H "Authorization: Bearer rb_..." -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'No MCP? Use REST via <your-richbee-endpoint>/openapi.json. Paths are /v1/{companies,contacts,deals,notes}.
3. Try it
The agent calls create_company, then create_contact, then create_deal with {"title":"Acme pilot","amount_cents":1200000,"stage":"qualified"}.
Tools at a glance
| Tools | Scope |
|---|---|
list_*, get_*, export_{entity} |
crm:read |
create_*, update_*, delete_*, bulk_{create,update,delete}_* (max 100, atomic) |
crm:write |
export_workspace, get_export (links valid 15 min) |
admin |
Entities: company, contact, deal (stages: lead, qualified, proposal, won, lost; amounts in cents), note.
When something fails
Errors are application/problem+json with code and hint. Follow the hint. Retry creates with the same Idempotency-Key so nothing is duplicated.
