# Conecto CRM (remote · api.conecto.chat)

Contacts, companies and deals, with every email, call and meeting on one record. Pay per action.

- Trust score: 61/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `api.conecto.chat`: 61/100 (this document), [markdown](https://verifymcp.io/servers/chat-conecto-crm/mcp-crm.md), [page](https://verifymcp.io/servers/chat-conecto-crm/mcp-crm)

## Channel facts

- Endpoint: `https://api.conecto.chat/mcp/crm`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (crm_archive_contact).
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 61/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 9407 tokens (~136/item across 69 items; 69 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 10/100
  - Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 78/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 33% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 9 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 70 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Conecto CRM MCP server?

Conecto CRM is a hosted endpoint at https://api.conecto.chat/mcp/crm, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http chat-conecto-crm 'https://api.conecto.chat/mcp/crm'
```

### Cursor

```json
{
  "mcpServers": {
    "chat-conecto-crm": {
      "url": "https://api.conecto.chat/mcp/crm"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "chat-conecto-crm": {
      "type": "http",
      "url": "https://api.conecto.chat/mcp/crm"
    }
  }
}
```

### Codex

```toml
[mcp_servers.chat-conecto-crm]
url = "https://api.conecto.chat/mcp/crm"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "chat-conecto-crm": {
      "type": "remote",
      "url": "https://api.conecto.chat/mcp/crm",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add chat-conecto-crm --url 'https://api.conecto.chat/mcp/crm' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  chat-conecto-crm:
    url: "https://api.conecto.chat/mcp/crm"
```

### Netclaw

```json
{
  "McpServers": {
    "chat-conecto-crm": {
      "Transport": "http",
      "Url": "https://api.conecto.chat/mcp/crm"
    }
  }
}
```

### Vellum

```bash
assistant mcp add chat-conecto-crm -t streamable-http -u 'https://api.conecto.chat/mcp/crm'
```

### Other

```json
{
  "mcpServers": {
    "chat-conecto-crm": {
      "type": "http",
      "url": "https://api.conecto.chat/mcp/crm"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 60, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-11-02 (score 60)

First indexed and scored.

## MCP tools (69)

### `crm_find_contacts` (~295 tokens)

Find contacts

Search the CRM by name, email, company or phone, or by filters on any field, tag or custom field, or by a saved segment. Returns a page of contacts (most recently seen first unless `sort` says otherwise), the total, and next_offset for the next page. Free.

Input parameters:

- `filters` (array): Conditions that must all match, e.g. [{"field": "lifecycle_stage", "op": "eq", "value": "customer"}, {"field": "renewal_date", "op": "lte", "value": "today+30"}]. field: a standard field, "tag", or a…
- `include_archived` (boolean)
- `lifecycle_stage` (string)
- `limit` (integer)
- `offset` (integer)
- `query` (string)
- `segment` (string): A saved segment (crm_save_segment), by name or id.
- `sort` (string): Field to sort by, "-" first for descending, e.g. "-amount" or "renewal_date".
- `tag` (string): Only records with this tag.

### `crm_get_contact` (~93 tokens)

Get a contact

One contact with its tags, custom fields, recent activity, open tasks and deals, by id or email, and came_from: the website visit that led to their first chat, booking, form or signup (channel, source, campaign, landing page), when the site is counted. crm_timeline has everything that happened with them. Free.

Input parameters:

- `contact_id` (integer)
- `email` (string)

### `crm_get_customer` (~140 tokens)

Everything open with a customer

One read before you answer someone: the contact (or company) and what is open with them across Conecto: open deals, help desk tickets, unpaid invoices and open quotes (with the balance due per currency), documents waiting for their signature, their next meetings, the last email, chat and call, their newsletters, and where they first came from on the website. By contact_id, email or company_id (then its contacts' records too). Each list shows up to 5; each area's own tools have the rest. Free.

Input parameters:

- `company_id` (integer)
- `contact_id` (integer)
- `email` (string)

### `crm_save_contact` (~212 tokens)

Save a contact

Create a contact, or update the one with this email if it already exists. Only the fields you send change; tags are added, custom fields merged. Without an email a new contact is always created. Costs $0.01 per call; nothing if it fails.

Input parameters:

- `company` (string): Company name; also links or creates the company record.
- `custom_fields` (object): Custom fields as {"key": value}, merged into the existing ones; null clears one. Keys defined with crm_define_field are checked against their type.
- `email` (string)
- `language` (string)
- `lifecycle_stage` (string)
- `location` (string)
- `name` (string)
- `notes` (string)
- `phone` (string)
- `tags` (array): Tags to add, e.g. ["vip"]; a new tag is made on first use. crm_tag_records removes tags.
- `timezone` (string)
- `title` (string)

### `crm_save_contacts` (~86 tokens)

Save many contacts

Create or update up to 100 contacts in one call, each exactly like crm_save_contact (matched by email; without an email a new contact is made). Each one succeeds or fails on its own; the reply lists which, and you pay only for the ones saved. Costs $0.01 per record saved; nothing if none are found.

Input parameters:

- `contacts` (array, required)

### `crm_update_contact` (~203 tokens)

Update a contact

Change fields on an existing contact by id. Only the fields you send change; tags are added, custom fields merged. Costs $0.01 per call; nothing if it fails.

Input parameters:

- `company` (string): Company name; also links or creates the company record.
- `contact_id` (integer, required)
- `custom_fields` (object): Custom fields as {"key": value}, merged into the existing ones; null clears one. Keys defined with crm_define_field are checked against their type.
- `email` (string)
- `language` (string)
- `lifecycle_stage` (string)
- `location` (string)
- `name` (string)
- `notes` (string)
- `phone` (string)
- `tags` (array): Tags to add, e.g. ["vip"]; a new tag is made on first use. crm_tag_records removes tags.
- `timezone` (string)
- `title` (string)

### `crm_archive_contact` (~56 tokens)

Archive a contact

Hide a contact from searches and lists. Its history is kept; crm_update_contact cannot un-archive, crm_restore_contact does. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `contact_id` (integer, required)

### `crm_restore_contact` (~36 tokens)

Restore a contact

Bring an archived contact back. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `contact_id` (integer, required)

### `crm_add_note` (~109 tokens)

Add a note

Add a note to a contact (by contact id or email), a deal or a company: what was said, decided or learned. A note on a deal also shows on its company's and contact's timelines. Costs $0.01 per call; nothing if it fails.

Input parameters:

- `body` (string, required)
- `company_id` (integer)
- `contact_id` (integer)
- `deal_id` (integer)
- `email` (string)
- `title` (string)

### `crm_create_task` (~109 tokens)

Create a task

A follow-up on a contact, with an optional due time (ISO 8601) and priority. Costs $0.01 per call; nothing if it fails.

Input parameters:

- `contact_id` (integer)
- `details` (string)
- `due_at` (string): ISO 8601, e.g. 2026-10-20T09:00:00Z
- `email` (string)
- `priority` (string)
- `title` (string, required)

### `crm_list_tasks` (~76 tokens)

List tasks

Tasks by status (default open), optionally for one contact or due before a time, soonest first, each with the contact it is about (id, name, email). Free.

Input parameters:

- `contact_id` (integer)
- `due_before` (string)
- `limit` (integer)
- `status` (string)

### `crm_complete_task` (~45 tokens)

Complete a task

Mark a task done (or cancelled). Costs $0.01 per call; nothing if it fails.

Input parameters:

- `status` (string)
- `task_id` (integer, required)

### `crm_save_company` (~210 tokens)

Save a company

Create a company, or update the one with this name (case-insensitive). With company_id, update that company instead, and a name renames it. Only the fields you send change; tags are added, custom fields merged. Costs $0.01 per call; nothing if it fails.

Input parameters:

- `company_id` (integer)
- `custom_fields` (object): Custom fields as {"key": value}, merged into the existing ones; null clears one. Keys defined with crm_define_field are checked against their type.
- `domain` (string)
- `employee_count` (integer)
- `industry` (string)
- `lifecycle_stage` (string)
- `name` (string): Required unless company_id is given; with it, the company's new name.
- `notes` (string)
- `tags` (array): Tags to add, e.g. ["vip"]; a new tag is made on first use. crm_tag_records removes tags.
- `website` (string)

### `crm_archive_company` (~89 tokens)

Archive a company

Hide a company from crm_find_companies, crm_search, duplicates and exports. Its people, deals and notes stay as they are, and crm_get_company still reads it (archived: true). Saving it again, even by name, does not bring it back; crm_restore_company does. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `company_id` (integer, required)

### `crm_restore_company` (~45 tokens)

Restore a company

Bring an archived company back into the lists, searches, duplicates and exports. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `company_id` (integer, required)

### `crm_save_companies` (~78 tokens)

Save many companies

Create or update up to 100 companies in one call, each exactly like crm_save_company (matched by name). Each one succeeds or fails on its own; the reply lists which, and you pay only for the ones saved. Costs $0.01 per record saved; nothing if none are found.

Input parameters:

- `companies` (array, required)

### `crm_find_companies` (~290 tokens)

Find companies

Search companies by name or domain, or by filters on any field, tag or custom field, or by a saved segment. Archived companies are left out unless include_archived is true. Returns a page, the total, and next_offset for the next page. Free.

Input parameters:

- `filters` (array): Conditions that must all match, e.g. [{"field": "lifecycle_stage", "op": "eq", "value": "customer"}, {"field": "renewal_date", "op": "lte", "value": "today+30"}]. field: a standard field, "tag", or a…
- `include_archived` (boolean)
- `lifecycle_stage` (string)
- `limit` (integer)
- `offset` (integer)
- `query` (string)
- `segment` (string): A saved segment (crm_save_segment), by name or id.
- `sort` (string): Field to sort by, "-" first for descending, e.g. "-amount" or "renewal_date".
- `tag` (string): Only records with this tag.

### `crm_get_company` (~82 tokens)

Get a company

One company, by id or name, with its tags, custom fields, people, deals (open ones first) and notes, each note with who wrote it (by and via, as crm_timeline gives them). An archived company is read too (archived: true). Free.

Input parameters:

- `company_id` (integer)
- `name` (string)

### `crm_save_deal` (~318 tokens)

Save a deal

Create a deal (no deal_id) or update one (with deal_id): pipeline and stage, amount, expected close date, next step, the company and contact it belongs to, tags and custom fields. A new deal starts at the first stage of its pipeline unless you give one. Costs $0.01 per call; nothing if it fails.

Input parameters:

- `amount` (number)
- `close_date` (string): YYYY-MM-DD: when it is expected to close
- `company_id` (integer)
- `company_name` (string)
- `contact_email` (string)
- `contact_id` (integer)
- `currency` (string)
- `custom_fields` (object): Custom fields as {"key": value}, merged into the existing ones; null clears one. Keys defined with crm_define_field are checked against their type.
- `deal_id` (integer)
- `description` (string)
- `lost_reason` (string)
- `next_step` (string)
- `pipeline` (string): Pipeline name or id (crm_list_pipelines). Default: the deal's own, else the first pipeline.
- `stage` (string): Stage name or id in that pipeline, e.g. "Proposal". A new deal without one starts at the first stage. crm_move_deal moves deals too.
- `tags` (array): Tags to add, e.g. ["vip"]; a new tag is made on first use. crm_tag_records removes tags.
- `title` (string)

### `crm_find_deals` (~358 tokens)

Find deals

Deals by pipeline, stage, status (open, won, lost), company or contact, or by filters on any field, tag or custom field, or by a saved segment; most recently changed first unless `sort` says otherwise. Deals that have not moved in 14 days: filters [{"field": "status", "op": "eq", "value": "open"}, {"field": "stage_entered_at", "op": "lt", "value": "today-14"}]. Free.

Input parameters:

- `company_id` (integer)
- `contact_id` (integer)
- `filters` (array): Conditions that must all match, e.g. [{"field": "lifecycle_stage", "op": "eq", "value": "customer"}, {"field": "renewal_date", "op": "lte", "value": "today+30"}]. field: a standard field, "tag", or a…
- `limit` (integer)
- `offset` (integer)
- `pipeline` (string)
- `query` (string)
- `segment` (string): A saved segment (crm_save_segment), by name or id.
- `sort` (string): Field to sort by, "-" first for descending, e.g. "-amount" or "renewal_date".
- `stage` (string)
- `status` (string)
- `tag` (string): Only records with this tag.

### `crm_get_deal` (~65 tokens)

Get a deal

One deal with its pipeline and stage, its stage history (each stage and the days it stayed there), its notes with who wrote each (by and via, as crm_timeline gives them), and its contact and company. Free.

Input parameters:

- `deal_id` (integer, required)

### `crm_list_pipelines` (~86 tokens)

List pipelines

The deal pipelines in order, each with its stages in order: id, name, probability (the chance a deal there is won, 0-100), outcome (open, won or lost), and how many deals sit there with their value by currency. Every account starts with "Sales": New, Qualified, Meeting, Proposal, Negotiation, Won, Lost. Free.

### `crm_save_pipeline` (~150 tokens)

Save a pipeline

Create a deal pipeline, or change one (by pipeline_id, or the pipeline with this name): its name, its position among the pipelines, and its stages in order. A stage that still holds deals cannot be dropped; move them first with crm_move_deal. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `name` (string, required)
- `pipeline_id` (integer)
- `position` (integer)
- `stages` (array): All the stages, in order. Keep a stage (and its deals) by giving its id or its current name. Won and Lost are added when no stage has those outcomes; open stages without a probability get one spread…

### `crm_delete_pipeline` (~67 tokens)

Delete a pipeline

Delete an empty pipeline (by id or name). A pipeline that holds deals cannot be deleted: move them to another pipeline first with crm_move_deal. The last pipeline cannot be deleted. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `pipeline` (string, required)

### `crm_move_deal` (~118 tokens)

Move a deal

Move a deal to a stage (by name or id), optionally of another pipeline. A won or lost stage closes the deal (give lost_reason when it is lost); an open stage reopens it. Each move is kept in the deal's history: crm_get_deal shows how many days it stayed in each stage. Costs $0.01 per call; nothing if it fails.

Input parameters:

- `deal_id` (integer, required)
- `lost_reason` (string)
- `pipeline` (string)
- `stage` (string, required)

### `crm_pipeline_report` (~161 tokens)

Pipeline report

How a pipeline is doing: open deals by stage with their value and weighted value (value x probability), deals won and lost in a period (this month by default) with the win rate, average deal won, average days to close and lost reasons, a forecast of open deals by expected close month, and how many open deals have not moved for stale_days. Values are per currency. Free.

Input parameters:

- `pipeline` (string): Name or id; default: the first pipeline.
- `since` (string): First day of the period: YYYY-MM-DD or today-30. Default: the 1st of this month.
- `stale_days` (integer)
- `until` (string): Last day of the period (included). Default: today.

### `crm_define_field` (~194 tokens)

Define a custom field

Add a field of your own to contacts, companies or deals, such as a "plan" picked from a list or a "renewal_date", or change its label, description or options. From then on values sent in custom_fields are checked against its type (text, number, boolean, date as YYYY-MM-DD, select from options, url, email, phone), and you can filter and sort on it. A field that holds values keeps its type; delete it and define it again to change the type. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `description` (string): What the field means, for whoever reads it next.
- `key` (string, required): snake_case, e.g. "renewal_date"
- `label` (string)
- `object` (string, required)
- `options` (array): select only: the allowed values
- `type` (string, required)

### `crm_list_fields` (~62 tokens)

List fields

The fields you can read, filter and sort on for contacts, companies and deals: the standard ones and the custom fields defined with crm_define_field (type, options, description, and how many records hold a value). Free.

Input parameters:

- `object` (string)

### `crm_delete_field` (~52 tokens)

Delete a custom field

Delete a custom field and its value on every record. This cannot be undone. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `key` (string, required)
- `object` (string, required)

### `crm_tag_records` (~105 tokens)

Tag records

Add and remove tags on up to 100 contacts, companies or deals at once, such as everyone who came to a webinar. A new tag is made on first use; tags match in any case. Find tagged records with the tag argument of the find tools. Costs $0.001 per record tagged; nothing if none are found.

Input parameters:

- `add` (array)
- `ids` (array, required)
- `object` (string, required)
- `remove` (array)

### `crm_list_tags` (~24 tokens)

List tags

Every tag with how many contacts, companies and deals carry it. Free.

### `crm_delete_tag` (~43 tokens)

Delete a tag

Delete a tag and take it off every contact, company and deal. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `name` (string, required)

### `crm_save_segment` (~248 tokens)

Save a segment

Save filters under a name, such as "customers renewing within 30 days" (a new name creates a segment, an existing one replaces its filters). Use it with the segment argument of crm_find_contacts, crm_find_companies, crm_find_deals and crm_export. Relative dates (today+30) are worked out each time. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `filters` (array, required): Conditions that must all match, e.g. [{"field": "lifecycle_stage", "op": "eq", "value": "customer"}, {"field": "renewal_date", "op": "lte", "value": "today+30"}]. field: a standard field, "tag", or a…
- `name` (string, required)
- `object` (string, required)
- `sort` (string): Default sort, e.g. "-amount".

### `crm_list_segments` (~34 tokens)

List segments

The saved segments, each with its filters and how many records match right now. Free.

Input parameters:

- `object` (string)

### `crm_delete_segment` (~51 tokens)

Delete a segment

Delete a saved segment; the records stay as they are. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `object` (string, required)
- `segment` (string, required): Name or id

### `crm_search` (~74 tokens)

Search the CRM

Find contacts, companies and deals in one call from whatever you have: a name, an email, a phone number (any format), a domain, a company name or a deal title. Use it to turn what someone told you into record ids. Free.

Input parameters:

- `limit` (integer)
- `query` (string, required)

### `crm_timeline` (~241 tokens)

Read a timeline

Everything that happened with a contact, a company (all its people) or a deal, or in the whole CRM when you name none of them, newest first: notes, tasks, emails from your inboxes, website chats, phone calls (with their summary), tickets, meetings, deal stage moves and deal notes, each with its contact_id where it has one. Each says who made it: `by` is the name of the key whose bot did (like "Ben, through Claude"), a person, a form or an import, or null; `via` is "dashboard" when a person made it on a dashboard link the key made, "ai_app" when the key's AI app did. Read it before you write to someone. For the next page pass next_before as `before`. Free.

Input parameters:

- `before` (string): ISO 8601: only entries before this time.
- `company_id` (integer)
- `contact_id` (integer)
- `deal_id` (integer)
- `email` (string)
- `limit` (integer)
- `types` (array): Only these kinds of entries.

### `crm_export` (~281 tokens)

Export as CSV

Contacts, companies or deals as CSV text (one row each; tags and custom fields as columns), with the same filters, tag and segment as the find tools: for a spreadsheet or for the owner. Archived contacts and companies are left out. Up to 500 rows a call; continue with next_offset. Free.

Input parameters:

- `filters` (array): Conditions that must all match, e.g. [{"field": "lifecycle_stage", "op": "eq", "value": "customer"}, {"field": "renewal_date", "op": "lte", "value": "today+30"}]. field: a standard field, "tag", or a…
- `limit` (integer)
- `object` (string, required)
- `offset` (integer)
- `segment` (string): A saved segment (crm_save_segment), by name or id.
- `sort` (string): Field to sort by, "-" first for descending, e.g. "-amount" or "renewal_date".
- `tag` (string): Only records with this tag.

### `crm_find_duplicates` (~107 tokens)

Find duplicates

Contacts or companies that are probably the same: contacts with the same email in any case, the same phone number in any format, or the same name at the same company; companies with the same domain, or the same name once "Inc", "Ltd", "GmbH" and the like are dropped. Archived ones are left out. Merge each group with crm_merge_contacts or crm_merge_companies. Free.

Input parameters:

- `limit` (integer)
- `object` (string)

### `crm_merge_contacts` (~106 tokens)

Merge contacts

Merge duplicate contacts into the one you keep. Its empty fields are filled from the others, tags and custom fields are combined (the kept contact wins where both have a value), and every note, task, email, chat, call, ticket and deal moves to it. The merged contacts are archived; their emails still find the kept contact. Costs $0.01 per call; nothing if it fails.

Input parameters:

- `keep_id` (integer, required)
- `merge_ids` (array, required)

### `crm_merge_companies` (~91 tokens)

Merge companies

Merge duplicate companies into the one you keep. Its empty fields are filled from the others, tags and custom fields are combined (the kept company wins where both have a value), and their people, deals and notes move to it. The merged companies are deleted. Costs $0.01 per call; nothing if it fails.

Input parameters:

- `keep_id` (integer, required)
- `merge_ids` (array, required)

### `account_balance` (~71 tokens)

Check balance

The account balance, how much of it is credit bought (AI visibility and the phone run only on that) and how much free and bonus credit, what running calls are holding, this key's daily budget, the auto-reload state, and how much of this month's free reads and downloads is used. Free.

### `account_get_call` (~50 tokens)

Get a call

One call by id: its status (queued, running, succeeded, failed), cost and result. Use it to poll a background call until it finishes. Free.

Input parameters:

- `call_id` (string, required)

### `account_list_calls` (~52 tokens)

List calls

Recent calls on this account, newest first, optionally only failed or succeeded ones, or one area's. Free.

Input parameters:

- `area` (string)
- `limit` (integer)
- `status` (string)

### `account_refund_topup` (~97 tokens)

Refund a top-up

Refund a top-up paid in the last 24 hours that none of has been used yet: its credit, with the first top-up's bonus, leaves the balance, and the card gets the credit back with its tax. The service fee is kept. Without topup_id, the newest top-up (GET /v1/topups lists them with their ids). Free. Free.

Input parameters:

- `topup_id` (integer)

### `account_set_owner_email` (~72 tokens)

Name the business's owner

When the account was made without the owner's email: send that person a link to confirm they own it. Once they confirm, the owner gets the account's warnings and approval requests, and only the owner raises limits. Nothing changes until they open the link. Free. Free.

Input parameters:

- `email` (string, required)

### `account_owner_link` (~100 tokens)

Get a sign-in link for the owner

A link that signs the business owner into their Conecto page, with no password: the balance, adding credit, auto-reload, limits, what the bots did, people, rentals and keys. page opens it where the owner is needed, like people for a role only the owner gives, or settings for joining by email domain. It works once, within 30 minutes; hand it to the owner. Free.

Input parameters:

- `page` (string)

### `account_dashboard_link` (~148 tokens)

Get a link to an area at a glance

A one-time link to a page showing one area as it is when the page opens, for when the person you work for asks to see it themselves: a recruiter looks at the applicants, a bookkeeper at what is due. Do the work and answer with the area's own tools first; a link never replaces that. When an answer would be a long list they would rather look through, offer a link and make it once they say yes. The page is made from the area's own reads as this key, so it shows only what this key may see. It opens once and keeps for an hour; an unopened link ends after 7 days. Free.

Input parameters:

- `area` (string, required)

### `account_get_limits` (~61 tokens)

Read the limits

The limits a business can ask Conecto to raise (calls a minute, new email addresses a day, phone numbers and more): each one's standard and current value and the most that can be asked for, and the business's requests with their answers. Free.

### `account_request_limit` (~198 tokens)

Ask for a higher limit

Ask Conecto to raise one of the business's limits: which one (or other, saying which), the number it needs, and why, in 40 to 2,000 characters. Conecto reviews it and approves (maybe with less) or declines; the answer comes as the account.limit_request_answered event and by email to the owner, who is also told now. For an account that has topped up; one request per limit at a time, five in 30 days. Free. Free.

Input parameters:

- `amount` (integer, required): The number the business needs, in the limit's unit (5000 calls a minute).
- `limit` (string, required): The limit, as account_get_limits names it, or other.
- `other` (string): With limit other: which limit, like "rows in one table".
- `reason` (string, required): What the business does that needs it, and why the current limit is too low.

### `account_events` (~113 tokens)

Read recent events

What happened in this account that someone outside the bot did, oldest first: applications, bookings, form responses, signatures, replies, emails received, goals reached on the website; and the custom events bots sent with account_emit_event. Kept 30 days. Poll with after = the last event_id you saw. Free.

Input parameters:

- `after` (integer): Only events after this event_id.
- `kinds` (array): Event names or areas ("hiring.*"); all when left out.
- `limit` (integer)

### `account_emit_event` (~197 tokens)

Send an event of your own

Send an event you name, custom.<name> (custom.lead_qualified, custom.order_shipped), to every channel subscribed to it (notify_subscribe with "custom.*" or its name: Slack, Teams, a webhook to Zapier, Make, n8n or the business's own systems) and to account_events, where another team's bot can pick it up. data is any JSON object (up to 10 KB); sent_by is added with this bot's name and team. $0.005 for each channel it goes to; free when no channel is subscribed. Costs $0.005 per channel it goes to; nothing if none are found.

Input parameters:

- `data` (object)
- `kind` (string, required): custom. and a name of lowercase letters, digits, dots, dashes and _.
- `link` (string)
- `text` (string)
- `title` (string, required)

### `account_search` (~116 tokens)

Search everything

One search over what this account holds: what its files say (PDFs, Word, Excel, PowerPoint, text), table rows, help center articles, CRM contacts, companies and deals, emails, tickets, quotes and invoices, book entries, stock items and project tasks. Every word must appear (any case); titles rank first, then the newest. Each result says which tool opens it. Narrow it with areas. Free.

Input parameters:

- `areas` (array)
- `limit` (integer)
- `query` (string, required)

### `account_get_brand` (~29 tokens)

See the business's look

The name, logo, colour and footer line the business's emails and published pages carry. Free.

### `account_set_brand` (~177 tokens)

Set the business's look

The business's name as the sender, its logo (a PNG, JPEG, WebP or GIF from the file store), its colour and a footer line (an address, a legal line), on every email to its customers (bookings, applications, tests, signatures, invoices, newsletters, replies) and on its published pages (forms, booking, careers, newsletters, status, views). Only what you pass changes; an empty string clears it. Mail from Conecto to you keeps Conecto's look. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `colour` (string): Hex, like #1a73e8; empty for none.
- `footer` (string)
- `logo_file_id` (string)
- `remove_logo` (boolean)
- `sender_name` (string)

### `account_list_email_templates` (~69 tokens)

See what the business's emails say

Every email Conecto sends to the business's customers (bookings, applications, interviews, tests, signatures, invoices and quotes, newsletter sign-ups), with when it goes out and its subject, headline and opening words as they are now, and the {variables} each can use. Free.

### `account_set_email_template` (~139 tokens)

Rewrite one of the business's emails

Change an email's subject, headline or opening words in the business's own voice, with {variables} from account_list_email_templates (like {name} or {when}). The facts under them (times, places, amounts, links and buttons) stay as they are. Only what you pass changes; an empty string brings back the original words. Plain text; a blank line starts a new paragraph. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `email` (string, required): Like booking_booked or invoice_sent.
- `headline` (string)
- `opening` (string)
- `subject` (string)

### `account_export_all` (~176 tokens)

Export everything

Everything this account holds, in ZIP files of up to 24 MB saved to its file store: every record of every area as JSON Lines, and the stored files themselves, with a README saying what is where. Credentials are left out. Runs in the background: poll the call with account_get_call; the result has a download link for each part. The parts open only for this key and for the owner's and admins' own keys that neither only read nor only draft. A key of a team other than the company-wide one gets owner_required. Free (EU Data Act). One at a time, three a day; the owner is emailed when an export is made. Free. Runs in the background: the reply has a call_id; poll it with the account_get_call tool or GET /v1/calls/<id>.

### `account_audit_log` (~129 tokens)

Read the audit log

The account's admin and security actions, newest first: keys made and revoked, limits and auto-reload, the owner's sign-ins, connectors, exports, vault reads and writes, credentials set and everything deleted. Ordinary work is in the call log (account_list_calls). verify: true also checks the hash chain, which breaks where an entry was changed or removed. Free.

Input parameters:

- `action` (string): Only actions starting with this, like "key." or "tool.vault_".
- `limit` (integer)
- `since` (string)
- `verify` (boolean)

### `account_save_team` (~561 tokens)

Create or change a team

A department, location or project group of the account, like Support, Finance or the Hamburg shop. Its keys (POST /v1/keys with "team") can only work in its areas, only read when read_only is on, and spend against its budget (monthly_budget_usd per budget_period: a month, a fiscal quarter or year, or a project total): a hard budget refuses the call that would pass it, a soft one only warns. At alert_percent you get the event account.budget_alert and the owner an email, once a period. erp_code is the team's cost center in the company's ERP, for statements. drafts_only makes every write of its keys wait for one of its managers (or the owner), for a new bot that should only draft. mailboxes are the Microsoft 365 or Google mailboxes its keys may act as. You may make a team and narrow one; widening its areas, letting it write, ending drafts only, switching a hard budget to soft, and raising or removing a budget are the owner's, on their account page, when the account has an owner email. The company-wide team holds every key no other team does and is never limited to areas. $0.001. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `alert_percent` (integer)
- `areas` (array|null): The areas its keys may work in (account tools always); null for every area.
- `budget` (string): hard refuses calls past the budget; soft only warns.
- `budget_ends_on` (string|null): The last day of a project budget, like 2026-12-31.
- `budget_period` (string): What the budget is for: a month, a quarter or a year of the account's fiscal calendar, or a project total until budget_ends_on.
- `drafts_only` (boolean): Every write of its keys waits for a person, and they get links that act for whoever opens them as "[redacted]".
- `erp_code` (string|null)
- `mailboxes` (array|null): The Microsoft 365 or Google mailboxes its keys may act as; null for every mailbox the connection lists.
- `monthly_budget_usd` (number|null): null counts the spend without a cap.
- `name` (string, required)
- `new_name` (string): Renames the team; its keys, spend and budget stay with it.
- `read_only` (boolean): Its keys only read, and get links that act for whoever opens them as "[redacted]".
- `sees_sensitive` (boolean): false hides suppliers' bank details and HR notes and contracts from its keys; only the owner turns it on.

### `account_list_teams` (~82 tokens)

List teams

The account's teams, the company-wide one first: each with its areas, whether it only reads, its budget (hard or soft, and its period) and alert line, this period's spend, its ERP code, whether it is paused, its keys, and its people with who manages it. A person's own assistant works within their teams. Free.

### `account_pause_team` (~69 tokens)

Pause a team

Stops every key of a team at once, this one too if it is the team's: their calls are refused until the owner starts the team again on their account page. For a bot that misbehaves or a team that spends too fast. Free. Free.

Input parameters:

- `team` (string, required)

### `account_assign_team` (~166 tokens)

Give something to a team

Move a form, a meeting type, a job, an inbox, a phone number, a newsletter, the website chat, a rental, a pipeline, a table or a website to a team. What happens through it is charged to that team from now on (a form's responses, a number's calls, an inbox's tickets), and its rental moves with it. Something a bot makes already belongs to the bot's team. Only a key of the company-wide team without limits moves things between teams. $0.001. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `id` (string): Its id, slug, name, address or number; not needed for the chat.
- `kind` (string, required)
- `team` (string, required)

### `account_add_approval_rule` (~394 tokens)

Hold a tool for approval

Make a tool wait for a person: every call of it, those whose argument is over a number (like invoices_create_credit_note when amount is over 500), or those whose argument is one of some values (like connect_call when method is POST, PUT, PATCH or DELETE). A held call answers approval_required with an approval_id and asks the approver; when they approve, call again with the same arguments, once (a call no person answers for adds the approval: header X-Conecto-Approval, or _meta.approvalId over MCP). The approver is an email, a saved channel, or a team (its managers, or everyone in it); each approver gets a link of their own, and the person whose call it is never approves it. With two_people_over, calls whose argument is over it need two people. Bills like Xero's bill approval: purchasing_create_bill with argument total holds bills over an amount, tax included; a rule on purchasing_pay_bill also holds batches with such a payment. Removing a rule is the owner's, on their account page, when the account has an owner email. $0.001. Costs $0.001 per call; nothing if it fails.

Input parameters:

- `approver_channel` (string): A saved notify channel.
- `approver_email` (string)
- `approver_team` (string): A team (account_list_teams).
- `approvers` (string): Who in approver_team approves.
- `argument` (string): An argument of the tool (or total, for purchasing_create_bill).
- `over` (number): Calls with argument over this are held.
- `tool` (string, required)
- `two_people_over` (number): Calls whose argument is over this need two people; higher than over.
- `values` (array): Calls with argument equal to one of these (any case) are held.

### `account_list_approval_rules` (~29 tokens)

List approval rules

The tools that wait for a person's approval, with their thresholds and approvers. Free.

### `account_find_person` (~148 tokens)

Find a person's data

Every record this account holds about one person, by their email address or phone number, across every area: CRM, chats, emails, tickets, forms, bookings, calls, applications, invoices, orders, newsletters, HR and the call log, with their chats and CRM history. For a person who asks what the business keeps about them (GDPR Art. 15). Shows each kind with its count and ids; account_export_person gives them a copy, account_erase_person erases what may go. Free.

Input parameters:

- `email` (string): The person's email address.
- `phone` (string): Their phone number in international format, like +1 503 555 0145.

### `account_export_person` (~170 tokens)

Export a person's data

Everything account_find_person finds about one person in one ZIP in the file store: their records as JSON Lines (credentials left out) and the files those records point to, like a CV. Give the person the download link when they ask for a copy of their data (GDPR Art. 15 and 20), once you know it is them. The ZIP opens only for this key and for the owner's and admins' own keys that neither only read nor only draft. A key of a team other than the company-wide one gets owner_required: pass the request to the owner. Free; 20 a day. Free.

Input parameters:

- `email` (string): The person's email address.
- `phone` (string): Their phone number in international format, like +1 503 555 0145.

### `account_erase_person` (~278 tokens)

Erase a person's data

Erases one person across every area when they ask (GDPR Art. 17), once you know it is them (they wrote from that address, or confirmed it). Their CRM contact, chat visitor, past meetings and calls are anonymised, so deals stay without them, and a meeting they were only a guest at drops them; their chats, CRM history, form and routing form answers, job applications with the CV, newsletter subscriptions and events are deleted, and the call log's contents that name them are cleared. Kept, each with its reason in the result: accounting records, employment records, signed documents, the audit log, the account's own settings, upcoming meetings, and emails and tickets (outreach emails and replies too) unless correspondence is true. Their address goes on the suppression lists, so it is never mailed again: outreach campaigns stop for them at once. Can't be undone; the owner is emailed. A key of a team other than the company-wide one gets owner_required: pass the request to the owner. Free. Free.

Input parameters:

- `correspondence` (boolean): Also delete their emails and tickets, when no law requires keeping them.
- `email` (string): The person's email address.
- `phone` (string): Their phone number in international format, like +1 503 555 0145.

### `account_data_locations` (~113 tokens)

See where the data is

Where each area's data is stored and processed: the company that runs each place, the country or region, and what it holds. Every area keeps its records in the database and runs on Conecto's servers; some also use a service named here (email, phone, PDFs, search). For the business's records of processing and its transfer assessments (GDPR Art. 30 and 44). Free.

Input parameters:

- `areas` (array): Areas to show, like ["email", "phone"]; all when left out.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/chat-conecto-crm/mcp-crm#diagnostics

## Score history

- 2026-11-05: 61
- 2026-11-04: 61
- 2026-11-03: 60
- 2026-11-02: 60

## Common questions

### What is the Conecto CRM MCP server?

Conecto CRM is an MCP server listed in the public MCP registry as chat.conecto/crm. Contacts, companies and deals, with every email, call and meeting on one record. Pay per action. This page covers its hosted endpoint (https://api.conecto.chat/mcp/crm).

### Is the Conecto CRM MCP server safe to use?

Conecto CRM scores 61 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Conecto CRM MCP server expose?

Conecto CRM exposes 69 tools: crm_find_contacts, crm_get_contact, crm_get_customer, crm_save_contact, crm_save_contacts, and 64 more. Their descriptions and schemas cost roughly 9,294 tokens of context every time the server is loaded.

### Does the Conecto CRM MCP server require authentication?

No. We connected to Conecto CRM without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Conecto CRM MCP server still maintained?

Conecto CRM is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.conecto.chat/mcp/crm
- Authorisation metadata: https://api.conecto.chat/.well-known/oauth-protected-resource/mcp/crm
- Website: https://conecto.chat/tools/crm
- Changelog RSS feed: https://verifymcp.io/servers/chat-conecto-crm/mcp-crm.xml
- Changelog JSON feed: https://verifymcp.io/servers/chat-conecto-crm/mcp-crm.json
- HTML version of this page: https://verifymcp.io/servers/chat-conecto-crm/mcp-crm
