Panda Odoo

Um servidor MCP para integração com o sistema ERP Odoo.

Documentação

mcp-odoo-panda

License: MIT Python 3.10+ MCP

Um servidor MCP para Odoo — permita que Claude, Cursor ou qualquer cliente MCP pesquise, leia, crie, atualize e chame métodos no seu ERP Odoo.

Para desenvolvedores e integradores que desejam ferramentas Odoo dentro de um cliente LLM sem escrever um conector personalizado.

Odoo MCP Server

Início rápido

Requisitos: Python 3.10+, uma instância Odoo 15+ que você possa acessar (local ou remota).

  1. Instalar

    git clone https://github.com/pandeussilvae/mcp-odoo-panda.git
    cd mcp-odoo-panda
    pip install .
    
  2. Configurar a partir do exemplo

    cp odoo_mcp/config/config.example.yaml odoo_mcp/config/config.yaml
    # edit config.yaml — set odoo_url, database, username, api_key
    
  3. Escolher como os clientes se conectam (somente MCP protocolVersion 2026-07-28)

    ModoQuando usar
    stdio (padrão)Claude Desktop / Cursor na mesma máquina (SDK oficial mcp)
    mcp_2026_07_28Streamable HTTP remoto (POST /mcp via mcp_sdk_server)

    Defina connection_type em config.yaml (veja stdio vs Streamable HTTP).

  4. Executar

    odoo-mcp-server --config odoo_mcp/config/config.yaml
    # or: python -m odoo_mcp.core.mcp_server --config odoo_mcp/config/config.yaml
    
  5. Conectar seu cliente MCP (Claude Desktop / Cursor) — veja Conectar Claude ou Cursor.

Alternativa com Docker: docker compose up -d (stack de laboratório; padrões apenas para desenvolvimento).

Configuração mínima

Ponto de partida copiar-e-colar (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

Variáveis de ambiente sobrescrevem o arquivo quando definidas: ODOO_URL, ODOO_DB, ODOO_USER, ODOO_PASSWORD.

stdio vs Streamable HTTP

Ambos os transportes falam MCP protocolVersion: 2026-07-28 via SDK oficial Python mcp (≥2.1.1).

  • stdio — o cliente MCP inicia este processo e conversa via stdin/stdout (somente SDK moderno). Melhor para aplicativos de desktop (Claude, Cursor). Sem porta aberta.
  • mcp_2026_07_28 (alias http) — Streamable HTTP em POST /mcp (mcp_sdk_server + uvicorn). Use para remoto / Docker.

Nota de migração

SSE / HTTP pré-2026-07-28 foram removidos. connection_type: sse, streamable_http e modern_http falham na inicialização. Atualize os clientes para envelopes 2026-07-28 (server/discover, _meta por solicitação).

Exemplo HTTP (desenvolvimento):

connection_type: mcp_2026_07_28
http:
  host: 127.0.0.1   # prefer loopback; 0.0.0.0 is DEV-ONLY
  port: 8080

Conectar Claude ou Cursor

Cursor — adicione uma entrada de servidor MCP (Configurações → MCP), por exemplo:

{
  "mcpServers": {
    "odoo": {
      "command": "odoo-mcp-server",
      "args": ["--config", "/absolute/path/to/mcp-odoo-panda/odoo_mcp/config/config.yaml"]
    }
  }
}

Claude Desktop — mesma estrutura no arquivo de configuração MCP (claude_desktop_config.json): command + args apontando para sua instalação e configuração.

Use caminhos absolutos. Não envie configurações de cliente que contenham senhas reais.

O que você obtém

  • Pesquisar / ler / criar / escrever / desvincular registros Odoo
  • Chamar métodos personalizados de modelos
  • Gerenciamento de sessão, limitação de taxa, CORS HTTP opcional
  • MCP Streamable HTTP via SDK oficial (CONNECTION_TYPE=mcp_2026_07_28; protocolo 2026-07-28)

Segurança

  • Nunca envie senhas reais ou chaves de API. Mantenha config.yaml local (está no gitignore); apenas config.example.yaml é rastreado.
  • Os padrões de senha admin do Compose / Dockerfile são APENAS PARA DESENVOLVIMENTO para um laboratório local.
  • Vincular 0.0.0.0 e CORS allowed_origins: ["*"] são APENAS PARA DESENVOLVIMENTO. Em produção, use loopback ou uma interface privada e origens explícitas.
  • Prefira variáveis de ambiente ou um gerenciador de segredos para credenciais.

Autônomo

Este projeto é um servidor MCP MIT autônomo para uma única conexão Odoo. Não é um gateway SaaS multi-tenant. Veja ODWARD_BOUNDARY.md.

Opcional: usado por Odward Connect como mecanismo upstream; essa integração vive fora deste repositório.

Documentação aprofundada

DocumentoTópico
CONFIGURATION.mdReferência completa de configuração
docs/API_REFERENCE.mdFerramentas / API
docs/DEVELOPER_GUIDE.mdArquitetura para contribuidores
docs/DOCKER_DEPLOYMENT.mdNotas sobre Docker
docs/server_usage.mdUso do servidor
LEGGIMI.mdInício rápido em italiano

Notas históricas de refatoração (quando presentes) ficam em docs/archive/.

Licença

MIT — veja LICENSE.


Desenvolvido por Paolo Nugnes e TechLab · info@techlab.it · support@techlab.it