Skip to main content

Stateless MCP server for Odoo — raw primitives + skill resources

Project description

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 Docker HEALTHCHECK to 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)
  • claude CLI 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

godoo_mcp_server-0.1.0.tar.gz (18.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

godoo_mcp_server-0.1.0-py3-none-any.whl (27.2 kB view details)

Uploaded Python 3

File details

Details for the file godoo_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: godoo_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 18.0 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for godoo_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8f8f301badafb6d4f31ea39b561183c9f464ce945293897d9f0ca5df62fda66b
MD5 df90a6a03b09607dfb0259270f2be567
BLAKE2b-256 457b866c8c27d2d488c26cbe4d04286660fb1a835a90ff5dba3d271d6d28d7a2

See more details on using hashes here.

File details

Details for the file godoo_mcp_server-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: godoo_mcp_server-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 27.2 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for godoo_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 226f8f3ce9a95c6f4c73d90c80b02e288b550f77ecd06d94ab805c7de25af3fc
MD5 5d7bf0f10c8382d78235417c0d2e8260
BLAKE2b-256 60f406084cc8e3ad3c08f75b175f41da43edec433ece2678be5b63927ea32e5d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page