- Docs
- MCP
- Tools
MCP Tools
Tools are defined and deployed from the MCP Worker repository (Cloudflare Worker + local stdio). Current server version: 1.9.0. Hosted endpoint: https://mcp.oflo.ai.
Production MCP for this tenant: https://mcp.oflo.ai.
Auth comes from the MCP connection Bearer (Authorization: Bearer sk_…). Tools do not take a per-call apiKey argument.
Newer CRM, marketing, and productivity tools require matching API key scopes (for example read/write:deals, write:single_sends, read:agents). Generate a fresh key from the dashboard if calls fail with a permission error. See Installation.
CRM, marketing (sequences, single sends, segments, brands), social, productivity, and commerce tools accept an optional organization argument: omit or pass personal for the personal account (default), or pass an organization ObjectId or exact name. Use list_my_organizations to discover org ids and names. Scope is sent as x-organization-id on each REST call. Connect X, LinkedIn, and Instagram in that same workspace before scheduling.
Catalog
| Category | Tools |
|---|---|
| Auth / util | get_api_key_info, list_my_organizations, weather_check, get_user_data, authenticate_user |
| Content | create_post, search_posts |
| Leads | create_lead, get_lead, update_lead, search_leads, list_leads, delete_lead, archive_lead, unarchive_lead, restore_lead, lead_stats |
| Signals / bugs | create_signal (Signal APIs), report_bug |
| Social | post_twitter, schedule_social_post, post_social_now, list_social_posts, get_social_post, cancel_social_post, reschedule_social_post, update_social_post, publish_social_post_now |
| Deals | create_deal, get_deal, update_deal, search_deals, delete_deal, archive_deal, unarchive_deal, deal_stats |
| Accounts | create_account, get_account, update_account, search_accounts, delete_account, archive_account, unarchive_account, account_stats |
| Contacts | create_contact, search_contacts, get_contact, update_contact, delete_contact |
| Notes | create_note, list_notes, get_note, update_note, delete_note |
| Segments | list_segments, get_segment, create_segment, update_segment, import_segments, export_segments |
| Sequences | list_sequences, get_sequence, create_sequence, update_sequence |
| Single sends | list_single_sends, list_single_send_drafts, save_single_send_draft, delete_single_send_draft, send_single_send, schedule_single_send |
| Brands | list_brands, get_brand, create_brand, update_brand, import_brands, export_brands, delete_brand, archive_brand, unarchive_brand |
| CRM bulk | import_leads, export_leads, bulk_create_leads, import_accounts, export_accounts, bulk_create_accounts, import_contacts, export_contacts, bulk_create_contacts, import_deals, export_deals, bulk_create_deals |
| Customers / investors | list/get/create/update_customer, import/export_customers; list/get/create/update_investor, import/export_investors |
| Lists / pipeline | list_lists, get_list, create_list, update_list, add_list_items, remove_list_items; list_pipelines, list_pipeline_items, move_pipeline_deal, move_pipeline_item |
| Campaigns / programs | list/get/create/update_campaign, import/export_campaigns; list/get/create/update_program, import/export_programs |
| Job postings | list_job_postings, get_job_posting, create_job_posting, update_job_posting |
| HR | list/get/create/update for employees, departments, positions, attendance, payroll, offers, applications, interviews; list_employee_leave, create_employee_leave |
| Tasks | create_task, list_tasks, get_task, update_task, delete_task |
| Links / sharing | list_entity_links, create_entity_link, list_entity_shares, share_entity, unshare_entity |
| Productivity | meetings, projects, forms (+ submissions/export), booking links, list_calendar_events, workspace emails (list/get/send/reply), email templates (list/get/create/update), notifications, short URLs, generate_file_upload_url |
| Commerce / content | quotes, contracts, SKUs (+ export), listings (+ import/export), events (+ import), data rooms — list/get/create/update each |
| Credits / agents | credits_status, list_agents, agent_status |
Single sends (v1.5.0+)
Use these for one-off marketing emails. Prefer save_single_send_draft over email templates when you have subject/body (or HTML) only — drafts do not require Unlayer design JSON. Requires read/write:single_sends.
| Tool | REST |
|---|---|
| list_single_sends | GET /api/v1/single-sends/list |
| list_single_send_drafts | GET /api/v1/single-sends/draft |
| save_single_send_draft | POST /api/v1/single-sends/draft |
| delete_single_send_draft | DELETE /api/v1/single-sends/draft?draftId= |
| send_single_send | POST /api/v1/single-sends/send-recipients |
| schedule_single_send | POST /api/v1/single-sends/schedule |
save_single_send_draft accepts singleSendName, subject, body / htmlBody, composerMode (simple | html), selectedLeads, csvRecipients, optional draftId to update, and organization. Pass draftId only when updating an existing draft.
Sequences & segments
Sequence tools map to /api/v1/sequences (read/write:sequences). Segment tools map to /api/v1/audience/segments (read/write:segments). create_segment requires name and type; optional audienceType (b2c / b2b / hybrid) and criteria.
| Tool | REST |
|---|---|
| list_sequences / get_sequence / create_sequence / update_sequence | /api/v1/sequences |
| list_segments / get_segment / create_segment / update_segment | /api/v1/audience/segments |
| import_segments | POST /api/v1/audience/segments/import |
| export_segments | GET /api/v1/audience/segments/export |
Email templates
list_email_templates, get_email_template, create_email_template, and update_email_template use /api/v1/email-templates (read/write:email_templates). These store Unlayer builder designs for the email builder UI.
REST create requires both name and a Unlayer design object — plain HTML or text alone returns 400 Name and design are required. For one-off sends with copy only, use save_single_send_draft instead. To create a reusable template via MCP, supply Unlayer-exported design JSON (and usually generated html).
Notes & contacts
| Tool | REST |
|---|---|
| create_note / list_notes / get_note / update_note / delete_note | /api/v1/notes |
| create_contact / search_contacts / get_contact / update_contact / delete_contact | /api/v1/contacts |
list_notes supports date (single day) or dateFrom / dateTo on createdAt (YYYY-MM-DD). Workspace isolation matches other CRM tools.
Lifecycle, links & sharing (v1.9.0)
Soft-delete: delete_lead, delete_account, delete_deal, delete_contact, delete_brand, delete_task, delete_note. Archive / unarchive for lead, account, deal, and brand; restore_lead for soft-deleted leads. Stats: lead_stats, account_stats, deal_stats. Links: list_entity_links, create_entity_link. Sharing: list_entity_shares, share_entity, unshare_entity.
Productivity & commerce (v1.9.0)
Productivity: meetings, projects, forms (plus submissions/export), booking links, list_calendar_events, workspace emails (list_workspace_emails, get_workspace_email, send_workspace_email, reply_workspace_email), email templates (see above), notifications, short URLs, and generate_file_upload_url.
Commerce / content: quotes, contracts, SKUs (+ export), listings (+ import/export), events (+ import), and data rooms — each with list/get/create/update. New keys need matching scopes (for example meetings, workspace_emails, quotes).
Social scheduling (since v1.2.0)
These tools use the same APIs as /dashboard/marketing/social. Provide at least one of linkedinText, xText, or instagramText when creating. scheduledAt must be a future ISO 8601 datetime. Use get_social_post for a single post, update_social_post to edit copy or add/remove a network, and publish_social_post_now to send an existing scheduled or failed post immediately. post_twitter remains immediate X-only in the personal workspace.
| Tool | REST |
|---|---|
| schedule_social_post | POST /api/v1/social/schedule |
| post_social_now | POST /api/v1/social/post-now |
| list_social_posts | GET /api/v1/social/posts |
| get_social_post | GET /api/v1/social/posts/:id |
| cancel_social_post | PATCH /api/v1/social/posts/:id (action=cancel) |
| reschedule_social_post | PATCH /api/v1/social/posts/:id (action=reschedule) |
| update_social_post | PATCH /api/v1/social/posts/:id (updatePlatform / addPlatform / cancelPlatform) |
| publish_social_post_now | PATCH /api/v1/social/posts/:id (action=publishNow) |
| post_twitter | POST /api/v1/composio/send-twitter |
