Talkform
Collect reviewed human answers through hosted handoffs, plus local templates and config validation.
Should I use this
Quality & Safety
Findings (13)
- LOWin talkform.list_templates
- LOWin talkform.get_template
- LOWin talkform.prepare_form
- LOWin talkform.register_agent
- LOWin talkform.create_handoff
- LOWin talkform.get_handoff
- LOWin talkform.get_result
- LOWin talkform.delete_handoff
- LOWin talkform.configure_webhook
- LOWin talkform.get_webhook
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"talkform": {
"command": "npx",
"args": [
"@talkform/mcp"
]
}
}
}Runnable packages
0.1.0stdioRemote endpoints
https://www.talkform.ai/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (11)
🟢talkform.list_templates
Lists the public conversational-form templates available for review.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"templates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"enum": [
"customer-feedback",
"lead-generation"
]
},
"title": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": [
"id",
"title",
"description"
],
"additionalProperties": false
}
}
},
"required": [
"templates"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢talkform.get_template(id)
Returns one public template as a structured, reviewable conversational form draft.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"enum": [
"customer-feedback",
"lead-generation"
]
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"draft": {
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 64
},
"title": {
"type": "string",
"maxLength": 120
},
"description": {
"type": "string",
"maxLength": 500
},
"instructions": {
"type": "string",
"maxLength": 1000
},
"fields": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z][A-Za-z0-9_-]{0,63}$"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"type": {
"type": "string",
"enum": [
"text",
"long_text",
"single_select",
"multi_select",
"number",
"rating",
"url"
]
},
"required": {
"type": "boolean"
},
"promptTitle": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"promptDetail": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"placeholder": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"options": {
"minItems": 1,
"maxItems": 12,
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9 _.-]{0,63}$"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"value",
"label"
],
"additionalProperties": false
}
},
"validation": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"additionalProperties": false
},
"visualTitle": {
"type": "string",
"maxLength": 120
},
"visualDetail": {
"type": "string",
"maxLength": 500
}
},
"required": [
"id",
"label",
"type",
"required",
"promptTitle",
"promptDetail",
"visualTitle",
"visualDetail"
],
"additionalProperties": false
}
},
"theme": {
"type": "object",
"properties": {
"accent": {
"type": "string"
},
"surface": {
"type": "string"
},
"panel": {
"type": "string"
}
},
"required": [
"accent",
"surface",
"panel"
],
"additionalProperties": false
},
"branding": {
"type": "object",
"properties": {
"fromName": {
"type": "string"
},
"purpose": {
"type": "string"
},
"logoUrl": {
"type": "string"
},
"wordmark": {
"type": "string"
},
"faviconUrl": {
"type": "string"
},
"fontFamily": {
"type": "string"
},
"showPoweredBy": {
"type": "boolean"
}
},
"additionalProperties": false
},
"mode": {
"type": "string",
"enum": [
"text",
"voice"
]
},
"output": {
"type": "object",
"properties": {
"formats": {
"type": "array",
"items": [
{
"type": "string",
"const": "json"
},
{
"type": "string",
"const": "markdown"
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
}
},
"required": [
"formats"
],
"additionalProperties": false
}
},
"required": [
"id",
"title",
"fields",
"theme",
"output"
],
"additionalProperties": false
},
"preview": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"fromName": {
"type": "string"
},
"purpose": {
"type": "string"
},
"fieldCount": {
"type": "integer",
"minimum": 1,
"maximum": 20
},
"requiredCount": {
"type": "integer",
"minimum": 0,
"maximum": 20
},
"fields": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"text",
"long_text",
"single_select",
"multi_select",
"number",
"rating",
"url"
]
},
"required": {
"type": "boolean"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"label",
"type",
"required"
],
"additionalProperties": false
}
}
},
"required": [
"title",
"description",
"fieldCount",
"requiredCount",
"fields"
],
"additionalProperties": false
}
},
"required": [
"draft",
"preview"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢talkform.prepare_form(title, description, instructions, fromName, purpose, ...)
Turns interview questions into a validated, shareable form draft. Each promptTitle is the respondent-facing question; fromName, purpose and branding identify the originating product. Optional theme colors use hex values. Returns a draft without storing or publishing it.
Input Schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"description": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"instructions": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"fromName": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"purpose": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"mode": {
"type": "string",
"enum": [
"text",
"voice"
]
},
"branding": {
"type": "object",
"properties": {
"fromName": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"purpose": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"logoUrl": {
"type": "string",
"maxLength": 2048,
"format": "uri"
},
"wordmark": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"faviconUrl": {
"type": "string",
"maxLength": 2048,
"format": "uri"
},
"fontFamily": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[A-Za-z][A-Za-z0-9 \\-']*(?:,\\s*(?:[A-Za-z][A-Za-z0-9 \\-']*|serif|sans-serif|monospace|system-ui))*$"
},
"showPoweredBy": {
"type": "boolean"
}
},
"additionalProperties": false
},
"theme": {
"type": "object",
"properties": {
"accent": {
"type": "string",
"pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
},
"surface": {
"type": "string",
"pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
},
"panel": {
"type": "string",
"pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
}
},
"additionalProperties": false
},
"fields": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z][A-Za-z0-9_-]{0,63}$"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"type": {
"type": "string",
"enum": [
"text",
"long_text",
"single_select",
"multi_select",
"number",
"rating",
"url"
]
},
"required": {
"type": "boolean"
},
"promptTitle": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"promptDetail": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"placeholder": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"options": {
"minItems": 1,
"maxItems": 12,
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9 _.-]{0,63}$"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"value",
"label"
],
"additionalProperties": false
}
},
"validation": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"additionalProperties": false
}
},
"required": [
"id",
"label",
"type",
"required",
"promptTitle",
"promptDetail"
],
"additionalProperties": false
}
}
},
"required": [
"title",
"fields"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"draft": {
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 64
},
"title": {
"type": "string",
"maxLength": 120
},
"description": {
"type": "string",
"maxLength": 500
},
"instructions": {
"type": "string",
"maxLength": 1000
},
"fields": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z][A-Za-z0-9_-]{0,63}$"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"type": {
"type": "string",
"enum": [
"text",
"long_text",
"single_select",
"multi_select",
"number",
"rating",
"url"
]
},
"required": {
"type": "boolean"
},
"promptTitle": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"promptDetail": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"placeholder": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"options": {
"minItems": 1,
"maxItems": 12,
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9 _.-]{0,63}$"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"value",
"label"
],
"additionalProperties": false
}
},
"validation": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"additionalProperties": false
},
"visualTitle": {
"type": "string",
"maxLength": 120
},
"visualDetail": {
"type": "string",
"maxLength": 500
}
},
"required": [
"id",
"label",
"type",
"required",
"promptTitle",
"promptDetail",
"visualTitle",
"visualDetail"
],
"additionalProperties": false
}
},
"theme": {
"type": "object",
"properties": {
"accent": {
"type": "string"
},
"surface": {
"type": "string"
},
"panel": {
"type": "string"
}
},
"required": [
"accent",
"surface",
"panel"
],
"additionalProperties": false
},
"branding": {
"type": "object",
"properties": {
"fromName": {
"type": "string"
},
"purpose": {
"type": "string"
},
"logoUrl": {
"type": "string"
},
"wordmark": {
"type": "string"
},
"faviconUrl": {
"type": "string"
},
"fontFamily": {
"type": "string"
},
"showPoweredBy": {
"type": "boolean"
}
},
"additionalProperties": false
},
"mode": {
"type": "string",
"enum": [
"text",
"voice"
]
},
"output": {
"type": "object",
"properties": {
"formats": {
"type": "array",
"items": [
{
"type": "string",
"const": "json"
},
{
"type": "string",
"const": "markdown"
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
}
},
"required": [
"formats"
],
"additionalProperties": false
}
},
"required": [
"id",
"title",
"fields",
"theme",
"output"
],
"additionalProperties": false
},
"preview": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"fromName": {
"type": "string"
},
"purpose": {
"type": "string"
},
"fieldCount": {
"type": "integer",
"minimum": 1,
"maximum": 20
},
"requiredCount": {
"type": "integer",
"minimum": 0,
"maximum": 20
},
"fields": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"text",
"long_text",
"single_select",
"multi_select",
"number",
"rating",
"url"
]
},
"required": {
"type": "boolean"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"label",
"type",
"required"
],
"additionalProperties": false
}
}
},
"required": [
"title",
"description",
"fieldCount",
"requiredCount",
"fields"
],
"additionalProperties": false
}
},
"required": [
"draft",
"preview"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}⚪talkform.register_agent(name, environment, idempotencyKey)
Creates a persistent machine-owned project and returns its API key secret once. No email, sign-in, or human identity is created. A UUIDv4 idempotency key identifies registration; retries never replay the secret. Machine projects receive 10 hosted handoffs per day. Voice is available in hosted interviews under shared realtime limits.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"environment": {
"default": "production",
"type": "string",
"enum": [
"production",
"test"
]
},
"idempotencyKey": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
}
},
"required": [
"idempotencyKey"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}⚪talkform.create_handoff(config, idempotencyKey, projectId)
Stores a validated voice interview or text interview and returns a private respondent link plus shareText. config.fields[].promptTitle supplies each question; config.branding.fromName and branding.purpose identify the originating product. Omitted mode selects voice; text mode is available. Requires a project API key or scoped OAuth. Optional projectId selects an owned account project; required when the account has several projects. Matching idempotency keys replay the existing handoff.
Input Schema
{
"type": "object",
"properties": {
"config": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string"
},
"instructions": {
"type": "string"
},
"fields": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"label": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"enum": [
"text",
"long_text",
"single_select",
"multi_select",
"number",
"rating",
"url",
"file_ref"
]
},
"required": {
"type": "boolean"
},
"promptTitle": {
"type": "string",
"minLength": 1
},
"promptDetail": {
"type": "string",
"minLength": 1
},
"visualTitle": {
"type": "string",
"minLength": 1
},
"visualDetail": {
"type": "string",
"minLength": 1
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"minLength": 1
},
"label": {
"type": "string",
"minLength": 1
}
},
"required": [
"value",
"label"
]
}
},
"validation": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"pattern": {
"type": "string"
}
}
},
"agentHint": {
"type": "string"
},
"placeholder": {
"type": "string"
}
},
"required": [
"id",
"label",
"type",
"required",
"promptTitle",
"promptDetail"
]
}
},
"theme": {
"type": "object",
"properties": {
"accent": {
"type": "string",
"pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
},
"surface": {
"type": "string",
"pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
},
"panel": {
"type": "string",
"pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
}
}
},
"branding": {
"type": "object",
"properties": {
"fromName": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"purpose": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"logoUrl": {
"type": "string",
"maxLength": 2048,
"format": "uri"
},
"wordmark": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"faviconUrl": {
"type": "string",
"maxLength": 2048,
"format": "uri"
},
"fontFamily": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[A-Za-z][A-Za-z0-9 \\-']*(?:,\\s*(?:[A-Za-z][A-Za-z0-9 \\-']*|serif|sans-serif|monospace|system-ui))*$"
},
"showPoweredBy": {
"type": "boolean"
}
},
"additionalProperties": false
},
"mode": {
"type": "string",
"enum": [
"text",
"voice"
]
},
"realtime": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"voice": {
"type": "string"
}
}
},
"output": {
"type": "object",
"properties": {
"formats": {
"type": "array",
"items": {
"type": "string",
"enum": [
"json",
"markdown"
]
}
},
"webhookUrl": {
"type": "string",
"format": "uri"
}
}
}
},
"required": [
"id",
"title",
"fields"
]
},
"idempotencyKey": {
"type": "string",
"minLength": 8,
"maxLength": 128
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"config",
"idempotencyKey"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢talkform.get_handoff(id)
Checks a hosted handoff owned by the authorized project or OAuth account. Requires handoffs:read permission.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢talkform.get_result(id)
Returns completed structured answers for an authorized project or OAuth account with handoffs:read permission. Pending results return result_pending. Results expire 7 days after submission. No transcript is returned.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🔴talkform.delete_handoff(id)
Permanently deletes stored configuration and answers for an authorized project or OAuth account. Requires user confirmation and handoffs:delete permission.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🔴talkform.configure_webhook(url, projectId)
Configures one HTTPS endpoint for completed handoffs in an authorized project. Replaces any active endpoint and returns the signing secret once. Requires handoffs:write permission. Optional projectId selects an owned OAuth account project.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"format": "uri"
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢talkform.get_webhook(projectId)
Returns active webhook metadata and recent delivery metadata for an authorized project. Signing secrets are never returned. Requires handoffs:read permission. Optional projectId selects an owned OAuth account project.
Input Schema
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🔴talkform.delete_webhook(projectId)
Disables an authorized project's active webhook and cancels pending deliveries. Requires handoffs:write permission. Optional projectId selects an owned OAuth account project.
Input Schema
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Community
Evidence