mcp-odoo-panda
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 8 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
MIT MCP server for Odoo — stdio & Streamable HTTP; search/read/create/write/unlink + custom methods
mcp-odoo-panda
An MCP server for Odoo — let Claude, Cursor, or any MCP client search, read, create, update, and call methods on your Odoo ERP.
For developers and integrators who want Odoo tools inside an LLM client without writing a custom connector.
Quickstart
Requirements: Python 3.10+, an Odoo 15+ instance you can reach (local or remote).
Install
git clone https://github.com/pandeussilvae/mcp-odoo-panda.git cd mcp-odoo-panda pip install .Configure from the example
cp odoo_mcp/config/config.example.yaml odoo_mcp/config/config.yaml # edit config.yaml — set odoo_url, database, username, api_keyChoose how clients connect
Mode When to use stdio(default)Claude Desktop / Cursor on the same machine streamable_httpRemote or HTTP clients ( POST /mcp)Set
connection_type/transport_typeinconfig.yaml(see stdio vs HTTP).Run
odoo-mcp-server --config odoo_mcp/config/config.yaml # or: python -m odoo_mcp.core.mcp_server --config odoo_mcp/config/config.yamlConnect your MCP client (Claude Desktop / Cursor) — see Connect Claude or Cursor.
Docker alternative: docker compose up -d (lab stack; dev-only defaults).
Minimal config
Copy-paste starting point (odoo_mcp/config/config.yaml):
odoo_url: http://localhost:8069
database: your_database
username: your_username
api_key: your_password_or_api_key
protocol: xmlrpc
connection_type: stdio
transport_type: stdio
Environment variables override the file when set: ODOO_URL, ODOO_DB, ODOO_USER, ODOO_PASSWORD.
stdio vs streamable_http
- stdio — the MCP client starts this process and talks over stdin/stdout. Best for desktop apps (Claude, Cursor). No open port.
- streamable_http — the server listens on HTTP (
POST /mcp). Use when the client is remote or you need a network endpoint.
Legacy sse exists for older setups; prefer stdio or streamable_http for new work.
HTTP example (dev):
connection_type: streamable_http
transport_type: streamable_http
http:
host: 127.0.0.1 # prefer loopback; 0.0.0.0 is DEV-ONLY
port: 8080
streamable: true
Connect Claude or Cursor
Cursor — add an MCP server entry (Settings → MCP), for example:
{
"mcpServers": {
"odoo": {
"command": "odoo-mcp-server",
"args": ["--config", "/absolute/path/to/mcp-odoo-panda/odoo_mcp/config/config.yaml"]
}
}
}
Claude Desktop — same shape in its MCP config file (claude_desktop_config.json): command + args pointing at your install and config.
Use absolute paths. Do not commit client configs that embed real passwords.
What you get
- Search / read / create / write / unlink Odoo records
- Call custom model methods
- Session handling, rate limiting, optional HTTP CORS
- Optional modern MCP Streamable HTTP (
CONNECTION_TYPE=mcp_2026_07_28in Docker/env)
Security
- Never commit real passwords or API keys. Keep
config.yamllocal (it is gitignored); onlyconfig.example.yamlis tracked. - Compose / Dockerfile
adminpassword defaults are DEV-ONLY for a local lab. - Binding
0.0.0.0and CORSallowed_origins: ["*"]are DEV-ONLY. In production use loopback or a private interface and explicit origins. - Prefer env vars or a secrets manager for credentials.
Standalone
This project is a standalone MIT MCP server for a single Odoo connection. It is not a multi-tenant SaaS gateway. See ODWARD_BOUNDARY.md.
Optional: used by Odward Connect as an upstream engine; that integration lives outside this repo.
Deeper docs
| Doc | Topic |
|---|---|
| CONFIGURATION.md | Full configuration reference |
| docs/API_REFERENCE.md | Tools / API |
| docs/DEVELOPER_GUIDE.md | Architecture for contributors |
| docs/DOCKER_DEPLOYMENT.md | Docker notes |
| docs/server_usage.md | Server usage |
| LEGGIMI.md | Italian quickstart |
Historical fix notes and root test_*.py files are for maintainers — not required for first-time setup.
License
MIT — see LICENSE.
Developed by Paolo Nugnes and TechLab · [email protected] · [email protected]
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi