Odoo MCP服务器

一个轻量级的MCP服务器,将任何LLM(如Claude、Gemini、GPT-4等)连接到您的Odoo实例,无需修改Odoo即可运行。

  • by fediltf
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 fediltf/odoo-mcp-server

使用说明

Odoo MCP服务器

轻量级的 模型上下文协议 将任何LLM(Claude、Gemini、GPT-4等)连接到Odoo实例的服务器。

作为单个Docker容器运行。无需对Odoo进行任何更改。


运作原理

LLM Client  ──MCP/SSE──►  odoo-mcp-server  ──XML-RPC──►  Odoo

服务器将Odoo数据和操作公开为 工具 LLM可以呼叫。权限由Odoo UI控制并实时重新加载,无需重新启动容器。

有关服务器逻辑和场景示例的完整分解,请参阅 odoo_mcp_breakdown.md.


快速开始

git clone https://github.com/fediltf/odoo-mcp-server.git
cd odoo-mcp-server
cp .env.example .env   # fill in your Odoo details
docker compose up --build -d

SSE端点将在 http://localhost:8765/sse.


配置

编辑 .env 在启动容器之前。

变量 必填 描述
MCP_API_KEY Yes(prod) 客户端身份验证的承载令牌。空=无身份验证
MCP_ODOO_URL 是 您的Odoo实例的完整URL
MCP_ODOO_DB 是 Odoo数据库名称
MCP_ODOO_USER 是 Odoo用户登录
MCP_ODOO_PASSWORD 是 Odoo用户密码
MCP_ALLOW_WRITE 没有 1 启用创建/写入/删除工具
MCP_ALLOW_EXECUTE 没有 1 启用方法执行
MCP_ALLOWED_MODELS 否 逗号分隔的模型白名单。空=所有型号

可用工具

工具 可用时
odoo_list_models 总是
odoo_get_fields 总是
odoo_search_read 总是
odoo_read 总是
odoo_create MCP_ALLOW_WRITE=1
odoo_write MCP_ALLOW_WRITE=1
odoo_unlink MCP_ALLOW_WRITE=1
odoo_execute_method MCP_ALLOW_EXECUTE=1

连接客户端

from langchain_mcp_adapters.client import MultiServerMCPClient

async with MultiServerMCPClient({
    "odoo": {
        "url": "http://localhost:8765/sse",
        "transport": "sse",
        "headers": {"Authorization": "Bearer your_api_key"},
    }
}) as client:
    tools = await client.get_tools()

适用于任何兼容MCP的客户端。上面的LangChain示例使用 langchain-mcp-adapters.


安全

  • 始终设置 MCP_API_KEY 生产中
  • 使用具有最小权限的专用Odoo用户——避免 admin
  • 集 MCP_ALLOWED_MODELS 限制LLM可以访问的数据
  • 保持 MCP_ALLOW_WRITE 和 MCP_ALLOW_EXECUTE 除非需要,否则请关闭
  • 将服务器置于生产环境中的TLS终止反向代理(nginx、Caddy)之后