Read survey responses and manage contacts, webhooks, teams and organisation users.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create a contact in a workspace from a set of attributes, e.g. email and userId. Formbricks v2: POST /management/contacts.
Attribute key/value pairs, e.g. {"email":"[email protected]","userId":"u_1"}.
The workspace to create the contact in.
Restrict to one environment.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Create a contact in a workspace from a set of attributes, e.g. email and userId. Formbricks v2: POST /management/contacts.
| Argument | Type | Description |
|---|---|---|
| attributes* | object | Attribute key/value pairs, e.g. {"email":"[email protected]","userId":"u_1"}. |
| workspaceId* | string | The workspace to create the contact in. |
| environmentId | string | Restrict to one environment. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"workspaceId",
"attributes"
],
"properties": {
"attributes": {
"type": "object",
"description": "Attribute key/value pairs, e.g. {\"email\":\"[email protected]\",\"userId\":\"u_1\"}.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"workspaceId": {
"type": "string",
"description": "The workspace to create the contact in."
},
"environmentId": {
"type": "string",
"description": "Restrict to one environment."
}
}
}Register a webhook that fires on survey events. Formbricks v2: POST /management/webhooks.
| Argument | Type | Description |
|---|---|---|
| url* | string | The HTTPS URL Formbricks should POST to. |
| name* | string | A label for the webhook. |
| triggers* | array | Events to fire on, e.g. ["responseCreated", "responseFinished"]. |
| surveyIds* | array | Surveys the webhook covers. Pass an empty array for all surveys. |
| workspaceId* | string | The workspace the webhook belongs to. |
| environmentId | string | Restrict to one environment. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"url",
"workspaceId",
"triggers",
"surveyIds"
],
"properties": {
"url": {
"type": "string",
"description": "The HTTPS URL Formbricks should POST to."
},
"name": {
"type": "string",
"description": "A label for the webhook."
},
"triggers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Events to fire on, e.g. [\"responseCreated\", \"responseFinished\"]."
},
"surveyIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Surveys the webhook covers. Pass an empty array for all surveys."
},
"workspaceId": {
"type": "string",
"description": "The workspace the webhook belongs to."
},
"environmentId": {
"type": "string",
"description": "Restrict to one environment."
}
}
}Delete one survey response. Irreversible — use it to honour a data-deletion request. Formbricks v2: DELETE /management/responses/{id}.
| Argument | Type | Description |
|---|---|---|
| response_id* | string | The response to delete. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"response_id"
],
"properties": {
"response_id": {
"type": "string",
"description": "The response to delete."
}
}
}Remove a webhook. Formbricks v2: DELETE /management/webhooks/{id}.
| Argument | Type | Description |
|---|---|---|
| webhook_id* | string | The webhook to delete. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"webhook_id"
],
"properties": {
"webhook_id": {
"type": "string",
"description": "The webhook to delete."
}
}
}Fetch a single contact attribute key. Formbricks v2: GET /management/contact-attribute-keys/{id}.
| Argument | Type | Description |
|---|---|---|
| key_id* | string | The attribute key's id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"key_id"
],
"properties": {
"key_id": {
"type": "string",
"description": "The attribute key's id."
}
}
}Fetch a single survey response with its answers, metadata and completion state. Formbricks v2: GET /management/responses/{id}.
| Argument | Type | Description |
|---|---|---|
| response_id* | string | The response's id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"response_id"
],
"properties": {
"response_id": {
"type": "string",
"description": "The response's id."
}
}
}Get the personalised survey URL for one contact — the link you send so their response is attributed to them. Formbricks v2: GET /management/surveys/{surveyId}/contact-links/contacts/{contactId}/.
| Argument | Type | Description |
|---|---|---|
| survey_id* | string | The survey to link to. |
| contact_id* | string | The contact the link is for. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"survey_id",
"contact_id"
],
"properties": {
"survey_id": {
"type": "string",
"description": "The survey to link to."
},
"contact_id": {
"type": "string",
"description": "The contact the link is for."
}
}
}Get personalised survey URLs for every contact in a segment — how you run a targeted send. Formbricks v2: GET /management/surveys/{surveyId}/contact-links/segments/{segmentId}.
| Argument | Type | Description |
|---|---|---|
| skip | integer | How many records to skip (offset paging). |
| limit | integer | Page size, 1-100. |
| survey_id* | string | The survey to link to. |
| segment_id* | string | The segment of contacts. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"survey_id",
"segment_id"
],
"properties": {
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "How many records to skip (offset paging)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"survey_id": {
"type": "string",
"description": "The survey to link to."
},
"segment_id": {
"type": "string",
"description": "The segment of contacts."
}
}
}Fetch a single webhook with its URL, triggers and bound surveys. Formbricks v2: GET /management/webhooks/{id}.
| Argument | Type | Description |
|---|---|---|
| webhook_id* | string | The webhook's id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"webhook_id"
],
"properties": {
"webhook_id": {
"type": "string",
"description": "The webhook's id."
}
}
}Check that the Formbricks API is reachable. Formbricks v2: GET /health.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the contact attribute keys defined in an environment — the schema of what you know about a contact. Formbricks v2: GET /management/contact-attribute-keys.
| Argument | Type | Description |
|---|---|---|
| skip | integer | How many records to skip (offset paging). |
| limit | integer | Page size, 1-100. |
| order | string | Sort direction. |
| sortBy | string | Field to sort on, e.g. createdAt or updatedAt. |
| workspaceId | string | Restrict to this workspace. |
| environmentId | string | Restrict to this environment. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "How many records to skip (offset paging)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction."
},
"sortBy": {
"type": "string",
"description": "Field to sort on, e.g. createdAt or updatedAt."
},
"workspaceId": {
"type": "string",
"description": "Restrict to this workspace."
},
"environmentId": {
"type": "string",
"description": "Restrict to this environment."
}
}
}List the users in an organisation, optionally looked up by id or email. Formbricks v2: GET /organizations/{organizationId}/users.
| Argument | Type | Description |
|---|---|---|
| id | string | Only the user with this id. |
| skip | integer | How many records to skip (offset paging). |
| string | Only the user with this email. | |
| limit | integer | Page size, 1-100. |
| organization_id* | string | The organisation's id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organization_id"
],
"properties": {
"id": {
"type": "string",
"description": "Only the user with this id."
},
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "How many records to skip (offset paging)."
},
"email": {
"type": "string",
"description": "Only the user with this email."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"organization_id": {
"type": "string",
"description": "The organisation's id."
}
}
}List survey responses, optionally narrowed to one survey, one contact or a date window. This is the main read: the answers people gave. Formbricks v2: GET /management/responses.
| Argument | Type | Description |
|---|---|---|
| skip | integer | How many records to skip (offset paging). |
| limit | integer | Page size, 1-100. |
| order | string | Sort direction. |
| sortBy | string | Field to sort on, e.g. createdAt or updatedAt. |
| endDate | string | ISO-8601 upper bound on the date field. |
| surveyId | string | Only responses to this survey. |
| contactId | string | Only responses from this contact. |
| startDate | string | ISO-8601 lower bound on the date field. |
| filterDateField | string | Which date field the window applies to. |
List the roles that can be assigned to organisation users. Formbricks v2: GET /roles.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the teams in an organisation. Formbricks v2: GET /organizations/{organizationId}/teams.
| Argument | Type | Description |
|---|---|---|
| skip | integer | How many records to skip (offset paging). |
| limit | integer | Page size, 1-100. |
| order | string | Sort direction. |
| sortBy | string | Field to sort on, e.g. createdAt or updatedAt. |
| organization_id* | string | The organisation's id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organization_id"
],
"properties": {
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "How many records to skip (offset paging)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction."
},
"sortBy": {
"type": "string",
"description": "Field to sort on, e.g. createdAt or updatedAt."
},
"organization_id": {
"type": "string",
"description": "The organisation's id."
}
}
}List the webhooks configured to fire on survey events, optionally filtered to specific surveys. Formbricks v2: GET /management/webhooks.
| Argument | Type | Description |
|---|---|---|
| skip | integer | How many records to skip (offset paging). |
| limit | integer | Page size, 1-100. |
| order | string | Sort direction. |
| sortBy | string | Field to sort on, e.g. createdAt or updatedAt. |
| surveyIds | array | Only webhooks bound to these survey ids. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "How many records to skip (offset paging)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction."
},
"sortBy": {
"type": "string",
"description": "Field to sort on, e.g. createdAt or updatedAt."
},
"surveyIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only webhooks bound to these survey ids."
}
}
}Return the project and environment the configured x-api-key belongs to — the fastest way to find the workspace and environment ids the other tools need. Formbricks v2: GET /me.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "How many records to skip (offset paging)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction."
},
"sortBy": {
"type": "string",
"description": "Field to sort on, e.g. createdAt or updatedAt."
},
"endDate": {
"type": "string",
"description": "ISO-8601 upper bound on the date field."
},
"surveyId": {
"type": "string",
"description": "Only responses to this survey."
},
"contactId": {
"type": "string",
"description": "Only responses from this contact."
},
"startDate": {
"type": "string",
"description": "ISO-8601 lower bound on the date field."
},
"filterDateField": {
"enum": [
"createdAt",
"updatedAt"
],
"type": "string",
"description": "Which date field the window applies to."
}
}
}