Skip to content

erpipe-org/erpipe

Repository files navigation

ERPipe — MCP for Odoo

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 product Multi-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

Milestone State
Hosted workspace /mcp contract Implemented in the private cloud control plane
Self-host /{slug}/mcp example Proven — see SPIKE.md
Core surface 26 tools + 7 prompts + 4 resources in @erpipe/core
Hosted surface 37 tools + 7 prompts at mcp.erpipe.com/mcp
Pure parity harness npm run parityPARITY.md
Live smoke (Odoo 16–19) npm run smoke:liveSMOKE.md

Pins:

Package Version
agents 0.17.4
@cloudflare/workers-oauth-provider 0.8.2

Packages

Path Name Role
packages/core @erpipe/core Transports, tools, field policy — no Workers imports
packages/xmlrpc @erpipe/odoo-xmlrpc Fetch-based XML-RPC (Workers-safe)
packages/worker-selfhost @erpipe/worker-selfhost Single-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
Package npm
@erpipe/core npmjs.com/package/@erpipe/core
@erpipe/odoo-xmlrpc npmjs.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

Surface URL shape Notes
Hosted product https://mcp.erpipe.com/mcp One workspace OAuth app; Odoo-bound tools require an explicit instance key (list_instances to discover).
Self-host example https://<host>/{connection_slug}/mcp Single-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

Doc Topic
docs/tools.md Full tool & prompt catalog
CONTRIBUTING.md Dev setup & PRs
SECURITY.md Vulnerability reporting
CHANGELOG.md Releases
SMOKE.md Live Odoo smoke
PARITY.md Python vs TS pure harness
SPIKE.md Protocol 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.

About

ERPipe — open-core TypeScript MCP for Odoo. Free hosted product live at mcp.erpipe.com

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages