MCP server and API

LotsCRM for
your AI agent.

Add leads, log every conversation, move deals through custom pipelines and line up follow-ups from your agent, then review everything in the LotsCRM dashboard. Briefings give the agent the state of the pipeline before it advises or drafts.

https://api.lotscrm.com/mcp
39Tools

Ask your agent, for example.

Once LotsCRM is connected, plain requests like these work.

  • “Add these 20 people from today's event and tag them 'Oct meetup'.”
  • “Log my call with Priya and move her deal to Proposal.”
  • “What follow-ups are due today?”

Connect in two minutes.

Claude

Settings → Connectors → Add custom connector. Paste the URL, connect, and sign in with your Lots account.

ChatGPT

Settings → Apps & Connectors → Advanced → turn on Developer mode, then Create a connector with the URL and sign in.

Claude Code

claude mcp add --transport http lots-crm https://api.lotscrm.com/mcp

Codex

codex mcp add lots-crm --url https://api.lotscrm.com/mcp

Cursor, Windsurf and others

{
  "mcpServers": {
    "lots-crm": {
      "url": "https://api.lotscrm.com/mcp"
    }
  }
}

Cloud agents without MCP

Give the agent https://api.lotscrm.com/docs.md and an API key from lotstech.com/api. It calls the REST API with Authorization: Bearer <key>.

Every server uses OAuth: your agent acts as you, inside your own roles and workspaces. You can disconnect it at any time from the app.

39 tools, also REST endpoints.

Each tool is available over MCP and as a REST endpoint under https://api.lotscrm.com/api/v1/lotscrm.

Add CRM member

POST /workspaces/:workspace_id/members

Add an existing Lots Auth user to a workspace by email. Owner or admin required.

Archive company

DELETE /companies/:company_id

Recoverably archive a company; associated contacts and deals remain intact.

Archive contact

DELETE /contacts/:contact_id

Recoverably archive a contact. Existing deal and activity history remains intact.

Archive deal

DELETE /deals/:deal_id

Recoverably archive a deal using optimistic concurrency.

Bulk upsert prospects

POST /contacts/bulk

Import 1–100 researched or CSV-derived prospects. Email is the workspace deduplication key. Each row retains source and source_url provenance, and can carry tags and a company_name.

Choose a LotsCRM plan or add credits

POST /checkout

Create a checkout link. Pass plan (starter, pro or business) and cycle (monthly or annual) for a plan, or amount_usd (10 to 1000) to add LotsTech Credits. Give the link to the person to pay in their browser; never ask for card details in chat.

Create company

POST /companies

Create a company with provenance and optional custom fields.

Create contact

POST /contacts

Create a contact with consent, provenance, and optional company relationship.

Create CRM workspace

POST /workspaces

Create an isolated CRM workspace. With no organization_id, also creates the owner organization and a default six-stage sales pipeline. Retry with the same idempotency_key.

Create deal

POST /deals

Create a deal in an owned pipeline and stage with optional company and contacts.

Create follow-up

POST /follow-ups

Create a due task linked to a contact, company, or deal. This schedules work; it does not send outreach.

Create sales pipeline

POST /pipelines

Create a custom pipeline with ordered open, won, and lost stages. Owner or admin required.

Get company

GET /companies/:company_id

Get a company with its contacts and active deals.

Get contact

GET /contacts/:contact_id

Get a contact with company relationships, deals, and channels.

Get CRM briefing

GET /crm-briefing

Mandatory first read for CRM agents. Return the selected workspace, caller role, separately labelled public business truth and private guidance, pipeline configuration, and current sales priorities.

Get CRM workspace

GET /workspaces/:workspace_id

Get one accessible CRM workspace and the caller role.

Get daily sales brief

GET /sales-brief

Return deterministic sales priorities together with separately labelled workspace business context projected from LotsNotes.

Get deal

GET /deals/:deal_id

Get a deal with its stage, company, contacts, and stage history.

Get deal briefing

GET /deals/:deal_id/brief

Return complete pre-call context: workspace business context, deal, stage, company, contacts, recent activity, open follow-ups, and contact restrictions.

Get LotsCRM billing

GET /billing

Show how the caller's LotsCRM workspaces are paid for: the plan (if any), whether today is covered or paid from credits, the credit balance, and the plans to choose from. A workspace nobody pays for is read-only, never deleted.

Get pipeline summary

GET /pipeline-summary

Return deal counts, raw value, and weighted value per stage and currency without mixing currencies.

Get relationship timeline

GET /activities

Get recent activities linked to any supplied contact, company, or deal.

List companies

GET /companies

List active companies with search, lifecycle filtering, and pagination.

List contacts

GET /contacts

List active contacts with lead status, owner, search, and pagination filters.

List CRM members

GET /workspaces/:workspace_id/members

List members of an accessible CRM workspace.

List CRM workspaces

GET /workspaces

List active CRM workspaces available to the authenticated user.

List deals

GET /deals

List active deals by pipeline, stage, status, owner, or search text.

List follow-ups

GET /follow-ups

List due, overdue, completed, or owner-assigned follow-ups. Omitted completed returns open work.

List sales pipelines

GET /pipelines

List pipelines and their ordered stages.

Move deal

POST /deals/:deal_id/move

Move a deal to another stage atomically with status and stage history. Lost deals require lost_reason.

Prepare follow-up context

POST /deals/:deal_id/prepare-follow-up

Return grounded CRM and workspace business context plus safety instructions for drafting. It never sends and blocks opted-out or do-not-contact records.

Record sales activity

POST /activities

Record a call, meeting, email, message, note, or other completed interaction. This records history and never sends a message.

Search CRM

GET /search

Search contacts, companies, and deals in one accessible workspace.

Update company

PATCH /companies/:company_id

Update a company in the selected workspace.

Update contact

PATCH /contacts/:contact_id

Update contact qualification, consent, ownership, details, or company relationship.

Update CRM member

PATCH /workspaces/:workspace_id/members/:user_id

Change or suspend a workspace member. The owner cannot be changed through this tool.

Update CRM workspace

PATCH /workspaces/:workspace_id

Update workspace operating settings. Owner or admin required.

Update deal

PATCH /deals/:deal_id

Update deal details using expected_version to prevent an agent overwriting newer work. Use move_deal for stage changes.

Update follow-up

PATCH /follow-ups/:follow_up_id

Reschedule, reassign, edit, complete, or reopen a follow-up.

Questions, answered.

What is the LotsCRM MCP server URL?

https://api.lotscrm.com/mcp. Add it as a remote MCP server (custom connector) in your AI agent and sign in with your Lots account.

Which agents work with LotsCRM?

Claude, ChatGPT (developer mode), Claude Code, Codex, Cursor, Windsurf and any other client that supports remote MCP with OAuth. Agents without MCP use the REST API with an API key.

Where are the LotsCRM API docs?

https://api.lotscrm.com/docs.md: Markdown written so an AI agent can read it. Requests go to https://api.lotscrm.com/api/v1/lotscrm with Authorization: Bearer <your key>.

How do I get a LotsCRM API key?

Use Generate key on this page or at lotstech.com/api. Sign in with your LotsTech account, name the key and copy it once. You can revoke it there at any time.

Does MCP or API access cost extra?

No. It is included with LotsCRM. You pay only for LotsCRM's own plan or usage, and your AI provider bills its own usage.

All MCP servers · All APIs and keys