# Connect the core CRM toolset

> Use the smaller /mcp/crm address to give an AI app or coding agent the core CRM tools for clients, notes, proposals, invoices and tasks.

- Product: Workspace369
- Documentation version: 2026.3
- Section: AI connections
- Last updated: 2026-10-23
- Canonical source: https://docs.workspace369.com/v/2026.3/ai-connections/connect-the-core-crm-toolset/

---

Workspace369 serves the same MCP server at two addresses. The full address lists every tool. The core CRM address lists 21 of them, the ones you need to build and run a CRM, so an AI app has fewer tools to choose from.

```text
https://mcp.workspace369.com/mcp/crm
```

Everything else is identical to the full address. You sign in the same way, approve the same permissions, and every call runs as you within your own role. The same tokens, access levels, Token charges, rate limits and approval rules apply. Nothing on the core address can do more than the full address can.

## What the core address includes

| Area | Tools |
| --- | --- |
| Workspace | `workspace_get_context`, `workspace_schema`, `workspace_business_summary` |
| Clients and pipeline | `clients_search`, `clients_get`, `clients_create`, `clients_update`, `clients_move_stage` |
| Notes | `notes_search`, `notes_get`, `notes_create` |
| Proposals | `proposals_search`, `proposals_get`, `proposals_create_draft` |
| Invoices | `invoices_search`, `invoices_get`, `invoices_create_draft` |
| Tasks | `tasks_search`, `tasks_create`, `tasks_update` |
| Approvals | `approvals_get` |

Start with `workspace_get_context` and `workspace_schema`. They tell the app which workspace it is in, what you are allowed to do, and which client stages, custom fields and lead sources the workspace already uses.

Invoices and proposals are created as drafts. The core address has no tool that sends anything to a client. If a draft proposal needs a step that must wait for your approval, `approvals_get` lets the app check whether you have approved it.

Three guided prompts are available on the core address: **Set up my CRM**, **Import my clients** and **Weekly pipeline review**.

## When to use the full address instead

Use `https://mcp.workspace369.com/mcp` when the app needs anything outside the table above, for example:

- Sending an invoice, proposal or contract, or replying to a lead or sending an inbox message (these wait for your approval in the app).
- Calendar events, booking pages, team availability, projects, time entries, expenses, products, contracts, requests, recurring invoices or workflow history.
- The **Build a CRM front end** prompt.

You can connect both. Add each as its own server in the app.

## Connect with a personal access token

Coding agents and scripts that cannot open a sign-in page use a [personal access token](/v/2026.3/ai-connections/personal-access-tokens/). Create one under **Settings**, then **AI**, then **AI Connections (MCP)**, and choose only the scopes the agent needs. For a CRM builder that reads and writes records, that is view and edit access for Clients, Notes, Proposals, Invoices and Tasks.

### Claude Code

<!-- Source: https://code.claude.com/docs/en/mcp (section on adding remote HTTP servers; checked 2026-10-22). Syntax: `claude mcp add --transport http <name> <url> --header "Authorization: Bearer ..."`. `-t` and `-H` are accepted short forms. Default scope is local; `--scope project` writes .mcp.json, `--scope user` applies to all projects. `claude mcp add` does not validate credentials; `claude mcp list` and `/mcp` show status. -->

```text
claude mcp add --transport http workspace369-crm https://mcp.workspace369.com/mcp/crm --header "Authorization: Bearer mcp_pat_…"
```

By default the server is saved for you in the current project only. Add `--scope user` to use it in every project, or `--scope project` to write it to `.mcp.json` for your team. Do not commit a token: use `--scope local` or `--scope user` for a personal access token.

Claude Code saves the entry without checking the token, so a mistyped token fails later. Run `claude mcp list` (or `/mcp` inside Claude Code) and look for **Connected** next to `workspace369-crm`.

### Cursor

<!-- Source: https://cursor.com/docs/context/mcp (mcp.json for remote servers: `url` plus optional `headers`; project file .cursor/mcp.json, global file ~/.cursor/mcp.json; `${env:NAME}` interpolation works in `url` and `headers`; checked 2026-10-22). -->

Add the server to `.cursor/mcp.json` in your project, or to `~/.cursor/mcp.json` for every project. Set the token in an environment variable first, for example `WORKSPACE369_PAT`, then reference it so the token never sits in the file:

```json
{
  "mcpServers": {
    "workspace369-crm": {
      "url": "https://mcp.workspace369.com/mcp/crm",
      "headers": {
        "Authorization": "Bearer ${env:WORKSPACE369_PAT}"
      }
    }
  }
}
```

Cursor reads the variable from its own environment, so set it in your shell profile or system environment and restart Cursor.

### Sign in instead of using a token

Apps that can open a sign-in page, such as Claude and ChatGPT, need only the URL. Add `https://mcp.workspace369.com/mcp/crm` as a custom connector, sign in to Workspace369, choose the workspace and approve the access. See [Connect an AI app to your workspace](/v/2026.3/ai-connections/connect-an-ai-app-to-your-workspace/).

## Connect one workspace

To keep several workspaces as separate connections, use the workspace form of the core address:

```text
https://mcp.workspace369.com/w/{workspaceId}/mcp/crm
```

The workspace in the address must match the one your token or sign-in was approved for, or the request is refused.

## Next steps

1. Connect the core address with a token or sign-in.
2. Try a read-only prompt first, such as "Show my clients by pipeline stage".
3. Ask the app to create a draft invoice or proposal, then review and send it from Workspace369.
