PullPush MCP — connect any two APIs and keep them in sync
MCP serverDev toolsThis integration lets your AI connect any two services and keep their data in sync between them. Once it is added, your AI can set up the connection, preview changes before they are applied, and run diagnostics when something needs checking. It includes 48 tools for working with the services you connect.
Use PullPush MCP — connect any two APIs and keep them in sync in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add PullPush MCP — connect any two APIs and keep them in sync and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use PullPush MCP
Needs your own PullPush MCP — connect any two APIs and keep them in sync account. You sign in to it and approve access when you connect.
Details
Available today. Use it from your connected AI after setup.
After adding it, tell your AI which two services you want to connect and what should stay in sync. You can also review the source code at github.com/kaduno-systems/pullpush-mcp.
What your AI can do with it
- Connect any two services and keep their data in sync
- Preview changes before they are applied
- Run diagnostics to check on the connection
- Use 48 built-in tools to set up and manage the sync
Install PullPush MCP — connect any two APIs and keep them in sync
The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.
Claude Code
claude mcp add --transport http --scope user pullpush-mcp-connect-any-two-api 'https://api.pullpush.ai/mcp'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://api.pullpush.ai/mcpAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=pullpush-mcp-connect-any-two-api&config=eyJ1cmwiOiJodHRwczovL2FwaS5wdWxscHVzaC5haS9tY3AifQ==Open the link and Cursor adds the server at that address.
ChatGPT
https://api.pullpush.ai/mcpIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add pullpush-mcp-connect-any-two-api --url 'https://api.pullpush.ai/mcp'Run it once, then sign in with codex mcp login pullpush-mcp-connect-any-two-api if the server asks for an account.
From the project's README
As published by kaduno-systems/pullpush-mcp in README.md.
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.
Why agents like it
- Deterministic runtime, no LLM in the hot path. AI helps at build time (connector generation, field-mapping suggestions); the sync engine itself is predictable, versioned, and observable.
- Safe by default. New flows start in shadow mode (read-only).
pullpush.syncaction:"preview"shows a structured source-vs-destination diff before anything is written. - Credentials never touch your machine or env. Connection secrets are envelope-encrypted (AES-256-GCM, per-tenant keys) server-side the moment they're created.
- Self-describing. A
get-startedMCP prompt walks from zero to a working integration;pullpush://resources expose the tool catalog, quickstart, and agent guide — no pre-briefing needed. - Structured, actionable errors. Failures return
{code, suggestion, suggestedTool, retryable}— an agent always knows the next step. - Server-grade reliability. Circuit breakers, per-key ordered delivery, idempotency, dead-letter queue with retry, exponential backoff.
Try it in 60 seconds — no signup
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.
Quick start
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.
Clients that only speak stdio
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.
Getting an API key
For a throwaway key, use the sandbox above. For a persistent tenant:
- Sign up free (1 connection, 1,000 events/month — no card)
- Admin panel → Settings → API Keys
- Create a key with the scope you need (tenant, org, or admin)
Tools
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.
Connections
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)
Flows
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)
Sync & reconciliation
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)
Field mapping
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 fields
Diagnostics
pullpush.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 anomalies
Connector authoring
pullpush.connector.generate— AI-generates TypeScript connector code, typechecks, tests, and registerspullpush.connector— List, get, update, and manage connector definitions (router)
Data operations
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)
Shadow mode & safety
pullpush.shadow— Run integrations read-only before going live; compare shadow vs live results (router)
Batch operations
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)
Ops & health
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)
Workflows
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)
Integrations & marketplace
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)
Administration
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 features
Full tool reference: pullpush.ai/docs/mcp
Environment variables
| 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 |
Auth scopes
| 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.
Features
- Never dies on a bad connection: starts even when the API is down, reconnects on its own, and serves a cached tool catalogue meanwhile
- Auto-refresh: tool catalog refreshes every 5 minutes — new server-side tools appear without a restart (clients are notified only when the catalogue really changed)
- Offline quickstart: built-in
pullpush://docs/quickstart-localresource works without network - Retry on unknown tool: automatically refreshes the catalog when a tool is not found
- Clear error messages: auth failures, network issues, and version mismatches are explained
Documentation
- Getting started — 5 minutes to a first integration
- MCP guide — full tool reference and client setup
- Shadow mode · Preview & reconcile · Security
- llms.txt — machine-readable product summary
- Machine-readable integration catalog
- MCP registry entry:
ai.pullpush/pullpush-mcp
Also available: pullpush-mcp-dev
For connector authors, platform admins, and internal developers, pullpush-mcp-dev exposes additional tools for:
- AI-powered connector generation and composition
- Canonical schema management
- Marketplace publishing
- Billing and partner administration
- Batch operations across all tenants
Development
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.
License
MIT
Development
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.
Signals
- Last commit
- Sep 2026
- Weekly downloads
- 263
Advanced
- Delivery
- pullpush-mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
ai-pullpush-pullpush-mcp- Source
- github.com/kaduno-systems/pullpush-mcp
- Hosted endpoint
https://api.pullpush.ai/mcp
github.com/kaduno-systems/pullpush-mcp