Connect any two APIs and keep them in sync — 48 MCP tools with shadow previews and diagnostics.
One address for any MCP client. You sign in at app.pullpush.ai once, after adding it.
At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
| Access to | Read | Change |
|---|---|---|
| Mcp |
From the sign-in at app.pullpush.ai, as the endpoint publishes it. You approve it there.
Odel could not list its tools without signing in.
The official MCP server for PullPush.ai — an integration platform that connects e-commerce stores, warehouses, marketplaces, ERPs, and POS systems, and keeps stock levels, orders, and products in sync across all of them.
This server lets AI agents (Claude, Cursor, or anything that speaks Model Context Protocol) build, run, and monitor those integrations end to end: connect two systems, preview the sync safely, and cut over to live — without a human clicking through a dashboard.
pullpush.sync
action:"preview" shows a structured source-vs-destination diff before anything is written.get-started MCP prompt walks from zero to a working integration;
pullpush:// resources expose the tool catalog, quickstart, and agent guide — no pre-briefing
needed.{code, suggestion, suggestedTool, retryable} — an agent always knows the next step.curl -X POST https://api.pullpush.ai/api/sandbox
Returns a free 48-hour sandbox tenant: an API key, ready-to-paste MCP configs, and two
pre-wired demo connections whose stock data deliberately disagrees — so your first
pullpush.sync action:"preview" shows a real canonical diff (drifted quantities, a missing
item, in-sync rows). The sandbox deletes itself on expiry — or keep it:
POST /api/sandbox/claim (Bearer = the sandbox key, {"email": "..."}) converts it to a
persistent free tenant with everything you built preserved.
Connect straight to the hosted endpoint. It is the most robust option — nothing runs on your machine, so there is no process to crash or go stale:
{
"mcpServers": {
"pullpush": {
"type": "streamable-http",
"url": "https://api.pullpush.ai/mcp",
"headers": { "Authorization": "Bearer <your-api-key>" }
}
}
}
Add this to ~/.cursor/mcp.json (Cursor), Claude Desktop's config, or the MCP config for your
client.
Use this package as a local stdio proxy to the same endpoint. Install a pinned version once and
run the binary — do not use npx ...@latest, which re-resolves the package (and needs the
network) every time your client starts the server:
npm i -g kaduno-pullpush-mcp@2.3.0
{
"mcpServers": {
"pullpush": {
"command": "kaduno-pullpush-mcp",
"env": { "PULLPUSH_API_KEY": "<your-api-key>" }
}
}
}
The proxy never exits because the API is unreachable: it starts, answers your client, and
connects in the background (exponential backoff, honouring Retry-After). It reconnects after a
network blip or an API restart, and while it is offline a tool call returns a retryable
"reconnecting" error that changes nothing. The tool catalogue is cached on disk, so a restart
while the API is down still lists your tools.
Then ask your agent to run the get-started prompt — it walks through the whole flow:
catalog connectors → create + test connections → suggest a field mapping → create the flow in
shadow mode → preview the diff → cut over.
For a throwaway key, use the sandbox above. For a persistent tenant:
48 tools (30 explicit tools plus 188 actions across 18 domain routers) covering the
full integration lifecycle. Explicit tools are individually named; domain routers accept an
action parameter with multiple operations.
pullpush.connection.create — Create and configure a connection to an external system (Shopify, WooCommerce, Linnworks, Xero, HubSpot, and 20+ more)pullpush.connection.test — Test live connection credentials; returns health metrics and failure countpullpush.connection — List, get, update, delete, and configure connections (router with actions: list, get, update, delete, health, config)pullpush.flow.create — Wire a source→destination sync pipeline with triggers, mapping, and canonical data modelspullpush.flow.dryRun — Dry-run an event through flow transform/filter without delivery; returns mapped payloadpullpush.flow.natural — Create a flow from a natural-language description; proposes mapping and creates in shadow modepullpush.flow — List, get, update, pause/resume, delete flows and view delivery history (router)pullpush.sync.reconcile — Reconcile-and-deliver: diff source vs destination, then deliver changes with per-item progresspullpush.sync — Preview diffs, snapshot data, inspect single keys, scan catalogs, diagnose unmatched SKUs, manage baselines (router with actions: preview, snapshot, inspect, reconcile, scan, reset-baseline, baseline.history, baseline.rollback, channel-cache, unmatched)pullpush.mapping.suggest — AI-proposes field mapping from source sample to target shape; returns mapping, confidence, previewpullpush.mapping.validate — Validate a mapping config against source and destination schemaspullpush.mapping.compare — Compare two mappings side by sidepullpush.mapping.explain — Explain how a mapping transforms data, step by steppullpush.mapping.diff — Diff two mapping versions to see what changedpullpush.mapping.get — Get a flow's current mapping config, source fields, and destination fieldspullpush.explain — Diagnose why a flow, connection, or delivery failed; gathers errors, identifies patterns, suggests fixespullpush.diagnose.recent — Scan all flows for recent failures; returns a prioritized issue listpullpush.ask — Answer natural-language ops questions using tenant failures and anomaliespullpush.connector.generate — AI-generates TypeScript connector code, typechecks, tests, and registerspullpush.connector — List, get, update, and manage connector definitions (router)pullpush.data.push — Push file data (CSV, JSON, XML) into a connectionpullpush.import — File-based data import operations (router)pullpush.export — Scheduled export pipelines: create, list, update, delete, test, run (router)pullpush.canonical — Inspect and manage canonical data models (router)pullpush.shadow — Run integrations read-only before going live; compare shadow vs live results (router)pullpush.batch.test — Test multiple connections in parallelpullpush.batch.status — Get status matrix across all flowspullpush.batch.setup — One-call setup: create connections + flow + test in one operationpullpush.batch — Multi-flow batch operations and proactive reports (router)pullpush.health.overview — Tenant health dashboard: connections, flows, failures, backlog, delivery rate, anomaliespullpush.health.mcp — MCP server health: database, tools registered, uptimepullpush.ops — Anomaly detection, dead-letter recovery, operation monitoring (router)pullpush.workflow.create — Create multi-step workflow with trigger and step DAGpullpush.workflow.trigger — Manually trigger a workflow run from an existing eventpullpush.workflow — List, get, and manage workflows (router)pullpush.integration.create — Create an integration grouping flows/workflows under one namepullpush.integration — List and manage integrations (router)pullpush.marketplace.install — Install a marketplace listing into your tenantpullpush.marketplace — Browse and manage marketplace connectors (router)pullpush.destination.provision — Provision custom fields on destination API (e.g. HubSpot properties)pullpush.tenant — Tenant management: list, get, create, update (router)pullpush.billing — Subscription and usage management (router)pullpush.partner — Partner program operations (router)pullpush.backup — Backup and restore operations (router)pullpush.feedback — Submit feedback about MCP tool quality or missing featuresFull tool reference: pullpush.ai/docs/mcp
| Variable | Required | Default | Description |
|---|---|---|---|
PULLPUSH_API_KEY | Yes | — | Your PullPush API key |
PULLPUSH_API_URL | No | https://api.pullpush.ai | API base URL (override for self-hosted) |
PULLPUSH_CACHE_DIR | No | OS cache directory | Where the tool catalogue is cached |
PULLPUSH_TIMEOUT_MS | No | 55000 | How long a tool call may take before the proxy answers with a timeout error |
| Scope | Access |
|---|---|
| Tenant key | Your tenant's connections, flows, sync, diagnostics |
| Org key | All tenants in your organization (read or read+write) |
| Admin key | Full platform access (billing, partners, all tenants) |
Tools are automatically scoped: a tenant key never sees another tenant's data.
pullpush://docs/quickstart-local resource works without
networkai.pullpush/pullpush-mcpFor connector authors, platform admins, and internal developers, pullpush-mcp-dev exposes additional tools for:
git clone https://github.com/Kaduno-systems/pullpush-mcp.git
cd pullpush-mcp
npm install
npm run dev # Run from source via tsx
npm run build # Compile with tsup
This repository is a published mirror of the MCP client package; the platform itself is developed in a private monorepo. Issues and questions are welcome here or at hello@pullpush.ai.
MIT
Development happens in the PullPush platform monorepo; the Kaduno-systems/pullpush-mcp repository is a published mirror of each release. Issues are welcome there; code changes land via the monorepo.