Conecto Forms MCP
An official MCP server provided by Conecto that enables AI agents to create, manage, and analyze forms and surveys. It supports tools for creating forms, listing responses, exporting data, and integrating form submissions with CRM and email inboxes, operating on a pay-per-action model.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.conecto.chat/mcp/formsWhat its tools do
40 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (20)
forms_getforms_listforms_list_responsesforms_get_responseforms_summaryaccount_balanceaccount_get_callaccount_list_callsaccount_owner_linkaccount_dashboard_linkaccount_get_limitsaccount_eventsaccount_searchaccount_get_brandaccount_list_email_templatesaccount_audit_logaccount_list_teamsaccount_list_approval_rulesaccount_find_personaccount_data_locations
Can change data (20)
forms_createforms_updateforms_closeforms_openforms_deleteforms_delete_responseforms_export_responsesaccount_refund_topupaccount_set_owner_emailaccount_request_limitaccount_emit_eventaccount_set_brandaccount_set_email_templateaccount_export_allaccount_save_teamaccount_pause_teamaccount_assign_teamaccount_add_approval_ruleaccount_export_personaccount_erase_person
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to conecto.chat ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Create quote request forms and surveys
- Export form responses to CSV spreadsheets
- Integrate form submissions with CRM contacts
- Summarize survey results and NPS scores
Source and maintenance
Protocol and capabilities
- Server
- conecto-forms 1.0.0
- MCP protocol negotiated in check
- 2025-06-18
- Tools
- 40 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
40 advertised
forms_create — Create a form
Create a form or survey with its own public page at https://cncto.co/f/<slug>, which anyone can open and answer; share that link. Field types: short_text, long_text, email, phone (default_country), url, number (min, max, integer), choice and multi_choice (options; multi_choice also min_selections, max_selections), rating (scale 3 to 10, default 5; low_label, high_label), nps (0 to 10; low_label, high_label), date (include_time for a time too, range for a first and a last day, earliest and latest as "2026-11-01" or "today", "today+7", "today-30"; answers read 2026-11-03, 2026-11-03T09:30, 2026-11-03/2026-11-07), yes_no, consent (a checkbox; its label may hold one link written [text](https://...)), statement (text only, no answer). Every field takes type, label, help, required, an id (generated from the label when left out; answers are keyed by it) and show_if {"field": "<an earlier field's id>", "equals": <answer>} to show it only when that answer was given. Each response received costs $0.01, up to 10,000 a month per account. Costs $0.01 per call; nothing if it fails.
{
"type": "object",
"required": [
"title",
"fields"
],
"properties": {
"title": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z0-9_]{1,40}$",
"description": "Stable id; answers are keyed by it. Generated from the label when left out. Pass it back when you change the form, or a renamed field becomes a new one."
},
"max": {
"type": [
"number",
"null"
],
"description": "number: the largest answer."
},
"min": {
"type": [
"number",
"null"
],
"description": "number: the smallest answer."
},
"help": {
"type": "string",
"maxLength": 2000,
"description": "Smaller text under the question."
},
"type": {
"enum": [
"short_text",
"long_text",
"email",
"phone",
"url",
"number",
"choice",
"multi_choice",
"rating",
"nps",
"date",
"yes_no",
"consent",
"statement"
],
"type": "string"
},
"label": {
"type": "string",
"maxLength": 1000,
"description": "The question. A statement's label is the text it shows. A consent label may hold one link: \"I agree to the [terms](https://acme.com/terms)\"."
},
"range": {
"type": "boolean",
"description": "date: a first and a last day (2026-11-03/2026-11-07)."
},
"scale": {
"type": "integer",
"maximum": 10,
"minimum": 3,
"description": "rating: 3 to 10 (default 5)."
},
"latest": {
"type": [
"string",
"null"
],
"maxLength": 20,
"description": "date: the last day that can be picked: \"2026-12-31\", \"today+60\", \"today\"."
},
"integer": {
"type": "boolean",
"description": "number: whole numbers only."
},
"options": {
"type": "array",
"items": {
"type": [
"string",
"object"
]
},
"maxItems": 100,
"minItems": 1,
"description": "choice and multi_choice: [\"Basic\", \"Pro\"], or [{\"id\": \"basic\", \"label\": \"Basic\"}] to keep ids stable when you rename an option."
},
"show_if": {
"type": [
"object",
"null"
],
"required": [
"field",
"equals"
],
"properties": {
"field": {
"type": "string",
"description": "An earlier field's id."
},
"equals": {
"description": "The answer that shows the field: an option id (choice, multi_choice), true or false (yes_no, consent), a number (number, rating, nps), a date (date) or text (short_text, email)."
}
},
"description": "Show this field only when an earlier field has this answer (for multi_choice: when that option is among the choices). A hidden field is never required.",
"additionalProperties": false
},
"earliest": {
"type": [
"string",
"null"
],
"maxLength": 20,
"description": "date: the first day that can be picked: \"2026-11-01\", \"today\", \"today+1\"."
},
"required": {
"type": "boolean",
"default": false
},
"low_label": {
"type": "string",
"maxLength": 60,
"description": "rating and nps: words under the lowest score."
},
"high_label": {
"type": "string",
"maxLength": 60,
"description": "rating and nps: words under the top score."
},
"placeholder": {
"type": "string",
"maxLength": 200,
"description": "short_text, long_text, email, phone, url and number only."
},
"include_time": {
"type": "boolean",
"description": "date: a time too (answers like 2026-11-03T09:30)."
},
"max_selections": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "multi_choice: the most options."
},
"min_selections": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "multi_choice: the fewest options."
},
"default_country": {
"type": [
"string",
"null"
],
"maxLength": 2,
"minLength": 2,
"description": "phone: the country of numbers typed without a +, like \"US\"."
}
}
},
"maxItems": 100,
"minItems": 1,
"description": "The questions in order. When changing a form, this replaces the whole list."
},
"close_at": {
"type": [
"string",
"null"
],
"maxLength": 40,
"description": "Stop taking responses at this time (ISO 8601, like 2026-12-31T23:59:00Z; UTC when no offset is given). Empty or null: never."
},
"description": {
"type": "string",
"maxLength": 2000,
"description": "Shown under the title."
},
"on_response": {
"type": "array",
"items": {
"type": "object",
"required": [
"action"
],
"properties": {
"stage": {
"type": "string",
"maxLength": 80
},
"table": {
"type": "string",
"maxLength": 80
},
"action": {
"enum": [
"open_ticket",
"create_deal",
"add_row"
],
"type": "string"
},
"columns": {
"type": "object"
},
"pipeline": {
"type": "string",
"maxLength": 80
},
"priority": {
"enum": [
"low",
"normal",
"high",
"urgent"
],
"type": "string"
},
"amount_field": {
"type": "string",
"maxLength": 40
}
}
},
"maxItems": 3,
"description": "What each response also does on its own, while you are away ($0.01 per action done): {\"action\": \"open_ticket\", \"priority\": \"normal\"} opens a help desk ticket for the respondent; {\"action\": \"create_deal\", \"pipeline\": \"Sales\", \"stage\": \"New\", \"amount_field\": \"budget\"} creates a deal with them as contact; {\"action\": \"add_row\", \"table\": \"Leads\", \"columns\": {\"Email\": \"email\", \"Budget\": \"budget\"}} adds a row, each column from a field id. [] or null: none."
},
"save_to_crm": {
"type": "boolean",
"description": "Save the person behind each response as a CRM contact. The first email field is the email; a short_text field with id name or full_name (or first_name and last_name) is the name; the first phone field the phone. An existing contact only gets empty fields filled."
},
"notify_email": {
"type": [
"string",
"null"
],
"maxLength": 254,
"description": "Email this address about new responses: at most one email a minute per form, later responses grouped into the next one. Empty or null: off."
},
"redirect_url": {
"type": [
"string",
"null"
],
"maxLength": 2000,
"description": "An https:// page to send people to after they submit. Empty or null: none."
},
"submit_label": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "The button's words (default \"Submit\")."
},
"hidden_fields": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,40}$"
},
"maxItems": 10,
"description": "Link values kept with each response: [\"ref\", \"utm_source\"] keeps them from https://cncto.co/f/<slug>?ref=abc&utm_source=newsletter.",
"uniqueItems": true
},
"max_responses": {
"type": [
"integer",
"null"
],
"maximum": 1000000,
"minimum": 0,
"description": "Stop after this many responses. 0 or null: no limit."
},
"thank_you_title": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Shown after sending (default \"Thank you\")."
},
"thank_you_message": {
"type": "string",
"maxLength": 1000
},
"confirm_to_respondent": {
"type": "boolean",
"description": "Email each respondent their answers in the brand kit (form_confirmation wording), to the address they typed in the first email field. $0.002 each; paid accounts only; at most three a day to one address."
}
},
"additionalProperties": false
}{
"title": "Create a form",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}forms_update — Change a form
Change a form's fields or settings; only what you pass changes. fields replaces the whole list: pass each existing field's id (forms_get shows them) so its answers stay attached, even when you rename it. Answers to fields or options you remove stay readable in responses, exports and summaries. A field that already has answers keeps its type (short_text and long_text may switch). Empty or null clears redirect_url, close_at and notify_email; max_responses 0 or null removes the limit. Costs $0.01 per call; nothing if it fails.
{
"type": "object",
"required": [
"form"
],
"properties": {
"form": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "The form's form_id or slug (forms_list shows both)."
},
"title": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z0-9_]{1,40}$",
"description": "Stable id; answers are keyed by it. Generated from the label when left out. Pass it back when you change the form, or a renamed field becomes a new one."
},
"max": {
"type": [
"number",
"null"
],
"description": "number: the largest answer."
},
"min": {
"type": [
"number",
"null"
],
"description": "number: the smallest answer."
},
"help": {
"type": "string",
"maxLength": 2000,
"description": "Smaller text under the question."
},
"type": {
"enum": [
"short_text",
"long_text",
"email",
"phone",
"url",
"number",
"choice",
"multi_choice",
"rating",
"nps",
"date",
"yes_no",
"consent",
"statement"
],
"type": "string"
},
"label": {
"type": "string",
"maxLength": 1000,
"description": "The question. A statement's label is the text it shows. A consent label may hold one link: \"I agree to the [terms](https://acme.com/terms)\"."
},
"range": {
"type": "boolean",
"description": "date: a first and a last day (2026-11-03/2026-11-07)."
},
"scale": {
"type": "integer",
"maximum": 10,
"minimum": 3,
"description": "rating: 3 to 10 (default 5)."
},
"latest": {
"type": [
"string",
"null"
],
"maxLength": 20,
"description": "date: the last day that can be picked: \"2026-12-31\", \"today+60\", \"today\"."
},
"integer": {
"type": "boolean",
"description": "number: whole numbers only."
},
"options": {
"type": "array",
"items": {
"type": [
"string",
"object"
]
},
"maxItems": 100,
"minItems": 1,
"description": "choice and multi_choice: [\"Basic\", \"Pro\"], or [{\"id\": \"basic\", \"label\": \"Basic\"}] to keep ids stable when you rename an option."
},
"show_if": {
"type": [
"object",
"null"
],
"required": [
"field",
"equals"
],
"properties": {
"field": {
"type": "string",
"description": "An earlier field's id."
},
"equals": {
"description": "The answer that shows the field: an option id (choice, multi_choice), true or false (yes_no, consent), a number (number, rating, nps), a date (date) or text (short_text, email)."
}
},
"description": "Show this field only when an earlier field has this answer (for multi_choice: when that option is among the choices). A hidden field is never required.",
"additionalProperties": false
},
"earliest": {
"type": [
"string",
"null"
],
"maxLength": 20,
"description": "date: the first day that can be picked: \"2026-11-01\", \"today\", \"today+1\"."
},
"required": {
"type": "boolean",
"default": false
},
"low_label": {
"type": "string",
"maxLength": 60,
"description": "rating and nps: words under the lowest score."
},
"high_label": {
"type": "string",
"maxLength": 60,
"description": "rating and nps: words under the top score."
},
"placeholder": {
"type": "string",
"maxLength": 200,
"description": "short_text, long_text, email, phone, url and number only."
},
"include_time": {
"type": "boolean",
"description": "date: a time too (answers like 2026-11-03T09:30)."
},
"max_selections": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "multi_choice: the most options."
},
"min_selections": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "multi_choice: the fewest options."
},
"default_country": {
"type": [
"string",
"null"
],
"maxLength": 2,
"minLength": 2,
"description": "phone: the country of numbers typed without a +, like \"US\"."
}
}
},
"maxItems": 100,
"minItems": 1,
"description": "The questions in order. When changing a form, this replaces the whole list."
},
"close_at": {
"type": [
"string",
"null"
],
"maxLength": 40,
"description": "Stop taking responses at this time (ISO 8601, like 2026-12-31T23:59:00Z; UTC when no offset is given). Empty or null: never."
},
"description": {
"type": "string",
"maxLength": 2000,
"description": "Shown under the title."
},
"on_response": {
"type": "array",
"items": {
"type": "object",
"required": [
"action"
],
"properties": {
"stage": {
"type": "string",
"maxLength": 80
},
"table": {
"type": "string",
"maxLength": 80
},
"action": {
"enum": [
"open_ticket",
"create_deal",
"add_row"
],
"type": "string"
},
"columns": {
"type": "object"
},
"pipeline": {
"type": "string",
"maxLength": 80
},
"priority": {
"enum": [
"low",
"normal",
"high",
"urgent"
],
"type": "string"
},
"amount_field": {
"type": "string",
"maxLength": 40
}
}
},
"maxItems": 3,
"description": "What each response also does on its own, while you are away ($0.01 per action done): {\"action\": \"open_ticket\", \"priority\": \"normal\"} opens a help desk ticket for the respondent; {\"action\": \"create_deal\", \"pipeline\": \"Sales\", \"stage\": \"New\", \"amount_field\": \"budget\"} creates a deal with them as contact; {\"action\": \"add_row\", \"table\": \"Leads\", \"columns\": {\"Email\": \"email\", \"Budget\": \"budget\"}} adds a row, each column from a field id. [] or null: none."
},
"save_to_crm": {
"type": "boolean",
"description": "Save the person behind each response as a CRM contact. The first email field is the email; a short_text field with id name or full_name (or first_name and last_name) is the name; the first phone field the phone. An existing contact only gets empty fields filled."
},
"notify_email": {
"type": [
"string",
"null"
],
"maxLength": 254,
"description": "Email this address about new responses: at most one email a minute per form, later responses grouped into the next one. Empty or null: off."
},
"redirect_url": {
"type": [
"string",
"null"
],
"maxLength": 2000,
"description": "An https:// page to send people to after they submit. Empty or null: none."
},
"submit_label": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "The button's words (default \"Submit\")."
},
"hidden_fields": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,40}$"
},
"maxItems": 10,
"description": "Link values kept with each response: [\"ref\", \"utm_source\"] keeps them from https://cncto.co/f/<slug>?ref=abc&utm_source=newsletter.",
"uniqueItems": true
},
"max_responses": {
"type": [
"integer",
"null"
],
"maximum": 1000000,
"minimum": 0,
"description": "Stop after this many responses. 0 or null: no limit."
},
"thank_you_title": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Shown after sending (default \"Thank you\")."
},
"thank_you_message": {
"type": "string",
"maxLength": 1000
},
"confirm_to_respondent": {
"type": "boolean",
"description": "Email each respondent their answers in the brand kit (form_confirmation wording), to the address they typed in the first email field. $0.002 each; paid accounts only; at most three a day to one address."
}
},
"additionalProperties": false
}{
"title": "Change a form",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}forms_get — Get a form
One form with its fields, settings, public link, whether it is taking responses (and why not), its response count, and this account's monthly allowance of received responses. Free.
{
"type": "object",
"required": [
"form"
],
"properties": {
"form": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "The form's form_id or slug (forms_list shows both)."
}
},
"additionalProperties": false
}{
"title": "Get a form",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}forms_list — List forms
The account's forms, newest first, with their public links, whether each is taking responses, and their response counts. Free.
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
},
"status": {
"enum": [
"open",
"closed",
"any"
],
"type": "string",
"default": "any"
}
},
"additionalProperties": false
}{
"title": "List forms",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}forms_close — Close a form
Stop a form taking responses; its page then says it is closed. forms_open reopens it. Costs $0.001 per call; nothing if it fails.
{
"type": "object",
"required": [
"form"
],
"properties": {
"form": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "The form's form_id or slug (forms_list shows both)."
}
},
"additionalProperties": false
}{
"title": "Close a form",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}forms_open — Reopen a form
Let a closed form take responses again. A closing date that has passed is cleared; a form that reached max_responses stays full until you raise it with forms_update. Costs $0.001 per call; nothing if it fails.
{
"type": "object",
"required": [
"form"
],
"properties": {
"form": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "The form's form_id or slug (forms_list shows both)."
}
},
"additionalProperties": false
}{
"title": "Reopen a form",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}forms_delete — Delete a form
Delete a form and all its responses for good; its link stops working. Exported files stay in the file store. Costs $0.001 per call; nothing if it fails.
{
"type": "object",
"required": [
"form"
],
"properties": {
"form": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "The form's form_id or slug (forms_list shows both)."
}
},
"additionalProperties": false
}{
"title": "Delete a form",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}forms_delete_response — Delete a response
Delete one response for good, for a person who asks to be forgotten or for spam. Exported CSV files keep their copy until you delete them too. Free.
{
"type": "object",
"required": [
"response_id"
],
"properties": {
"response_id": {
"type": "string",
"maxLength": 36,
"minLength": 32
}
},
"additionalProperties": false
}{
"title": "Delete a response",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}forms_list_responses — List responses
A form's responses, newest first: for each answer the question, the stored value and a readable answer, plus the link values (hidden_fields) and the CRM contact. When next_cursor is not null, call again with it for older responses. Free.
{
"type": "object",
"required": [
"form"
],
"properties": {
"form": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "The form's form_id or slug (forms_list shows both)."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"since": {
"type": "string",
"maxLength": 40,
"description": "Only responses from this time on: ISO 8601 (2026-10-01T00:00:00Z) or a date (2026-10-01, UTC)."
},
"cursor": {
"type": "string",
"maxLength": 500,
"description": "The next_cursor of the previous page."
}
},
"additionalProperties": false
}{
"title": "List responses",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}forms_get_response — Get a response
One response by its response_id, with every answer readable. Free.
{
"type": "object",
"required": [
"response_id"
],
"properties": {
"response_id": {
"type": "string",
"maxLength": 36,
"minLength": 32
}
},
"additionalProperties": false
}{
"title": "Get a response",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}forms_export_responses — Export responses to CSV
A CSV file of a form's responses in the file store, with a download link: one row per response, oldest first, one column per field in form order, then the link values. Opens in Excel, Numbers and Google Sheets. With since, only responses from then on. Free when there is nothing to export. Costs $0.001 per call; nothing if it fails.
{
"type": "object",
"required": [
"form"
],
"properties": {
"form": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "The form's form_id or slug (forms_list shows both)."
},
"since": {
"type": "string",
"maxLength": 40,
"description": "Only responses from this time on: ISO 8601 (2026-10-01T00:00:00Z) or a date (2026-10-01, UTC)."
},
"link_hours": {
"type": "integer",
"default": 24,
"maximum": 168,
"minimum": 1,
"description": "How long the download link works, in hours (up to 168, one week)."
}
},
"additionalProperties": false
}{
"title": "Export responses to CSV",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}forms_summary — Summarize responses
A form's results at a glance: the response count and, per question, choice counts and percentages, rating averages and distributions, the NPS score (percent promoters minus percent detractors), yes and no shares, number minimum, maximum and average, and the 5 latest text answers. With since, only responses from then on. Free.
{
"type": "object",
"required": [
"form"
],
"properties": {
"form": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "The form's form_id or slug (forms_list shows both)."
},
"since": {
"type": "string",
"maxLength": 40,
"description": "Only responses from this time on: ISO 8601 (2026-10-01T00:00:00Z) or a date (2026-10-01, UTC)."
}
},
"additionalProperties": false
}{
"title": "Summarize responses",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_balance — 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.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "Check balance",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_get_call — 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.
{
"type": "object",
"required": [
"call_id"
],
"properties": {
"call_id": {
"type": "string",
"maxLength": 36,
"minLength": 36
}
},
"additionalProperties": false
}{
"title": "Get a call",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_list_calls — List calls
Recent calls on this account, newest first, optionally only failed or succeeded ones, or one area's. Free.
{
"type": "object",
"required": [],
"properties": {
"area": {
"enum": [
"analytics",
"code",
"crm",
"calendar",
"chat",
"account",
"admin",
"email",
"helpdesk",
"documents",
"esign",
"hiring",
"outreach",
"prospects",
"lookups",
"companies",
"longlists",
"mergers",
"valuation",
"newsletters",
"notify",
"projects",
"schedules",
"speech",
"uptime",
"vault",
"web",
"tables",
"links",
"images",
"files",
"forms",
"helpcenter",
"imports",
"invoices",
"books",
"inventory",
"whistleblowing",
"connect",
"microsoft365",
"googleworkspace",
"hubspot",
"salesforce",
"directory",
"hr",
"social",
"purchasing",
"phone",
"websites",
"views",
"visibility",
"markets"
],
"type": "string"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"status": {
"enum": [
"reserved",
"running",
"succeeded",
"failed"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "List calls",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_refund_topup — 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.
{
"type": "object",
"required": [],
"properties": {
"topup_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false
}{
"title": "Refund a top-up",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}account_set_owner_email — 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.
{
"type": "object",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"minLength": 3
}
},
"additionalProperties": false
}{
"title": "Name the business's owner",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}account_owner_link — 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.
{
"type": "object",
"required": [],
"properties": {
"page": {
"enum": [
"home",
"tools",
"activity",
"apps",
"billing",
"add_credit",
"limits",
"people",
"settings"
],
"type": "string",
"default": "home"
}
},
"additionalProperties": false
}{
"title": "Get a sign-in link for the owner",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_dashboard_link — 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.
{
"type": "object",
"required": [
"area"
],
"properties": {
"area": {
"enum": [
"analytics",
"code",
"crm",
"calendar",
"chat",
"account",
"admin",
"email",
"helpdesk",
"documents",
"esign",
"hiring",
"outreach",
"prospects",
"lookups",
"companies",
"longlists",
"mergers",
"valuation",
"newsletters",
"notify",
"projects",
"schedules",
"speech",
"uptime",
"vault",
"web",
"tables",
"links",
"images",
"files",
"forms",
"helpcenter",
"imports",
"invoices",
"books",
"inventory",
"whistleblowing",
"connect",
"microsoft365",
"googleworkspace",
"hubspot",
"salesforce",
"directory",
"hr",
"social",
"purchasing",
"phone",
"websites",
"views",
"visibility",
"markets"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Get a link to an area at a glance",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_get_limits — 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.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "Read the limits",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_request_limit — 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.
{
"type": "object",
"required": [
"limit",
"amount",
"reason"
],
"properties": {
"limit": {
"enum": [
"calls_per_minute",
"key_calls_per_minute",
"downloads_per_hour",
"new_email_recipients_per_day",
"documents_emailed_per_day",
"orders_emailed_per_day",
"phone_numbers",
"confirmation_calls_per_day",
"connections",
"storage_blocks",
"prospects_per_month",
"outreach_mailboxes",
"other"
],
"type": "string",
"description": "The limit, as account_get_limits names it, or other."
},
"other": {
"type": "string",
"maxLength": 200,
"description": "With limit other: which limit, like \"rows in one table\"."
},
"amount": {
"type": "integer",
"maximum": 1000000000,
"minimum": 1,
"description": "The number the business needs, in the limit's unit (5000 calls a minute)."
},
"reason": {
"type": "string",
"maxLength": 2000,
"minLength": 40,
"description": "What the business does that needs it, and why the current limit is too low."
}
},
"additionalProperties": false
}{
"title": "Ask for a higher limit",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}account_events — 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.
{
"type": "object",
"required": [],
"properties": {
"after": {
"type": "integer",
"minimum": 0,
"description": "Only events after this event_id."
},
"kinds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 30,
"description": "Event names or areas (\"hiring.*\"); all when left out."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
}
},
"additionalProperties": false
}{
"title": "Read recent events",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_emit_event — 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.
{
"type": "object",
"required": [
"kind",
"title"
],
"properties": {
"data": {
"type": "object"
},
"kind": {
"type": "string",
"pattern": "^custom\\.[a-z0-9][a-z0-9_.-]*$",
"maxLength": 66,
"minLength": 8,
"description": "custom. and a name of lowercase letters, digits, dots, dashes and _."
},
"link": {
"type": "string",
"pattern": "^https://",
"maxLength": 1000
},
"text": {
"type": "string",
"maxLength": 4000
},
"title": {
"type": "string",
"maxLength": 200,
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Send an event of your own",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}account_search — 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.
{
"type": "object",
"required": [
"query"
],
"properties": {
"areas": {
"type": "array",
"items": {
"enum": [
"files",
"tables",
"helpcenter",
"crm",
"email",
"helpdesk",
"invoices",
"books",
"inventory",
"projects"
],
"type": "string"
},
"minItems": 1
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 2
}
},
"additionalProperties": false
}{
"title": "Search everything",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_get_brand — See the business's look
The name, logo, colour and footer line the business's emails and published pages carry. Free.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "See the business's look",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_set_brand — 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.
{
"type": "object",
"required": [],
"properties": {
"colour": {
"type": "string",
"maxLength": 7,
"description": "Hex, like #1a73e8; empty for none."
},
"footer": {
"type": "string",
"maxLength": 200
},
"remove_logo": {
"type": "boolean",
"default": false
},
"sender_name": {
"type": "string",
"maxLength": 120
},
"logo_file_id": {
"type": "string",
"maxLength": 36,
"minLength": 36
}
},
"additionalProperties": false
}{
"title": "Set the business's look",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_list_email_templates — 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.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "See what the business's emails say",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_set_email_template — 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.
{
"type": "object",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"maxLength": 40,
"description": "Like booking_booked or invoice_sent."
},
"opening": {
"type": "string",
"maxLength": 4000
},
"subject": {
"type": "string",
"maxLength": 200
},
"headline": {
"type": "string",
"maxLength": 120
}
},
"additionalProperties": false
}{
"title": "Rewrite one of the business's emails",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_export_all — 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>.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "Export everything",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}account_audit_log — 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.
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 500,
"minimum": 1
},
"since": {
"type": "string",
"format": "date-time",
"maxLength": 40
},
"action": {
"type": "string",
"maxLength": 60,
"description": "Only actions starting with this, like \"key.\" or \"tool.vault_\"."
},
"verify": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}{
"title": "Read the audit log",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_save_team — 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.
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"areas": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"maxItems": 50,
"description": "The areas its keys may work in (account tools always); null for every area."
},
"budget": {
"enum": [
"hard",
"soft"
],
"type": "string",
"description": "hard refuses calls past the budget; soft only warns."
},
"erp_code": {
"type": [
"string",
"null"
],
"maxLength": 40
},
"new_name": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Renames the team; its keys, spend and budget stay with it."
},
"mailboxes": {
"type": [
"array",
"null"
],
"items": {
"type": "string",
"maxLength": 254
},
"maxItems": 20,
"description": "The Microsoft 365 or Google mailboxes its keys may act as; null for every mailbox the connection lists."
},
"read_only": {
"type": "boolean",
"description": "Its keys only read, and get links that act for whoever opens them as \"[redacted]\"."
},
"drafts_only": {
"type": "boolean",
"description": "Every write of its keys waits for a person, and they get links that act for whoever opens them as \"[redacted]\"."
},
"alert_percent": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"budget_period": {
"enum": [
"month",
"quarter",
"year",
"project"
],
"type": "string",
"description": "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."
},
"budget_ends_on": {
"type": [
"string",
"null"
],
"format": "date",
"description": "The last day of a project budget, like 2026-12-31."
},
"sees_sensitive": {
"type": "boolean",
"description": "false hides suppliers' bank details and HR notes and contracts from its keys; only the owner turns it on."
},
"monthly_budget_usd": {
"type": [
"number",
"null"
],
"maximum": 1000000,
"minimum": 0,
"description": "null counts the spend without a cap."
}
},
"additionalProperties": false
}{
"title": "Create or change a team",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_list_teams — 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.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "List teams",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_pause_team — 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.
{
"type": "object",
"required": [
"team"
],
"properties": {
"team": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Pause a team",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}account_assign_team — 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.
{
"type": "object",
"required": [
"kind",
"team"
],
"properties": {
"id": {
"type": "string",
"maxLength": 254,
"description": "Its id, slug, name, address or number; not needed for the chat."
},
"kind": {
"enum": [
"form",
"meeting_type",
"job",
"inbox",
"phone_number",
"newsletter",
"chat",
"rental",
"pipeline",
"table",
"website"
],
"type": "string"
},
"team": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Give something to a team",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_add_approval_rule — 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.
{
"type": "object",
"required": [
"tool"
],
"properties": {
"over": {
"type": "number",
"description": "Calls with argument over this are held."
},
"tool": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"values": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Calls with argument equal to one of these (any case) are held."
},
"argument": {
"type": "string",
"maxLength": 60,
"description": "An argument of the tool (or total, for purchasing_create_bill)."
},
"approvers": {
"enum": [
"managers",
"everyone"
],
"type": "string",
"default": "managers",
"description": "Who in approver_team approves."
},
"approver_team": {
"type": "string",
"maxLength": 80,
"description": "A team (account_list_teams)."
},
"approver_email": {
"type": "string",
"maxLength": 254
},
"two_people_over": {
"type": "number",
"description": "Calls whose argument is over this need two people; higher than over."
},
"approver_channel": {
"type": "string",
"maxLength": 80,
"description": "A saved notify channel."
}
},
"additionalProperties": false
}{
"title": "Hold a tool for approval",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}account_list_approval_rules — List approval rules
The tools that wait for a person's approval, with their thresholds and approvers. Free.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "List approval rules",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_find_person — 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.
{
"type": "object",
"required": [],
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"description": "The person's email address."
},
"phone": {
"type": "string",
"maxLength": 40,
"description": "Their phone number in international format, like +1 503 555 0145."
}
},
"additionalProperties": false
}{
"title": "Find a person's data",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}account_export_person — 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.
{
"type": "object",
"required": [],
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"description": "The person's email address."
},
"phone": {
"type": "string",
"maxLength": 40,
"description": "Their phone number in international format, like +1 503 555 0145."
}
},
"additionalProperties": false
}{
"title": "Export a person's data",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}account_erase_person — 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.
{
"type": "object",
"required": [],
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"description": "The person's email address."
},
"phone": {
"type": "string",
"maxLength": 40,
"description": "Their phone number in international format, like +1 503 555 0145."
},
"correspondence": {
"type": "boolean",
"default": false,
"description": "Also delete their emails and tickets, when no law requires keeping them."
}
},
"additionalProperties": false
}{
"title": "Erase a person's data",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}account_data_locations — 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.
{
"type": "object",
"required": [],
"properties": {
"areas": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 50,
"description": "Areas to show, like [\"email\", \"phone\"]; all when left out."
}
},
"additionalProperties": false
}{
"title": "See where the data is",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-03: 2 of 2 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 948 ms
- 95th percentile latency
- 948 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 948 ms · metadata changed · 40 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http conecto-forms-mcp https://api.conecto.chat/mcp/formsCodex
codex mcp add conecto-forms-mcp --url https://api.conecto.chat/mcp/formsCursor
{
"mcpServers": {
"conecto-forms-mcp": {
"url": "https://api.conecto.chat/mcp/forms"
}
}
}Cline
{
"mcpServers": {
"conecto-forms-mcp": {
"type": "streamableHttp",
"url": "https://api.conecto.chat/mcp/forms",
"disabled": false
}
}
}VS Code
{
"servers": {
"conecto-forms-mcp": {
"type": "http",
"url": "https://api.conecto.chat/mcp/forms"
}
}
}Gemini CLI
gemini mcp add --transport http conecto-forms-mcp https://api.conecto.chat/mcp/formsClaude Desktop
{
"mcpServers": {
"conecto-forms-mcp": {
"url": "https://api.conecto.chat/mcp/forms"
}
}
}Windsurf
{
"mcpServers": {
"conecto-forms-mcp": {
"serverUrl": "https://api.conecto.chat/mcp/forms"
}
}
}Let your agent find its tools
Find servers like Conecto Forms MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Conecto Forms MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.