Skip to main content
Glama
daitianjun

Odoo MCP Skeleton

by daitianjun

Odoo MCP Skeleton

This is a Python skeleton for an Odoo MCP server built with fastmcp.

It includes:

  • FastMCP tool registration

  • FastAPI HTTP service

  • secret-key header authentication for /mcp

  • Odoo JSON-RPC client wrapper

  • Example read-only tools

Quick Start With uv

  1. Install uv.

  2. Enter the project directory.

  3. Sync dependencies:

uv sync
  1. Copy environment variables:

copy .env.example .env
  1. Fill in:

  • MCP_SECRET_KEY

  • ODOO_BASE_URL

  • ODOO_DB

  • ODOO_USERNAME

  • ODOO_PASSWORD

  1. Start the server:

uv run uvicorn odoo_mcp.main:app --host 127.0.0.1 --port 8080

On Windows PowerShell, you can also use:

.\run.ps1

Related MCP server: Odoo MCP Server

Authentication

Clients must send this header when connecting to the MCP endpoint:

secret-key: your-secret-value

Suggested MCP Endpoint

http://127.0.0.1:8080/mcp

Troubleshooting Logs

If you see this pattern:

GET /mcp HTTP/1.1 307 Temporary Redirect
GET /mcp/ HTTP/1.1 404 Not Found

it usually means the outer FastAPI app and the inner FastMCP app both added an /mcp path. This project mounts FastMCP at /mcp and configures the inner FastMCP HTTP app with path="/", so the final endpoint stays:

http://127.0.0.1:8080/mcp

If you see requests to these paths:

/.well-known/oauth-protected-resource
/.well-known/oauth-authorization-server
/.well-known/openid-configuration

those are MCP client OAuth discovery probes. They can return 404 when you use simple secret-key header authentication instead of OAuth.

Common uv Commands

uv sync
uv run uvicorn odoo_mcp.main:app --host 127.0.0.1 --port 8080
uv run python -c "import odoo_mcp; print('ok')"

Notes About fastmcp Versions

FastMCP has changed quickly across versions. This skeleton isolates the MCP-to-ASGI mounting logic in src/odoo_mcp/server.py. If your installed version exposes a different HTTP adapter, update only that file.

Example Tools

  • odoo_healthcheck

  • search_customers

  • get_customer_detail

  • list_sale_orders

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    An MCP server implementation that integrates with Odoo ERP systems, enabling AI assistants to interact with Odoo data and functionality through the Model Context Protocol.
    41
    656 PyPI
    408
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that enables AI assistants to interact with Odoo ERP apps like Inventory, CRM, Sales, and Manufacturing. It allows users to read, create, and manage Odoo records and workflows using natural language commands.
    25
    11 npm
    1
    ISC
  • A
    license
    Not graded
    quality
    D
    maintenance
    An extensible MCP server that integrates Odoo with LLMs to enable querying and managing business data like partners, quotations, and sales orders. It supports custom tool registration and multiple transport protocols for both local and remote communication.
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that connects AI assistants to Odoo ERP instances via the built-in XML-RPC API without requiring any additional addons. It enables users to search, create, update, and manage Odoo records and models through natural language.
    25 npm
    MIT