ERPipe

July 22, 2026 · View on GitHub

CI npm @erpipe/core License: MIT Node Hosted: free v1 Hosted product

Open-source TypeScript building blocks for remote MCP access to Odoo.

This repo (MIT)Tool logic, transports, single-tenant self-host Worker example
Hosted productMulti-tenant control plane + dashboard — mcp.erpipe.com (separate private repo)

Try it (real Odoo only): create a free v1 workspace, add one or more HTTPS Odoo instances, then connect ChatGPT, Codex CLI, Claude Code, Gemini CLI, Antigravity CLI, or Grok to the shared endpoint https://mcp.erpipe.com/mcp. Follow the human setup recipe or copy a prompt for your AI agent. There is no shared public sandbox.

Why

  • Talk to Odoo from ChatGPT, Codex CLI, Claude Code, Gemini CLI, Antigravity CLI, Grok, Cursor, and custom MCP agents over a stable URL shape
  • Workers-safe XML-RPC + JSON-2 transports
  • Gated writes (preview → approve → execute) with field policy
  • Shared 26-tool + 7-prompt core surface in @erpipe/core (D14 parity set of 23 plus model_facts, read_attachment, render_report) — hosted workspace is 37 tools (multi-instance, lifecycle, webhook events, ping) — see docs/tools.md

Status

MilestoneState
Hosted workspace /mcp contractImplemented in the private cloud control plane
Self-host /{slug}/mcp exampleProven — see SPIKE.md
Core surface26 tools + 7 prompts + 4 resources in @erpipe/core
Hosted surface37 tools + 7 prompts at mcp.erpipe.com/mcp
Pure parity harnessnpm run parityPARITY.md
Live smoke (Odoo 16–19)npm run smoke:liveSMOKE.md

Pins:

PackageVersion
agents0.17.4
@cloudflare/workers-oauth-provider0.8.2

Packages

PathNameRole
packages/core@erpipe/coreTransports, tools, field policy — no Workers imports
packages/xmlrpc@erpipe/odoo-xmlrpcFetch-based XML-RPC (Workers-safe)
packages/worker-selfhost@erpipe/worker-selfhostSingle-tenant McpAgent + OAuth example

Requirements

  • Node.js ≥ 20 (CI uses 22 — .nvmrc)
  • npm
  • Optional: Cloudflare account for deploy:selfhost
  • Optional: Odoo 16–19 for live smoke

Install

npm install @erpipe/core @erpipe/odoo-xmlrpc
Packagenpm
@erpipe/corenpmjs.com/package/@erpipe/core
@erpipe/odoo-xmlrpcnpmjs.com/package/@erpipe/odoo-xmlrpc

Self-host Worker example stays in this monorepo only (@erpipe/worker-selfhost is private / not published).

Develop from source

git clone https://github.com/erpipe-org/erpipe.git
cd erpipe
npm install
npm run build
npm run typecheck
npm test

Quick start (self-host Worker)

npm run dev:selfhost
# Home: http://127.0.0.1:8787/
# MCP:  http://127.0.0.1:8787/default/mcp

Deploy:

# set secrets first — see packages/worker-selfhost/README.md
npm run deploy:selfhost

Canonical MCP URLs

SurfaceURL shapeNotes
Hosted producthttps://mcp.erpipe.com/mcpOne workspace OAuth app; Odoo-bound tools require an explicit instance key (list_instances to discover).
Self-host examplehttps://<host>/{connection_slug}/mcpSingle-tenant Worker demo in @erpipe/worker-selfhost.

Hosted setup: mcp.erpipe.com/docs/connector · compatibility: erpipe.com/compatibility

Reserved path segments (never use as a self-host connection id): authorize, token, register, mcp, sse, .well-known, assets, health, app, admin.

Docs

DocTopic
docs/tools.mdFull tool & prompt catalog
CONTRIBUTING.mdDev setup & PRs
SECURITY.mdVulnerability reporting
CHANGELOG.mdReleases
SMOKE.mdLive Odoo smoke
PARITY.mdPython vs TS pure harness
SPIKE.mdProtocol contract notes

Architecture (high level)

MCP client  ──OAuth + MCP──►  Worker (self-host or hosted)


                           @erpipe/core tools

                    ┌─────────────┴─────────────┐
                    ▼                           ▼
             XmlRpcTransport              Json2Transport
                    │                           │
                    └──────────► Odoo ◄─────────┘

Contributing

See CONTRIBUTING.md. Please read the Code of Conduct.

License

MIT — see LICENSE.

"Odoo" is a trademark of Odoo S.A. ERPipe is not affiliated with Odoo S.A.