使用说明
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)之后
