Before you start to use our MCP, please review the following items:
Ensure you have completed the iPaaS.com platform training before using this to best understand what is going on. If you need to gain access to it reach out to partnerships@ipaas.com.
With great power comes great responsibility - the MCP can do things like trigger a sync for your entire catalog and modify (or remove) data from your account. Ensure you understand what you want it to do before you work with it. iPaaS.com is not responsible for restoring any data or configuration changes made using the MCP.
Measure twice, cut once: When working with this, planning ahead of time (or asking the MCP to plan for you) will greatly benefit your work.
Remember that this is in beta so some features may be added, removed or altered as we continue our development. The latest change log notes can be found here.
If you have any issues or need to report a bug please reach out to us at mcp@ipaas.com.
The iPaaS.com MCP server is updated often. This page lists every production release, newest first. Each release is described in the same order: anything that could break your existing use comes first, then what is new, what is improved and what is fixed.
How to read these notes
Tools appear in bold, as the assistant names them.
Changes take effect as soon as a release is deployed. Fully quit and reopen your app, or start a new session, so it picks up new and changed tools.
You can see which release is running by opening
https://mcp.ipaas.com/healthin a browser, or by asking the assistant to run get_active_tenant. Both show the version and the build, and the health page also shows when the current release was deployed. Each release below names its build, and from October 14, 2026 its version too, so you can match them.This is a beta. Features may be added, removed or changed. Anything that removes or changes existing behaviour is listed under Breaking changes.
October 30, 2026
The current release. Version 0.7.0, build 4ec61a6a. 250 tools. Breaking changes: 2.
Breaking changes
The limit of 110 requests a minute per API key is now enforced. Safety, Permissions and Limits already stated this limit, but it wasn't applied reliably, so a busy connection could go well past it. A request over the limit is now refused with HTTP 429 and a Retry-After of 60 seconds. The limit is shared by everything that uses the same key.
What to do: spread your requests out, and after a 429 wait 60 seconds before you try again, rather than retrying in a loop. If several people or apps share one key, give each its own key.
enable_webhook refuses a scope the connected system's integration doesn't define. This applies to a webhook that a connected system uses to send changes into iPaaS.com. The tool now refuses a scope that system's integration doesn't define, and lists the scopes it does. Before, it created the webhook, which then never fired. Webhooks that send changes out of iPaaS.com aren't affected.
What to do: choose a scope from the list the tool gives you. If the one you need isn't there, the integration doesn't support it. Contact support@ipaas.com.
New
check_batch_completion checks a whole batch of resyncs in one go. Give it the job IDs, up to 100, and it says how many records landed, were filtered out, errored, are still pending or weren't found, and whether the batch is done. resync_batch now hands back this check for its own jobs.
check_lookup_coverage checks whether the translation tables in a flow out of iPaaS.com have a row for the values your failing records carry. It reads up to 10 failing Product, Customer, Transaction or Gift Card records and lists first the values that no row covers. A value with no row sends nothing for that field, which can fail a transfer before anything is sent.
check_subscription_setup looks for setup that looks finished but quietly does nothing, for one connected system: a data type going out with no webhook, one coming in with neither a webhook nor a poll, a data type going out that nothing brings into iPaaS.com, and sample values from a template left in a mapping. It only reports warnings and changes nothing.
get_started answers "what can you do?" for your connection: the areas your domains include, example questions for each, your current sync errors, and what it won't do. It's on every connection, and your app may also offer it as a ready-made prompt.
send_feedback turns the problems in a session into a report for you to email to mcp@ipaas.com: the tool, what you were trying to do, what happened and what you expected. Credentials are masked. Nothing is sent or stored, and you decide whether to send it. It's on every connection, and is also a prompt.
Improved
diagnose_error says at which stage a run failed: when nothing was sent, it failed while building the request. It lists other errors in the queue with the same message, and starts its suggested fix with read-only checks, such as lookup coverage, before any change to your configuration.
A child record that wasn't delivered comes with an offer to resync its parent. An inventory row, a line or an address travels with its parent, so resyncing it on its own can send nothing. resync_record and resync_batch now offer the parent resync, with the parent filled in where the record's ID shows it. The offer goes through the usual preview and confirmation.
Results explain platform behaviour that looks like a fault but isn't, with a link to the help article: a record a filter skipped, a manual resync compared with a webhook, how data moves between two systems through iPaaS.com, sample values left from a template, and fields that come from the integration.
Setup that quietly does nothing is flagged. review_mapping_collection lists static values that look like template samples, such as TODO or CHANGEME, first, as a warning, and the previews for creating or changing a mapping warn about them too. A resync that was delivered on a flow with no webhook says that records won't move on their own.
What you built is explained. Creating or cloning a mapping collection now says what the collection does, what makes it run, and that on its own it moves nothing. check_integration_pair lays out moving data from system A to system B as the two flows it really is, into iPaaS.com and then out, each with its own mappings and trigger. enable_webhook says what the new webhook does.
review_mapping_collection lists every mapping with its source and destination, flags a record filter that can never match, and flags a child collection that may add duplicate lines.
validate_formula checks
Parent.fields against the parent data type when you name it.Smaller improvements:
list_mapping_collections can be narrowed to one connected system, by its ID or exact name.
list_lookup_fields accepts a data type's plural or its type number, and suggests close matches when a name doesn't match.
A customer or employee search by name that finds nothing says which field it searched, and names the others.
resync_record and resync_batch say when a record ID is made of more than one part, such as a parent ID and a child ID.
list_subscriptions names each connected system with its ID.
Fixed
list_transfer_errors finds the newest runs on a busy log. The log isn't stored in time order, so the newest runs could fall outside the 500 runs it reads at a time. It now reads the newest runs by time window, and says from when.
check_hook_completion no longer says "pending" indefinitely for an older poll run. Given the event, or a run ID the assistant reported earlier in the same conversation, it says the run has finished and lists that system's poll jobs, newest first.
find_help_articles says when none of the articles it found is about the connector you asked about, instead of presenting other pages as that connector's.
dismiss_errors shows an outgoing error's connected system and details in its preview. It used to show "iPaaS" and blank fields.
October 22, 2026
Version 0.6.0, build ab5a82fc. 245 tools. Breaking changes: 1.
Breaking changes
list_transfer_errors lists real runs, newest first. Most entries in the raw transfer log are empty run records with no connected system, record or name, and the log isn't stored in time order, so the first page was usually nothing but empty records. The tool now leaves empty records out, sorts what it finds newest first, and reads up to 500 runs per call, saying when the log holds more. Before, it returned the log page by page as stored.
What to do: to include the empty records, ask for them (the
includeEmptyoption). To reach older runs, narrow the search by connected system, record ID or name instead of asking for later pages.
New
See which release you're on. get_active_tenant now reports the server's version and build, the same ones
https://mcp.ipaas.com/healthshows and each entry on this page names. The version goes up with every release. The build identifies the code that is running, so it changes only when the code does.
Improved
Resyncs point to the run's step-by-step record. resync_record, resync_batch and check_hook_completion now name the record of what the run did (get_transfer_error with the job ID): every call the connector made, in order, with the platform's own messages. When a record wasn't delivered, they start there. When a job failed before its connector ran, there is usually no such record, so they start with the job's own reason and the error queue instead.
list_transfer_errors finds a record synced from iPaaS.com by its iPaaS.com ID. Such a run stores the iPaaS.com ID as its external ID, so a search by the record's ID used to find nothing. The tool now looks there too, and says so.
Help center searches ask again before saying an article doesn't exist. The help center search occasionally misses a page that exists, about one search in six. find_help_articles, explain_subscription_setup and the formula tools now search up to three times, a few seconds apart, before they say there isn't one, so a "not found" answer can take about ten seconds.
Fixed
dismiss_errors and plan_bulk_resync now appear only when you connect with
operations, theintegrationshortcut or every tool, as Choosing Your Tools describes. A connection made with/mcp/systemsor/mcp/mappingsused to be offered them too.resync_record reports a job that hasn't finished as still running. It used to call it unknown, so the assistant didn't check on it again and a slow transfer looked like an unresolved result. resync_batch now counts a job that finished without any sign of delivery on its own, instead of as still running, since checking again won't change it.
check_hook_completion no longer says "pending" indefinitely when it is given a poll's run ID instead of a job ID. It says which event's poll run the ID belongs to, and lists the jobs that run produced, matched by the event's connected system and the time it ran.
check_event_run now points to the errors and transfer runs for the event's connected system since the run. It used to suggest looking errors up by the run's own ID, which no error carries, so the error queue always looked empty.
An & in a search is matched as written. A name such as "Smith & Sons" used to break the search: it failed, or quietly returned the wrong records.
list_transfer_errors can filter by status again. The log stores statuses in capitals and the filter compared them exactly, so a filter such as Error found nothing.
flag_stuck_orders no longer fails for a company with many recent orders. Its check for orders that never reached a destination reads each order, and could go over the per-call limit on requests and lose the whole report. It now stops in time and says how many orders it checked and why it stopped. The same report now also finds orders that errored in the transfer log, which the status mismatch above had kept empty.
An empty list says so. A search that matches nothing now reads "no matching records" instead of "page 1 of 0".
October 14, 2026
Version 0.5.0, build 47e048ad. 245 tools. Breaking changes: 5. It shipped as build 18abbe91; a configuration-only update on October 19, 2026 changed the build, and no tool changed.
Breaking changes
A misspelled environment is refused. If you choose an environment with the
X-Ipaas-Envheader and the value isn't one ofdev,qa,stagingorprod, the connection is now refused with a message that names the value and the valid ones. Before, an unrecognised value was ignored and the connection used production.What to do: check the spelling of
X-Ipaas-Envin your app's MCP configuration. Leave the header out to use production.An unknown domain is refused. A domain or shortcut in the server URL (such as
/mcp/retail) or in theX-Ipaas-Domainheader that doesn't exist is now refused, and the message lists the real ones. One misspelled name among correct ones is refused too. Before, an unknown name was dropped, and if nothing valid was left the connection got every tool.What to do: check the domains in your server URL and header against Choosing Your Tools.
Credentials are masked. get_subscription, get_oauth and the webhook tools now show credentials as
[masked]: a connected system's webhook key, every setting the integration marks as a password or encrypted, any setting the integration doesn't describe, and any field named like a credential. An empty value is still shown as empty, so you can tell whether one is set.What to do: read or change a credential in the iPaaS.com portal, not through the assistant.
Large resyncs need a plan. In one session, resync_batch and resync_record stop once 1,000 records of one data type have been sent to one system in one direction, unless the work was planned with plan_bulk_resync and you approved the plan. Before, a long run of batches had no limit.
What to do: for a backfill, or any request to sync everything of a data type, start with plan_bulk_resync.
find_mapping_collections matches one connected system. The system you name must now identify exactly one: its ID, its exact name in any case, or part of a name that only one system contains. A name that matches several systems, or none, is refused with the candidates listed. Before, it matched every name containing it, so "ShipStation" also returned the collections of "ShipStation API v2".
What to do: use the system's exact name or its ID.
New
plan_bulk_resync. Plan a large resync, such as "sync all our customers". It counts what would move, then stops. Nothing is sent until you confirm the exact scope, say whether the mappings have been tested on a small set, and accept that the run proceeds at your own risk. Once you approve, it hands out batches of 25 for resync_batch. It sends nothing itself.
Mapping collections under a parent. create_mapping_collection and clone_mapping_collection can place a new collection under a parent, and update_mapping_collection can move one under another parent. The parent is checked before anything is sent: it must be a type that can hold the child, on the same connected system and in the same direction. A refusal says why and lists the parents that would work. A clone of a child collection keeps the source's parent unless you choose another.
Improved
get_active_tenant now names your company and the environment you're connected to, and checks that your key works. A key that is refused everywhere is reported as an error, instead of as a healthy connection that then fails on every tool. A refused sign-in token is called one, with its expiry, rather than described as a mistyped key.
check_hook_completion reports a job that is still in progress 10 minutes after it started, and no longer waiting in the queue, as Stalled, with how many minutes it has been running. It stops telling the assistant to keep checking, and looks in the platform log for a load or connection failure that explains it.
run_live_diagnostic explains a run that returns nothing. It reads the platform log for the run and, if that is empty, the connected system's most recent load or connection failure and whether anything has synced since. If nothing has, it says the transfer most likely never started, and how long ago that failure was.
get_subscription_features now says what an integration declares it supports, and shows the integration's version. Given a connected system, it also marks each declared data type and direction that your company has set up.
find_unmapped_products, find_unmapped_customers, find_unmapped_transactions and find_unmapped_gift_cards now return their results a page at a time.
Record IDs are accepted in more forms. A tool now takes an ID as a number or as text, and under the other names tools use for the same ID, such as
recordIdoridfor a transaction's ID. Before, a tool could refuse an ID that another tool had just returned.diagnose_error now classifies a record-not-found error, and an error inside the integration's own code, instead of calling them unknown. It also flags an external ID that looks like a placeholder, such as 0, N/A or null.
Fixed
Updating a record keeps its external IDs. An update used to remove the record's existing links to its copies in other systems.
find_unmapped_products no longer times out on a large catalog. When the platform's check is slow, it reads the catalog instead and gives you a page to continue from.
Previews no longer warn that a value is outside the documented set when it is a valid value.
Cloning a mapping collection now copies its filter, error filter and collision handling. Before, a plain clone of a filtered collection ran unfiltered, so it sent every record the original existed to exclude.
October 12, 2026
244 tools at the time. No breaking changes.
Improved
resync_record and resync_batch now tell you whether each record was delivered, not just that the sync started. Each record comes back as delivered, not delivered with the reason, or still running.
When a record didn't arrive, the result says which case it is. Either the destination was reached and declined the record, which usually means a mapping collection's filter, or the destination was never reached, which on a sync into iPaaS.com often means the source had nothing to send. Neither case puts anything in the error queue.
list_transactions can now combine filters, such as a customer and a type. A modified-since date still can't be combined with another filter, because the platform would apply the date comparison to the other field too and return other customers' transactions. The tool refuses that combination and says why.
Fixed
Finding the error for a sync. An error is found by the ID of the job that produced it (the hook ID a resync returns), not by the sync's tracking ID. The tools used to suggest the tracking ID, which never matches an error, so the queue looked empty. They now point to the job ID.
check_hook_completion now judges delivery at the destination. For a record coming into iPaaS.com it used to read the size of what was fetched from the source, so a run that wrote nothing into iPaaS.com could show as delivered.
check_hook_completion no longer reports "pending" indefinitely for a record coming into iPaaS.com. It reads the direction from the job itself, so you don't need to give one.
enable_webhook now reads every webhook scope. On companies with several connectors, real scopes beyond the first page were refused as if they didn't exist.
enable_webhook now matches scope names exactly when it checks whether a webhook already exists. Similar names, such as
shipping/method/createdandshippingmethod/created, were treated as the same, so the second couldn't be enabled. If what you type matches more than one scope, it asks which one you mean.
October 2, 2026
244 tools at the time. No breaking changes.
New
Field maps. Some business values, such as currency, sales channel, committed stock, reorder settings, consent and lifecycle, don't have a native field in iPaaS.com yet. Many companies already keep them in custom fields under their own names. A field map tells the MCP which custom field holds which value, so the business reports can use them.
collect_field_map walks you through it, one question at a time. For each value it tells you whether answering changes a report today or is stored for tools that are coming.
suggest_field_map proposes a map from your real custom field definitions.
save_field_map, get_field_map and clear_field_map store, read and remove it. Saving and clearing show a preview and change nothing until you confirm.
The map is stored in your iPaaS.com company, so everyone on your team gets the same answers. It covers 55 values across 10 data types. Sixteen of them change an answer today.
enable_webhook and disable_webhook. Start or stop sending a scope's changes to a destination system. Enabling creates the webhook and refuses to create a second one for the same scope and destination, since a duplicate makes a record fire twice. Disabling deletes the webhook for good, so enabling it again creates a new one with a new ID. Both preview first.
explain_subscription_setup. Ask the assistant to connect a system, such as "set up Shopify". It can't do it, because setup needs that system's own credentials, which shouldn't pass through a chat. It now says so plainly and gives you the installation guide for that integration, or points you to support@ipaas.com when there isn't one.
Improved
check_inventory_health no longer includes discontinued products in any of its alert lists. Before, it left them out of some lists and not others.
The field map tools now say honestly which values change a report today and which are saved for later, instead of implying that every answer is used.
September 25, 2026
A large release that brought together a round of testing and many fixes. 236 tools at the time.
Breaking changes
Tools now reject arguments they don't recognise. Before, a tool silently dropped an argument it didn't know and gave you a result worked out from the rest. For example, a filter sent under an old name returned the whole unfiltered list, reported as if it had been filtered. Now the tool stops and tells you which argument it doesn't recognise (the message includes "Unrecognized key").
What to do: if you have saved prompts, scripts or custom clients that pass tool arguments, check each argument's name against the tool's current definition and remove any that no longer exist.
New
dismiss_errors. Clear an error from the queue once its cause is dealt with, or move it to another status. It shows a preview first, works on up to 25 at a time, and doesn't fix or retry anything.
describe_write_schema. Shows what a write needs before you try it: the required fields, the allowed values, and fields the platform accepts but ignores. It saves the trial and error of guessing at a request.
create_catalog_records. Create up to 25 products or other catalog records in one call. Every record is checked before any is sent.
get_active_tenant now says whether your connection is using an API key or a sign-in token, and warns you before a sign-in token expires. Sign-in tokens work and then suddenly stop with a 401, so you should use an API key.
Improved
Previews catch more mistakes. A preview now checks the whole request, including fields nested inside lines, addresses and variants, and flags any field the platform would silently ignore. It flags a variant that repeats an option, and it warns when an update would clear a value the record currently holds.
Tools that can't work now say so. Some writes, such as to transaction lines, addresses, notes, payments and taxes, aren't available in the platform's API yet (they need to be written at the parent level). Tools used to fail in confusing ways. They now stop immediately and suggest the alternative.
Sessions are tied to the key that opened them. A connection can no longer be used without a key, or by someone else's key, once it has been opened.
Gift card activity now requires the resulting balance. An activity records why a balance changed, and does not change the balance itself. The tool used to send back the old balance, so redeeming 10 from a 50 card could record the activity but leave the balance at 50. You now state the balance the card should have.
Resync warns about records that move with a parent. A transaction line travels with its transaction, and a variant with its product. Resyncing one on its own could report a clean run and send nothing. The tool now says so.
Disabling a mapping collection that has children now shows the full ordered plan and works from the deepest child up. It refuses to disable children you didn't ask about unless you say so, and the result includes the reverse order so you can undo it.
Fixed
summarize_sales_performance counts only real orders. It used to count quotes, invoices and cancelled orders as orders and add their totals to revenue, and returns reduced it. It also now reads every page of locations.
check_feature_support no longer says "unsupported" for integrations that describe their support in their own words. It now decides from the data type itself.
Transaction types and statuses now come from the platform's own lookup tables. This adds the tenth type, Fulfillment, which couldn't be filtered for before.
find_mapping_collections and related searches now read every page. A company with hundreds of collections could be told "no match" about one that existed.
Copying a mapping (propagate_mappings) now sends the source field's ID. Plain field mappings used to fail while the copy reported success.
Updating a record that has categories (a product, customer or company) no longer fails because of how the category was sent back. Writes to variant units are now refused with an explanation.
External ID tools now work with every table the platform offers, not just five.
Poll events are now read correctly, so get_inbound_delivery sees the poll events you have configured.
The first status after a resync no longer reads as an anomaly. It is the receiver's normal acknowledgement.
Records come back exactly as the platform sent them. The generic readers used to reformat numbers, so 48.0 came back as 48.
Custom field searches read the full list, and a duplicate name is checked exactly. A company with hundreds of definitions could previously miss a name that was already taken.
Several tools no longer send arguments the platform ignores, which had made some searches report "none" about data that was there.
Before September 25, 2026
The beta baseline. Summarised, not itemised.
Data tools for Products, Customers, Transactions, Gift Cards, Employees and Messages and Images. These can read and, with the right permissions, create, update, delete and reactivate records, always with a preview first.
Integration tools for connected systems, mapping and translation collections, formulas, errors, logs, webhooks, events and polling.
Fixing failed syncs: diagnose_error, resync_record, resync_batch, check_records_landed and check_hook_completion.
Business reports for sales performance, inventory health, stuck orders and gift card liability, with plain-language results.
Choosing your tools: domains and shortcuts in the server URL, and a business style for results.
Reference and formula tools: data-type matching, the data model, help article search, formula validation and preview, and the platform API's own documentation.
