What is a Model Context Protocol (MCP) Server?
Ontraport’s MCP Server bridges the gap between your AI and your customer data. It allows your AI to interact with your records in real-time, eliminating the need for manual CSV exports or copy-pasting. This means that once you connect your AI client to Ontraport’s MCP server, then you can “speak” to the AI and update records, search your data, send invoices and more.
Table of contents
Get connected
• Setting permissions
Available actions
• Create, Read, Update, and Delete (CRUD)
• Query
• Manage
• Commerce
Security restrictions
Available objects
Get connected
The first step to get started with the MCP server is to get connected. You can connect to any AI client that accepts streamable HTTP MCP servers. Here are common options:
Claude Desktop
Follow these steps provided by Claude to use custom connectors to get started with a remote MCP.
Add the URL https://mcp.ontraport.com to connect to Ontraport.
Cursor
Follow these steps provided by Cursor to use mcp.json to connect to a remote server.
Note that you don’t need to include headers or an API key, so your configuration should look like this:
Setting permissions
Once connected a configure button will appear next to your new connection. Click on it to control which specific tools/capabilities you want to enable or disable for Claude to use. This permission management step gives you granular control over what Claude can do with the integration. Permission setup for each client will vary slightly.
For example, you can disable the ability to delete objects to prevent any conversation with Claude resulting in the deletion of any object.
When you set up permissions, they are tied to the role connected to your userseat.
Available actions
Back to top
The following actions are available as long as you have not disabled them when you set your permissions after getting connected.
Create, Read, Update, and Delete (CRUD)
Back to top
Managing information within a database relies on four fundamental operations collectively known as CRUD: Create, Read, Update, and Delete. These actions form the backbone of data interaction, allowing you to build, maintain, and refine your records with precision.
The following section outlines the specific tools available for these operations. While each tool serves a distinct purpose, from retrieving historical data to purging obsolete entries. We recommend using the Save or update function. This "upsert" capability is the primary recommendation for maintaining data integrity, as it intelligently handles records to prevent the creation of unintended duplicates.
- Create or update a record based on a unique field match, such as email.
- This is the recommended way to add records because it prevents duplicates.
- Example prompt: “Add Sarah Johnson from sarah@acme.com to my contacts, or update her record if she’s already in there.”
- Tool name: saveorupdate_object
- Create a brand new record.
- Use when you’re certain the record doesn’t already exist.
- Example prompt: “Create a new company record for Acme Corp.”
- Tool name: create_object
- Fetch records using ID, a list of IDs, or a search condition.
- Example prompt: “Pull up all contacts who signed up in the last 30 days.”
- Tool name: get_objects
- Modify a single record by ID or unique field.
- Example prompt: “Change John Smith’s phone number to 555-1234”
- Tool name: update_object
- Permanently delete a single record by ID.
- Example prompt: "Delete the contact record for mike@oldcompany.com.”
- Tool name: delete_object
- Bulk delete records by IDs or a condition.
- Example prompt: "Delete all contacts who haven't engaged in the last year."
- Any requests to delete all records in a collection will be ignored.
- Tool name: delete_objects
Query
Back to top
While CRUD operations allow you to manipulate individual records, Query tools summarize account-wide data.. These tools are designed for exploration, reporting, and auditing, allowing you to move beyond single data points to understand your entire ecosystem.
The tools in this section serve three primary purposes:
- Structural Discovery: Identifying which record types (like Deals or Companies) and specific fields are available to you.
- Engagement Tracking: Monitoring how your audience interacts with your brand through automations, emails, and notes.
- System Health: Retrieving account-wide settings and debugging complex API conditions.
Whether you need to count your active leads in a specific region or audit the recent activity of a high-value contact, these tools provide the necessary transparency to make data-driven decisions.
- List all record types available in your account (Contacts, Companies, Deals, etc.)
- This is a good starting point for exploring what’s accessible. This list may also be different than your actual permissions in your Ontraport account as not all objects are accessible through the MCP.
- Example prompt: “What objects in my account can be accessed via the MCP server?”
- Tool name: list_allowed_object_types
- Get a list of all available fields and their properties for a given record type.
- This is useful for knowing what data you can work with.
- Example prompt: “What fields are available on a contact record?”
- Tool name: get_object_meta
- Get the total number of records matching the conditions, plus optional field sums or averages (e.g. total revenue).
- Example prompt: “How many active contacts do I have in California?”
- Tool name: count_objects
- Get your Ontraport account details and settings like account number, timezone and configuration.
- Example prompt: “What’s my Ontraport account number and timezone?”
- Tool name: get_account_info
- List your saved groups along with filter criteria that define them.
- Example prompt: “Show me all my saved contact groups.”
- Tool name: get_groups
- Get a list of who is currently subscribed to a specific tag, sequence or automation.
- Example prompt: “Who’s currently enrolled in my welcome automation?”
- Tool name: get_subscribers
- Get a full activity history for a contact including emails sent, links clicked, tasks completed, etc.
- Example prompt: “Show me John Smith’s contact history.
- Tool name: get_contact_log
- Get all automation events for a contact including field changes, trigger fires, rule executions etc.
- Example prompt: “What automations has Jane Doe been added to in the last three months?”
- Tool name: get_automation_log
- Get a list of recently sent emails or SMS messages along with engagement stats like opens and clicks.
- Example prompt: “What emails went out this month and how did they perform?”
- Tool name: get_recent_messages
- Get a list of recently logged notes on records, including author names and the ability to filter for phone call notes.
- Example prompt: “Show me the last 10 notes logged on contact records.”
- Tool name: get_recent_notes
- Get a list of tasks with assignee names and the ability to filter by status (Open, completed, cancelled).
- Example prompt: “What open tasks are assigned to my sales team?”
- Tool name: get_recent_tasks
- Get the required form fields needed to complete a task by passing in a task ID.
- Can be called proactively when reading a task's full parameters upfront, or reactively when a complete-task call fails due to missing fields.
- Example prompt: "What fields do I need to fill out to complete task #4821?"
- Tool name: get_task_form_requirements
- Get a list of upcoming scheduled email or SMS broadcasts before they go out.
- Example prompt: “What email broadcasts are scheduled to go out this week?”
- Tool name: get_scheduled_broadcasts
- Retrieve hosted URLs of landing pages by name or ID.
- Example prompt: “What’s the URL of my ‘Summer Sale’ landing page?”
- Tool name: get_landing_page_url
- Convert a human-readable condition into a raw API format.
- This is primarily useful for debugging or inspecting how conditions are structured.
- Example prompt: “Show me the raw API condition for contacts where lifetime value is over $1000.”
- Tool name: build_api_condition
Manage
Back to top
Managing a database involves more than just storing information; it requires orchestrating the journey of your leads and customers. The tools in this section allow you to trigger automated workflows, organize complex data relationships, and manage the daily to-do lists that keep your team on track.
These operations are categorized into three primary functions:
- Segmentation & Automation: Dynamically categorize records using tags and manage their journey through automated sequences or email campaigns.
- Relational Mapping: Link different record types together—such as connecting a Contact to a Company or a Deal—to create a holistic view of your business network.
- Task Orchestration: Assign, complete, or reschedule team tasks to ensure no follow-up falls through the cracks.
By leveraging these tools, you transform a static database into a functional, automated engine that responds to user behavior and internal team needs in real time.
- Add or remove tags on records by tag ID or name.
- This is a core tool for segmentation and triggering automations.
- Example prompt: “Tag everyone in my ‘webinar attendees’ group as ‘warm lead.’”
- Tool name: manage_tags
- Manage contact enrollment in automations or sequences.
- Example prompt: “Enroll John Smith in the onboarding email sequence.”
- Tool name: manage_subscriptions
- Create or remove relationships between records, such as adding a contact to a company.
- Example prompt: “Add Sarah Jones as a related contact for Acme Corp.”
- Tool name: manage_relationships
- Create a new task and assign it to a specific user related to a contact or other record.
- Example prompt: “Assign the “Demo follow-up” task to Sarah for John Smith.”
- Tool name: assign_task
- Complete a task, choose an outcome and optionally add a note.
- Example prompt: “Mark John Smith’s follow-up call as complete with the outcome ‘left voicemail.’”
- Tool name: complete_task
- Cancel a task without marking it complete.
- Example prompt: “Cancel the follow-up task on Jane Doe’s record.”
- Tool name: cancel_task
- Reschedule a task to a new due date.
- Example prompt: "Move the follow-up task on John Smith's record to next Friday."
- Tool name: reschedule_task
- Pause or resume automations or sequences.
- Example prompt: “Pause the holiday drip automation while we’re closed next week.”
- Tool name: pause_unpause_objects
Commerce
Back to top
The Commerce suite provides a robust framework for managing the complete lifecycle of a customer’s financial journey. Whether you are facilitating a one-time purchase, managing a recurring subscription, or handling the complexities of failed payments, these tools give you full control over your cash flow and billing transparency.
These operations are organized into four key areas:
- Revenue Visibility: Quickly retrieve invoice histories, track purchased products, and identify overdue accounts to stay on top of your bottom line.
- Billing & Invoicing: Create, update, and send professional invoices, allowing you to transition a sale from a "draft" concept to a finalized "open" request for payment.
- Payment Processing: Securely charge cards on file, process real-time transactions, or log offline payments (like checks or cash) to keep your ledger balanced.
- Revenue Recovery & Adjustments: Manage the "what-ifs" of business, such as refunding a customer and voiding pending charges or retrying declined cards or writing off uncollectible debt.
By mastering these transactional tools, you ensure a seamless purchasing experience for your customers while maintaining a clean, accurate financial record for your business.
- Get a list of invoices with totals and status (draft, open, paid, etc.
- Example prompt: “Show me all open invoices from this month.”
- Tool name: get_invoices
- Get a list of purchases tied to a contact including product details.
- Example prompt: “What products has John Smith bought from us?”
- Tool name: get_purchases
- Get a list of declined or overdue invoices.
- This can be a starting point for collection work.
- Example prompt: “Which invoices are declined or overdue right now?”
- Tool name: get_failed_transactions
- Create a new invoice with the status Draft or Open.
- Example prompt: “Create a draft invoice for John Smith for $500 for consulting services.”
- Tool name: create_invoice
- Edit a draft or open invoice. Choose to change a draft invoice to open.
- Example prompt: “Change the due date of John Smith’s draft invoice to April 30th and sent it.”
- Tool name: update_invoice
- Pay an invoice using a card already on file for the contact.
- Example prompt: “Pay invoice #1234 using John Smith’s card on file.”
- Tool name: pay_invoice
- Charge a card directly through the payment gateway.
- Example prompt: “Charge Jane Doe’s card $299 for the Three Marketeers Annual Subscription.”
- Tool name: process_transaction
- Log an offline transaction without processing a charge.
- Example prompt: Log a $1000 check payment from John Smith for the Three Marketeers Annual Subscription.”
- Tool name: log_offline_purchase
- Mark an invoice as paid manually (no charge processed).
- Best for payment settled outside the system.
- Example prompt: “Mark invoice #9012 as paid.”
- Tool name: mark_transaction_paid
- Retry a previously failed or declined charge.
- Example prompt: “Retry the failed charge on John Smith’s account”
- Tool name: rerun_transaction
- Refunds a settled charge back to the customer.
- Example prompt: “Refund John Smiths $299 payment from last week.”
- Tool name: refund_transaction
- Void an unsettled charge before it clears.
- Example prompt: “Void the pending charge on Jane Doe’s account.”
- Tool name: void_transaction
- Mark an invoice as uncollectable and write it off.
- Example prompt: “Write off invoice #3456.”
- Tool name: write_off_transaction
- Cancel a contact’s active recurring subscription.
- Example prompt: “Cancel John Smith’s monthly Three Marketeers Membership subscription.”
- Tool name: cancel_subscription
- Convert an invoice into collection or declined status.
- Example prompt: “Add invoice #7890 to collections.”
- Tool name: convert_transaction
- Send or resend an invoice to a contact. It will not send drafts; finalize the invoice before sending using update_invoice.
- Example prompt: “Send invoice #1234 to John Smith.”
- Tool name: send_invoice
- Update the details of a recurring order such as price, quantity or billing frequency.
- Example prompt: “Change John Smith’s subscription from monthly Three Marketeers Membership subscription to $50 per month per our new pricing structure.”
- Tool name: update_order
- Verify offer and pricing configurations.
- Example prompt: “Check if the summer promo offer is set up correctly.”
- Tool name: validate_offer
Security restrictions
Back to top
To protect your accounts you cannot delete all records in a collection. The system ignores those requests. .
However, if you want to ensure that none of your records are deleted by interacting with Ontraport MCP server, then disable the delete permissions after getting set up.
Available objects
Back to top
Available objects are the record types you can read and manipulate through the MCP server. Each object maps to a core part of the platform, such as contacts, tasks, invoices, automations, and so on, and has a fixed ID and API key used to identify it in requests.
Most objects support generic CRUD tools (get_objects, create_object, update_object, delete_object), but many also have purpose-built tools that handle business logic, state transitions, and side effects more reliably. Where specialized tools exist, prefer them over generic CRUD.
Reference key:
- Access - lists the HTTP methods available for that object via generic CRUD tools.
- Tools - lists specialized tools to prefer over generic CRUD where available.
Core CRM
- Contacts - The central record in the system; all interactions, purchases, and automations relate back to contacts.
- ID: 0
- Access: GET POST PUT DEL
- Tools: manage_tags, manage_subscriptions, manage_relationships
- Tasks - Contact-associated tasks. Use specialized tools to enforce valid state transitions.
- ID: 1
- Access: GET PUT
- Tools: get_recent_tasks, assign_task, complete_task, cancel_task, reschedule_task
- Groups - Static contact groupings managed in the UI.
- ID: 3
- Access: GET
- Tools: get_groups
- Log Items - Read-only activity history per contact - emails sent, calls logged, etc.
- ID: 4
- Access: GET
- Tools: get_contact_log
- Notes - Free-text notes attached to contact records.
- ID: 12
- Access: GET POST PUT DEL
- Tools: get_recent_notes
- Tags - Labels applied to contacts for segmentation and filtering.
- ID: 14
- Access: GET POST PUT DEL
- Tools: manage_tags, get_subscribers
- Tag Subscribers - Join table between contacts and tags.
- ID: 138
- Access: GET
- Tools: get_subscribers, manage_tags
- Task Outcomes - Reference list of valid outcomes for completing a task.
- ID: 66
- Access: GET
- Tools: complete_task
- Custom Object Relationships - Links between contacts and custom objects, or between two contacts.
- ID: 102
- Access: GET
- Tools: manage_relationships
Marketing & Automation
- Sequences - Email or SMS drip sequences.
- ID: 5
- Access: GET
- Tools: get_subscribers, manage_subscriptions, pause_unpause_objects
- Sequence Subscribers - Join table between contacts and sequences.
- ID: 8
- Access: GET
- Tools: get_subscribers, manage_subscriptions
- Rules - Trigger-based if/then rules configured in the UI.
- ID: 6
- Access: GET
- Tools: pause_unpause_objects
- Messages - Individual email or SMS messages sent to contacts.
- ID: 7
- Access: GET DEL
- Tools: get_recent_messages
- Pages - Landing pages built in the platform.
- ID: 20
- Access: GET
- Tools: get_landing_page_url
- Scheduled Broadcasts - One-time email blasts queued to send at a future date.
- ID: 23
- Access: GET
- Tools: get_scheduled_broadcasts
- Tracked Links - Click-tracked links embedded in emails.
- ID: 80
- Access: GET
- Automation Log Items - Per-contact history of automation steps fired.
- ID: 100
- Access: GET
- Tools: get_automation_log
- Automations - Automation workflows. Also accessible via the legacy API key: campaigns.
- ID: 140
- Access: GET
- Tools: manage_subscriptions, pause_unpause_objects
Commerce & Billing
Write operations for Invoices, Payments, and Orders are only available through specialized tools; generic update and delete are disabled for these types.
- Products - The product catalog. Full CRUD, no restrictions.
- ID: 16
- Access: GET POST PUT DEL
- Purchases - Completed purchase records.
- ID: 17
- Access: GET
- Tools: get_purchases
- Purchase History Logs - Audit log of changes to purchase records.
- ID: 30
- Access: GET
- Invoices - Invoice records. All write operations via specialized tools only.
- ID: 46
- Access: GET
- Tools: get_invoices, get_failed_transactions, create_invoice, update_invoice, pay_invoice, validate_offer, send_invoice, update_order, convert_transaction
- Payments - Payment transactions. All mutations via specialized tools only.
- ID: 227
- Access: GET
- Tools: get_payments, process_transaction, log_offline_transaction, refund_transaction, void_transaction, mark_transaction_paid, write_off_transaction, rerun_transaction
- Orders - Order records. Updates via update_order; cancellations via cancel_subscription.
- ID: 52
- Access: GET DEL
- Tools: cancel_subscription, update_order
- Open Orders - Active subscription orders.
- ID: 44
- Access: GET
- Tools: get_subscribers, manage_subscriptions, cancel_subscription
- Credit Cards - Payment methods on file for a contact.
- ID: 45
- Access: GET
- Taxes - Configured tax rates.
- ID: 63
- Access: GET
- Shipping Types - Available shipping options.
- ID: 64
- Access: GET
- Gateways - Payment gateway configurations.
- ID: 70
- Access: GET
- Tools: get_account_info
Partners & Affiliates
- Partner Programs - Top-level affiliate program definitions.
- ID: 35
- Access: GET
- Partners - Individual affiliate/partner records.
- ID: 36
- Access: GET
- Referrals - Referral events generated by partner activity.
- ID: 37
- Access: GET
- Commissions - Commission records owed or paid to partners.
- ID: 38
- Access: GET
System Apps
These objects require the corresponding Ontraport app to be enabled in your account.
- Deals - Pipeline deals for sales tracking.
- ID: 149
- Access: GET POST PUT DEL
- Companies - Company/account records that contacts can be associated with.
- ID: 150
- Access: GET POST PUT DEL
- Surveys - Survey definitions created in the platform.
- ID: 172
- Access: GET
Custom Objects
Custom objects use IDs ≥ 10000 and vary by account. All support full GET POST PUT DEL access. To list available custom objects in your account, call list_allowed_object_types.