DEV Community

Cover image for Connect Cursor or Claude to 165 Typed CRM Tools With MCP
OCLauncher Team
OCLauncher Team

Posted on

Connect Cursor or Claude to 165 Typed CRM Tools With MCP

In the previous article, we created a FavCRM workspace and received a fav_mcp_* API key.

Now we can connect an agent.

FavCRM exposes its backend through the Model Context Protocol at:

https://api.favcrm.io/mcp
Enter fullscreen mode Exit fullscreen mode

Once authenticated, the client can discover 165 typed tools across CRM, bookings, loyalty, invoices, commerce, content, team onboarding, WhatsApp setup, and reporting.

Add FavCRM to Cursor

Create or update ~/.cursor/mcp.json.

{
  "mcpServers": {
    "favcrm": {
      "url": "https://api.favcrm.io/mcp",
      "headers": {
        "Authorization": "Bearer ${env:FAVCRM_API_KEY}"
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Then set the environment variable somewhere Cursor can read it.

export FAVCRM_API_KEY=fav_mcp_...
Enter fullscreen mode Exit fullscreen mode

Restart Cursor and check the MCP settings panel. The favcrm server should connect and expose the tool catalog.

The important detail is that the key lives in an environment variable, not in a repo-tracked config file.

Add FavCRM to Claude Desktop

Until OAuth connector installs are generally available, advanced users can use the same bearer-token shape in a Claude Desktop MCP config.

The server URL is the same:

https://api.favcrm.io/mcp
Enter fullscreen mode Exit fullscreen mode

The header is the same:

Authorization: Bearer fav_mcp_...
Enter fullscreen mode Exit fullscreen mode

The exact config file location depends on your Claude Desktop environment, but the MCP server shape is identical: a Streamable HTTP server URL plus the bearer token header.

Smoke-test from the CLI

The CLI is also an MCP client, so it is useful for smoke tests.

favcrm doctor
favcrm tool list
Enter fullscreen mode Exit fullscreen mode

To inspect one tool:

favcrm tool describe create_booking
Enter fullscreen mode Exit fullscreen mode

To call a read-only tool:

favcrm tool call list_services '{}'
Enter fullscreen mode Exit fullscreen mode

If the workspace is new, an empty list is not an error. It means the tool call succeeded and there are no services yet.

What the catalog gives the agent

An MCP tool is more than a function name.

Each FavCRM tool includes:

  • a name
  • a description
  • an input schema
  • an output shape
  • annotations for agent safety

Those annotations are what let an agent reason about operational risk.

For example:

  • list_services is read-only
  • create_booking writes data
  • cancel_booking changes booking state
  • customer-facing sends and external services are open-world operations

Agents should inspect unfamiliar tools before calling them:

favcrm tool describe create_booking
favcrm tool describe cancel_booking
favcrm tool describe request_send_approval
Enter fullscreen mode Exit fullscreen mode

This is the difference between an agent operating a backend and an agent guessing against a database.

Use plan checks before gated operations

Some operations depend on plan, module, quota, or billing state.

Before a write that might be gated, call:

favcrm plan status
favcrm plan check --tool create_account
favcrm plan check --module whatsapp
favcrm plan options
Enter fullscreen mode Exit fullscreen mode

If the operation requires an upgrade, the backend can return an upgrade action. A Stripe-hosted link is only created when the user explicitly confirms:

favcrm plan upgrade --plan-code favcrm-lite --confirm
Enter fullscreen mode Exit fullscreen mode

This keeps the agent from accidentally triggering payment flows while still making the next step clear.

Use approval-gated sends

Customer-facing messages should not be treated like normal CRUD.

For campaigns, WhatsApp, SMS, email, and inbox replies, prefer approval-gated workflows. The agent drafts the message, shows the user the intended recipient or segment, and requests approval before sending.

That pattern gives the agent power without letting it silently message customers.

A useful first prompt

After connecting FavCRM to Cursor or Claude, try:

Use the FavCRM tools to inspect this workspace.
First list my companies, then show plan status, then list services.
Do not create or send anything yet.
Enter fullscreen mode Exit fullscreen mode

A good agent should call safe read-only tools first:

  1. list_my_companies
  2. get_plan_status
  3. list_services

Then it should summarize what is configured and what is missing.

What comes next

Now that the agent can discover and call tools, we can build a useful app.

In the next article, we will create a booking storefront backed by real CRM data: services, available slots, bookings, confirmation, and customer records.

Top comments (0)