MCP Tools: Workspace
Workspace-Einstellungen, Zugangsdaten, Memory (Fakten, Präferenzen, Anweisungen) — technische Referenz auf Englisch.
Technische Referenz auf Englisch.
Workspace
Workspace settings, credentials, memory (facts, preferences, instructions)
get_settings
read-only
Get workspace settings and integration status (which integrations are configured).
No parameters.
update_settings
destructive
Update workspace settings (offer_summary, sender_name, tone, language, notifications, etc.). Use notifications key to toggle Slack alerts per type: { notifications: { positive_replies: true/false, morning_briefing: true/false, meeting_prep: true/false } }. All default to true (opt-out).
| Parameter | Type | Required | Description |
|---|---|---|---|
settings | object | yes | Settings key-value pairs to merge with existing settings |
update_credentials
destructive
Update integration API keys (instantly_api_key, heyreach_api_key, hubspot_api_key).
| Parameter | Type | Required | Description |
|---|---|---|---|
instantly_api_key | string | no | |
heyreach_api_key | string | no | |
hubspot_api_key | string | no |
list_prompts
read-only
List all pipeline-stage prompts with their defaults, current values, and override status.
No parameters.
set_prompt_overrides
destructive
Save pipeline-stage prompt overrides. Overwrites existing override for each key provided.
| Parameter | Type | Required | Description |
|---|---|---|---|
overrides | object | yes | Map of prompt-key → override text |
reset_prompts
destructive
Remove all workspace prompt overrides, restoring defaults.
No parameters.
get_mcp_key
read-only
Read the workspace MCP API key (used for /api/mcp/[key] external access). Returns null if no key has been generated yet.
No parameters.
generate_mcp_key
destructive
Generate or rotate the workspace MCP API key (used by external clients to call /api/mcp/[key]). Rotating invalidates the previous key immediately. Returns the new key once — store it; it is not retrievable in plain text from a UI later if lost.
No parameters.
create_notification_trigger
action
Create a custom notification trigger. Events: new_leads, reply_received, campaign_metric, pipeline_stage, meeting_booked. Conditions vary by event:
- new_leads: { vertical?, source?, min_count? }
- reply_received: { category? (positive_interest/negative/not_now/objection/neutral), min_count? }
- campaign_metric: { metric (bounce_rate/open_rate/reply_rate), threshold (percent), operator? (gt/lt, default gt) }
- pipeline_stage: { stage (e.g. “qualified”, “enriched”) }
- meeting_booked: {} (no condition needed)
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Human-readable trigger name, e.g. “Neue Leads aus SaaS” |
event | enum(new_leads \ | reply_received \ | campaign_metric \ |
condition | object | no | |
enabled | boolean | no |
list_notification_triggers
read-only
List all notification triggers for this workspace.
| Parameter | Type | Required | Description |
|---|---|---|---|
enabled_only | boolean | no |
update_notification_trigger
destructive
Update a notification trigger (name, event, condition, enabled).
| Parameter | Type | Required | Description |
|---|---|---|---|
trigger_id | string | yes | ID of the trigger to update |
name | string | no | |
event | enum(new_leads \ | reply_received \ | campaign_metric \ |
condition | object | no | |
enabled | boolean | no |
delete_notification_trigger
destructive
Delete a notification trigger.
| Parameter | Type | Required | Description |
|---|---|---|---|
trigger_id | string | yes | ID of the trigger to delete |
list_memories
read-only
List stored workspace memories (learned facts, preferences, instructions, contacts, context). Useful for understanding what the system knows about this workspace.
| Parameter | Type | Required | Description |
|---|---|---|---|
category | enum(preference \ | fact \ | context \ |
limit | number | no |
save_memory
action
Save a new workspace memory (fact, preference, instruction, contact info, or context about the organization).
| Parameter | Type | Required | Description |
|---|---|---|---|
category | enum(preference \ | fact \ | context \ |
content | string | yes | Content to remember |
source | string | no |
update_memory
destructive
Update an existing workspace memory entry.
| Parameter | Type | Required | Description |
|---|---|---|---|
memory_id | string | yes | Memory ID to update |
content | string | no | |
category | enum(preference \ | fact \ | context \ |
delete_memory
destructive
Delete a workspace memory entry.
| Parameter | Type | Required | Description |
|---|---|---|---|
memory_id | string | yes | Memory ID to delete |
set_reminder
destructive
Set a reminder that will send a Slack notification at a specific time. Use when the user says “remind me”, “erinnere mich”, or asks to follow up later.
| Parameter | Type | Required | Description |
|---|---|---|---|
message | string | yes | The reminder message |
remind_at | string | yes | When to remind (ISO datetime, e.g. “2026-04-05T09:00:00Z”) |
get_setup_status
read-only
Snapshot of this workspace’s campaign-setup readiness: LinkedIn/WhatsApp connections, senders, playbooks, pipelines, and required integrations. Returns a list of concrete next_steps the LLM can act on. Call this FIRST when a user asks to set up or launch a campaign — it prevents guessing and avoids skipping prerequisites. Refresh it between major actions (e.g. after connecting an account).
No parameters.
Playbooks
Create, edit, clone, delete playbooks and personas
list_playbooks
read-only
List all playbooks in the workspace with status, ICP summary, and lead counts. Use get_playbook for full configuration details.
| Parameter | Type | Required | Description |
|---|---|---|---|
active_only | boolean | no |
get_playbook
read-only
Get full playbook details including all fields, personas, and sequences.
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes | Playbook ID |
create_playbook
action
Create a new playbook with full configuration — ICP, messaging, offer, qualification, research instructions, and all settings.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Playbook name (required) |
offer_headline | string | no | |
offer_description | string | no | |
value_proposition | string | no | |
icp_industries | string[] | no | |
icp_regions | string[] | no | |
icp_company_size_min | number | no | |
icp_company_size_max | number | no | |
icp_revenue_min | number | no | |
icp_revenue_max | number | no | |
icp_tech_stack | string[] | no | |
qualification_prompt | string | no | |
buying_signals | object[] | no | |
good_fit_criteria | string[] | no | |
bad_fit_criteria | string[] | no | |
messaging_channels | string[] | no | |
messaging_instructions | string | no | |
communication_style | string | no | |
email_step_count | number | no | |
email_step_delays | number[] | no | |
linkedin_step_count | number | no | |
whatsapp_step_count | number | no | |
whatsapp_step_delays | number[] | no | |
email_sender_id | string | no | |
linkedin_sender_id | string | no | |
whatsapp_sender_id | string | no | |
research_instructions | string | no | |
lead_discovery_instructions | string | no | |
lead_discovery_source | enum(unipile \ | research_api) | no |
scan_keywords | string[] | no | |
scan_min_engagement | number | no | |
scan_frequency | number | no | |
lead_magnets | object[] | no | |
case_studies | object[] | no | |
language | string | no | |
linkedin_provider | enum(heyreach \ | unipile) | no |
enhanced_reply_mode | boolean | no | |
daily_sourcing_target | number | no | |
require_manual_release | boolean | no | |
allow_company_email_fallback | boolean | no | |
solar_analysis_config | object | no |
update_playbook
destructive
Update any playbook fields — ICP, messaging, offer, qualification, research instructions, senders, channels, steps, and all settings.
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes | Playbook ID |
name | string | no | |
offer_headline | string | no | |
offer_description | string | no | |
value_proposition | string | no | |
icp_industries | string[] | no | |
icp_regions | string[] | no | |
icp_company_size_min | number | no | |
icp_company_size_max | number | no | |
icp_revenue_min | number | no | |
icp_revenue_max | number | no | |
icp_tech_stack | string[] | no | |
qualification_prompt | string | no | |
buying_signals | object[] | no | |
good_fit_criteria | string[] | no | |
bad_fit_criteria | string[] | no | |
messaging_channels | string[] | no | |
messaging_instructions | string | no | |
communication_style | string | no | |
email_step_count | number | no | |
email_step_delays | number[] | no | |
linkedin_step_count | number | no | |
whatsapp_step_count | number | no | |
whatsapp_step_delays | number[] | no | |
email_sender_id | string | no | |
linkedin_sender_id | string | no | |
whatsapp_sender_id | string | no | |
research_instructions | string | no | |
lead_discovery_instructions | string | no | |
lead_discovery_source | enum(unipile \ | research_api) | no |
scan_keywords | string[] | no | |
scan_min_engagement | number | no | |
scan_frequency | number | no | |
lead_magnets | object[] | no | |
case_studies | object[] | no | |
language | string | no | |
linkedin_provider | enum(heyreach \ | unipile) | no |
enhanced_reply_mode | boolean | no | |
daily_sourcing_target | number | no | |
require_manual_release | boolean | no | |
allow_company_email_fallback | boolean | no | |
solar_analysis_config | object | no |
approve_playbook
action
Approve a draft playbook for use in pipeline.
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes | Playbook ID |
set_playbook_status
destructive
Change a playbook’s lifecycle status — pause, resume (active), archive, or move through draft/approval. Use this to archive or pause/resume a playbook; update_playbook does NOT change status. To remove a playbook entirely, use delete_playbook instead.
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes | Playbook ID |
status | enum(draft \ | pending_approval \ | approved \ |
clone_playbook
action
Clone a playbook with its personas and sequences.
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes | Playbook ID to clone |
delete_playbook
destructive
Delete a playbook.
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes | Playbook ID |
list_playbook_templates
read-only
List available pre-built playbook templates. Returns slug, name, description, channels, and persona count.
No parameters.
create_playbook_from_template
action
Create a new playbook from a pre-built template. Includes all config and personas from the template.
| Parameter | Type | Required | Description |
|---|---|---|---|
template_slug | string | yes | Template slug (from list_playbook_templates) |
name | string | no | |
language | string | no | |
icp_regions | string[] | no | |
icp_industries | string[] | no |
create_persona
action
Create a persona for a playbook — define target job titles, seniority, messaging tone, challenges, goals, objections, value props, and CTA.
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes | Playbook ID |
name | string | yes | Persona name (e.g. “IT Decision Maker”) |
job_titles | string[] | yes | Target job titles |
seniority | enum(C-level \ | VP \ | Director \ |
department | string | no | |
is_decision_maker | boolean | no | |
challenges | string[] | no | |
goals | string[] | no | |
objections | object[] | no | |
value_props | string[] | no | |
tone | enum(professional \ | casual \ | technical \ |
cta | string | no |
update_persona
destructive
Update a persona — modify job titles, seniority, department, challenges, goals, objections, value props, tone, or CTA.
| Parameter | Type | Required | Description |
|---|---|---|---|
persona_id | string | yes | Persona ID |
name | string | no | |
job_titles | string[] | no | |
seniority | enum(C-level \ | VP \ | Director \ |
department | string | no | |
is_decision_maker | boolean | no | |
challenges | string[] | no | |
goals | string[] | no | |
objections | object[] | no | |
value_props | string[] | no | |
tone | enum(professional \ | casual \ | technical \ |
cta | string | no |
delete_persona
destructive
Delete a persona from a playbook.
| Parameter | Type | Required | Description |
|---|---|---|---|
persona_id | string | yes | Persona ID |
list_personas
read-only
List all personas for a playbook.
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes | Playbook ID |
list_playbook_lookalikes
read-only
List cached lookalike candidates + seed profile for a playbook (does not regenerate).
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes |
list_playbook_post_previews
read-only
List cached LinkedIn post previews for a playbook.
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes |
create_playbook_campaign
action
Manually create an outreach campaign for this playbook.
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes |
link_playbook_campaign
action
Link an EXISTING outreach campaign (by external campaign id) to a playbook. Use when a campaign was already created in Email Outreach/LinkedIn Outreach and the playbook should adopt it instead of creating a new one. channel=“email” links Email Outreach, channel=“linkedin” links LinkedIn Outreach. Creates the sequence row if missing.
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes | |
campaign_id | string | yes | External campaign id from Email Outreach or LinkedIn Outreach. |
channel | enum(email \ | linkedin \ | whatsapp) |
generate_playbook_lookalikes
action
Regenerate lookalike companies for a playbook. Writes new rows.
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes | |
limit | number | no |
generate_playbook_post_previews
action
Generate fresh LinkedIn post previews for a playbook.
| Parameter | Type | Required | Description |
|---|---|---|---|
playbook_id | string | yes | |
count | number | no |
Custom Tools
Create/manage workspace-specific custom tools
list_custom_tools
read-only
List all custom tools defined for this workspace. Shows name, description, handler type, and enabled status.
| Parameter | Type | Required | Description |
|---|---|---|---|
enabled_only | boolean | no | |
tag | string | no |
create_custom_tool
action
Create a new custom tool for this workspace. The tool becomes available to all agents in this workspace.
Handler types:
- http_webhook: Calls an external HTTP endpoint. Config: { url, method, headers, body_template, auth_header }
- supabase_query: Runs a parameterized query. Config: { table, select, filters, single }
- javascript: Sandboxed JS logic. Config: { code } — receives ‘input’ variable, must return result
- chain: Chains multiple tools. Config: { steps: [{ tool_name, input_map }] }
- static: Returns templated response. Config: { response_template }
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Tool name (snake_case, e.g. check_inventory) |
description | string | yes | What this tool does — shown to AI agents |
input_schema | object | no | |
handler_type | enum(http_webhook \ | supabase_query \ | javascript \ |
handler_config | object | yes | Handler-specific configuration |
tags | string[] | no |
update_custom_tool
destructive
Update an existing custom tool. Can change description, schema, handler config, or enabled status.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Tool name to update |
description | string | no | |
input_schema | object | no | |
handler_config | object | no | |
enabled | boolean | no | |
tags | string[] | no |
delete_custom_tool
destructive
Delete a custom tool from this workspace.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Tool name to delete |
test_custom_tool
action
Test a custom tool by running it with sample input.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Tool name to test |
test_input | object | no |
Channels
Connect Slack, Teams, Discord, Telegram, WhatsApp, webhooks
list_channels
read-only
List all messaging channels connected to this workspace (Slack, Teams, Discord, etc.).
| Parameter | Type | Required | Description |
|---|---|---|---|
status | enum(active \ | pending \ | error \ |
create_channel
action
Connect a new messaging channel to this workspace. Generates a webhook URL for receiving messages.
Channel types and required credentials:
- slack: { bot_token, signing_secret } — optionally { channel_id, app_id }
- teams: { bot_id, tenant_id, app_password } — optionally { webhook_url }
- discord: { bot_token, guild_id, channel_id }
- telegram: { bot_token } — optionally { chat_id }
- whatsapp_business: { phone_number_id, access_token, verify_token }
- webhook: { secret } — generic HTTP webhook (inbound/outbound)
- email: { address, imap_host, smtp_host, username, password }
After creation, use the returned inbound_webhook_url to configure your messaging platform.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Channel display name (e.g. “Sales Team Slack”) |
channel_type | enum(slack \ | teams \ | discord \ |
credentials | object | yes | Channel-specific credentials |
default_agent_slug | string | no | |
routing_rules | object[] | no | |
config | object | no |
update_channel
destructive
Update a channel connection. Can change credentials, routing, agent, or config.
| Parameter | Type | Required | Description |
|---|---|---|---|
channel_id | string | yes | Channel ID to update |
name | string | no | |
credentials | object | no | |
default_agent_slug | string | no | |
routing_rules | object[] | no | |
config | object | no | |
status | enum(active \ | disabled) | no |
test_channel
action
Test a channel connection by verifying credentials and sending a test message.
| Parameter | Type | Required | Description |
|---|---|---|---|
channel_id | string | yes | Channel ID to test |
delete_channel
destructive
Disconnect and remove a channel from this workspace.
| Parameter | Type | Required | Description |
|---|---|---|---|
channel_id | string | yes | Channel ID to delete |
send_channel_message
action
Send a message to THIS workspace’s connected channel (Slack, Telegram, Discord). Strictly workspace-scoped — only sends to channels belonging to the current workspace. For Slack, sends via chat.postMessage. Supports plain text and markdown. Use this to notify the workspace, send daily summaries, or communicate with the team.
Required integration: slack
| Parameter | Type | Required | Description |
|---|---|---|---|
channel_id | string | no | |
text | string | yes | Message text (plain text or markdown) |
thread_ts | string | no |
setup_slack_channel
action
Guided setup for connecting a new Slack workspace. Creates the channel and provides step-by-step instructions for creating the Slack app and configuring it.
Required integration: slack
| Parameter | Type | Required | Description |
|---|---|---|---|
channel_name | string | no | |
default_agent_slug | string | no |
Sales Blueprint Brain
Manage the workspace Sales Blueprint Brain — knowledge base, feedback, changelog
get_blueprint
read-only
Returns the workspace Sales Blueprint Brain — full or specific sections. Use this to read the current ICP, copy patterns, personas, objection playbook, and other strategic knowledge.
| Parameter | Type | Required | Description |
|---|---|---|---|
sections | string[] | no |
update_blueprint_section
destructive
Updates a specific section of the workspace Sales Blueprint Brain. Creates the blueprint if it does not exist yet. Logs the change to the changelog.
| Parameter | Type | Required | Description |
|---|---|---|---|
section | enum(company_profile \ | icp_definition \ | personas \ |
content | string | yes | New markdown content for this section |
pin | boolean | no |
get_blueprint_changelog
read-only
Returns recent changelog entries for the workspace Sales Blueprint Brain — shows what was changed, when, and why.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | no |
rate_reply
action
Stores a reply quality rating for a lead. Used to train copy patterns — great/good replies reinforce what worked, bad replies flag what to avoid.
| Parameter | Type | Required | Description |
|---|---|---|---|
lead_id | string | yes | Lead ID whose reply is being rated |
rating | enum(great \ | good \ | okay \ |
reason | string | no |
rate_meeting
action
Stores a meeting outcome rating for a lead. Used to refine ICP and personas — qualified meetings reinforce targeting patterns, disqualified meetings flag segments to avoid.
| Parameter | Type | Required | Description |
|---|---|---|---|
lead_id | string | yes | Lead ID whose meeting outcome is being rated |
outcome | enum(qualified \ | not_qualified \ | follow_up) |
reason | string | no |
extract_from_document
action
Extracts sales knowledge from an uploaded workspace document and merges it into the Sales Blueprint Brain. Supports PDFs, Word docs, text files. The extraction classifies content by blueprint section (ICP, personas, objections, copy patterns, etc.).
| Parameter | Type | Required | Description |
|---|---|---|---|
document_id | string | yes | ID of the workspace document to extract knowledge from |
seed_blueprint_from_crm
action
Seeds the workspace Sales Blueprint Brain from connected CRM data (CRM MCP). Fetches won/lost deals, contacts, and company info via CRM MCP tools, then generates ICP, personas, objection playbook, and copy patterns. Requires CRM MCP integration to be connected.
| Parameter | Type | Required | Description |
|---|---|---|---|
force | boolean | no |
analyze_icp
read-only
Runs a multi-pass ICP analysis on the workspace CRM data via MCP. Clusters companies into ICP segments, identifies buyer personas, and updates the Sales Blueprint Brain icp_definition and personas sections. Requires an MCP-connected CRM adapter (CRM MCP). Does NOT touch other blueprint sections.
No parameters.
sync_meeting_transcripts
action
Syncs recent meeting transcripts from a connected meeting tool (e.g. Fireflies) and extracts sales insights into the blueprint. Requires a meeting transcript adapter to be connected.
| Parameter | Type | Required | Description |
|---|---|---|---|
since | string | no | |
adapter | string | no |
MCP Health
Check and refresh connected vendor MCP integrations
check_mcp_integrations
read-only
List all workspace MCP integrations and report their health. When refresh=true, re-discover and cache tool schemas. Returns credential_scope per adapter so external users understand which tools they cannot reach.
| Parameter | Type | Required | Description |
|---|---|---|---|
refresh | boolean | no | |
adapter_id | string | no |