godoo-mcp-server
Stateless MCP server for Odoo — raw primitives + skill resources.
Installation
pip install godoo-mcp-server
Or with Docker:
docker run -e ODOO_URL=https://your.odoo.instance \
-e ODOO_DATABASE=mydb \
-e ODOO_USERNAME=admin \
-e ODOO_PASSWORD=secret \
-p 8000:8000 \
ghcr.io/godoo-dev/godoo-mcp-server:latest
Configuration
The server resolves Odoo credentials from request headers or environment variables. Headers take precedence over environment variables.
| Credential | Header | Environment Variable |
|---|---|---|
| Odoo URL | X-Odoo-Url |
ODOO_URL |
| Database | X-Odoo-Database |
ODOO_DATABASE |
| Username | X-Odoo-Username |
ODOO_USERNAME |
| Password | X-Odoo-Password |
ODOO_PASSWORD |
If neither headers nor environment variables are set, the server returns a credential error.
Server bind address: Defaults to 0.0.0.0:8000. Override with HOST and PORT environment variables.
Note: If you override
PORT, you must also update the DockerHEALTHCHECKto match the new port.
Security: Header Trust Model
godoo-mcp-server authenticates Odoo users via X-Odoo-Username and
X-Odoo-Password request headers (or ODOO_USERNAME / ODOO_PASSWORD
environment variables). This means any caller who can reach the server
can impersonate any Odoo user by setting these headers.
This is intentional for self-hosted / trusted-network deployments. In
production, you MUST deploy a header-stripping reverse proxy in front of
the server that enforces identity. godoo-proxy
is the SaaS-safe gateway for this role — it implements OAuth 2.1 / SSO
and injects verified per-user credentials before forwarding to
godoo-mcp-server.
If you expose godoo-mcp-server directly on a public network without a
trusted proxy, any network peer gains full Odoo impersonation capability.
Running E2E tests locally
Prerequisites:
- Docker (for the Odoo testcontainer)
claudeCLI on PATH (Claude Code)- Claude auth (API key or active OAuth session)
- Python 3.14 +
uv
Command:
uv run pytest -m e2e -s -v
Cost warning: Each run makes a real, billable Claude API call. Keep the suite small and only run when needed.
The test skips automatically when Docker or the claude CLI is absent — this is a clean skip, not an error.
The default uv run pytest excludes e2e tests automatically via the not e2e addopts filter.
Metadata
Release files for godoo-mcp-server 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| godoo_mcp_server-0.1.0.tar.gz | 18.0 kB | Without provenance | Details for godoo_mcp_server-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| godoo_mcp_server-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for godoo_mcp_server-0.1.0-py3-none-any.whl |
Total release size: 45.2 kB
Release files / godoo_mcp_server-0.1.0.tar.gz
| Download URL | godoo_mcp_server-0.1.0.tar.gz |
|---|---|
| Size | 18.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8f8f301badafb6d4f31ea39b561183c9f464ce945293897d9f0ca5df62fda66b
|
|
BLAKE2b-256 checksum How to use checksums |
457b866c8c27d2d488c26cbe4d04286660fb1a835a90ff5dba3d271d6d28d7a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / godoo_mcp_server-0.1.0-py3-none-any.whl
| Download URL | godoo_mcp_server-0.1.0-py3-none-any.whl |
|---|---|
| Size | 27.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
226f8f3ce9a95c6f4c73d90c80b02e288b550f77ecd06d94ab805c7de25af3fc
|
|
BLAKE2b-256 checksum How to use checksums |
60f406084cc8e3ad3c08f75b175f41da43edec433ece2678be5b63927ea32e5d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for godoo-mcp-server 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.