Token导航 LogoToken导航

MCP Server · 运维云端

Python Odoo MCP

一个为Odoo提供HTTP REST API的服务,支持加密API密钥、多租户范围隔离和连接池,适用于n8n、webhooks和自定义集成。

stdio官方级别未说明来源级核验工具 9
多租户PythonClaudeClaude DesktopCursor

快速开始

作者 / 组织
christopher-igweze
提供方
christopher-igweze
运行时
Python

工具数量

9

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

Python Odoo MCP 属于运维云端类 MCP Server,公开资料标注 9 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude、Cursor,有可以直接复制的安装命令;接入前要先准备 API Key。

分类

运维云端

传输方式

stdio

认证方式

API Key

部署方式

公开资料未说明

安装与配置

安装命令

python -m venv venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 9 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

Python Odoo MCP服务器

用于Odoo自动化的HTTP REST API,具有加密的API密钥、多对映体范围隔离和连接池。专为n8n、webhooks和自定义集成而构建。

存储库: https://github.com/christopher-igweze/python-odoo-mcp

特性

✅ 多用户 -不同的用户,不同的Odoo实例,相同的服务器

✅ 基于范围的访问控制 -每个模型的细粒度R/W/D权限

✅ 加密的API密钥 -用于安全密钥存储的Fernet加密

✅ 连接池 -使用TTL缓存经过身份验证的会话

✅ n8n就绪 -用于自动化工作流的插入式HTTP集成

✅ 完成CRUD -搜索、读取、创建、写入、删除任何Odoo模型

✅ 错误处理 -清除权限、身份验证和连接错误

✅ 异步支持 -完全异步/等待以实现高并发

快速开始

地方发展

# Clone and install
git clone https://github.com/christopher-igweze/python-odoo-mcp.git
cd python-odoo-mcp
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt

# Run server
python -m src.server
# Server starts on http://localhost:3000

码头工人

# Build and run
docker-compose up --build

# Server starts on http://localhost:3000

与n8n一起使用

1.生成API密钥

首先,将您的Odoo凭据发布到 /auth/generate 获取加密的API密钥:

curl -X POST http://localhost:3000/auth/generate \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://company.odoo.com",
    "database": "company_db",
    "username": "api_user",
    "password": "secret123",
    "scope": "res.partner:RWD,sale.order:RW,product.product:R,*:R"
  }'

# Response:
# {
#   "api_key": "gAAAAABl...",
#   "expires": null,
#   "user": "api_user"
# }

在n8n中,您可以存储此内容 api_key 在变量中供以后使用。

2.创建HTTP请求节点

在n8n中,使用HTTP请求节点:

  • 方法: 发布
  • 网址: http://localhost:3000/tools/call (或您的Coolify URL)
  • 标题:

- X-API-Key: {{ $variables.api_key }} (使用您存储的API密钥)

  • 主体:
  {
    "name": "search",
    "arguments": {
      "model": "res.partner",
      "limit": 10
    }
  }

3.可用工具

所有工具都适用于任何Odoo模型。权限由范围强制执行。

读取操作 (要求 R 许可):

  • search -使用域搜索记录
  • read -读取特定记录
  • search_read -搜索+阅读
  • search_count -统计匹配记录
  • fields_get -获取模型架构
  • default_get -获取默认值

写入操作 (要求 W 许可):

  • create -创建新记录
  • write -更新记录

删除操作 (要求 D 许可):

  • unlink -删除记录

范围格式

使用作用域字符串控制权限:

# Full access to res.partner
res.partner:RWD

# Can search/read/write sales orders, no delete
sale.order:RW

# Read-only access
product.product:R

# Multiple models
res.partner:RWD,sale.order:RW,account.invoice:R

# Wildcard: read-only to all models
*:R

# Mixed: specific full access + wildcard read-only
res.partner:RWD,sale.order:RWD,*:R

权限:

  • R =读取(搜索、读取、search_Read、search_count、fields_get、default_get)
  • W =写入(创建、写入)
  • D =删除(取消链接)

建筑

请求流:

HTTP Request (X-API-Key header)
    ↓
Authentication & Scope Validation
    ↓
Connection Pool (scope-aware caching)
    ↓
Odoo Client (validates permissions, executes operations)
    ↓
Odoo Instance (XML-RPC)

关键部件:

  • HTTP服务器 -端口3000上的FastAPI REST API
  • 连接池 -使用TTL和作用域隔离缓存经过身份验证的Odoo会话
  • 范围验证器 -强制每个模型的R/W/D权限
  • Odoo客户端 -带有自动连接池的XML-RPC包装器

环境变量

# Encryption key for API key generation (auto-generated if not set)
# Generate one with: python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
ENCRYPTION_KEY=your_base64_fernet_key_here

# Connection pool TTL (default: 60 minutes)
CONNECTION_POOL_TTL_MINUTES=60

# Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
LOG_LEVEL=INFO

# Server host and port (defaults for Docker)
HOST=0.0.0.0
PORT=3000

部署

冷却设置

  1. 将仓库推送到GitHub
  2. 在Coolify中,创建新服务→ 码头工人
  3. 指向存储库
  4. 设置环境变量(如果需要)
  5. 部署
  6. 从Coolify获取公共URL
  7. 在n8n中使用: https://your-mcp-xxx.coolify.io/tools/call

测试与开发

看 贡献.md 用于:

  • 使用pytest运行测试
  • 测试覆盖率信息(已实现75.37%)
  • 开发工作流程和微提交

错误处理

所有错误返回 {"error": "...", "status": "..."}:

  • auth_failed -凭据标头无效
  • scope_invalid -作用域语法无效
  • connection_failed -无法连接到Odoo
  • permission_denied -操作违反范围
  • tool_not_found -未知工具名称
  • odoo_error -Odoo RPC错误

注:REST API与MCP协议

该项目揭示 通过HTTP REST API的MCP-样式工具,这与官方的MCP协议不同:

  • 此服务器: 带有HTTP端点的REST API(/tools/list, /tools/call)
  • MCP官方协议: Claude Desktop、Cursor和其他AI助手通过stdio或websockets使用

有关AI助手集成,请参阅优秀 ivnvxd/mcp服务器odoo 它使用真正的MCP协议。

这种REST API方法非常适合 n8n、webhooks和自动化平台 其中HTTP更实用。

许可证

MIT许可证-请参阅 许可证 了解详情。

这意味着您可以自由使用、修改和分发此软件,只要您包含许可声明。

支持

问题?检查:

  1. Odoo URL和凭据正确
  2. 用户在Odoo中具有权限(在设置中创建API用户)
  3. 作用域语法有效(见上面的示例)
  4. 服务器日志: docker logs python-odoo-mcp

关于

Python Odoo MCP服务器 是一个可用于生产的REST API,它将Odoo与n8n、Zapier和自定义集成等自动化平台连接起来。在构建时考虑了安全性和可扩展性:

  • 默认加密 -API密钥是Fernet-encrypt的,从不以明文存储
  • 多租户就绪 -使用基于范围的访问控制隔离数据
  • 连接池 -基于TTL的缓存过期可有效利用资源
  • 企业级检测 -142个测试涵盖关键路径,代码覆盖率超过75%
  • 开发者友好 -完整的异步/等待支持,清晰的错误消息,详细的文档

无论您是在n8n中自动化Odoo工作流,构建自定义集成,还是以编程方式管理Odoo数据,该服务器都提供了一个可靠、安全的HTTP API,并具有细粒度的权限控制。

用例

  • n8n自动化 -将Odoo用作n8n工作流中的数据源或操作
  • Webhook集成 -从外部系统触发Odoo操作
  • 定制应用 -构建无需直接XML-RPC即可与Odoo交互的应用程序
  • API聚合 -将Odoo与自动化平台中的其他API相结合
  • 数据同步 -将Odoo数据与其他业务系统同步

技术栈

  • 框架: FastAPI(异步Python web框架)
  • 协议: 带XML-RPC后端的HTTP REST API
  • 缓存: TTL过期的内存连接池
  • 安全: 用于API密钥的Fernet加密,基于范围的访问控制
  • 测试: pytest,代码覆盖率超过75%
  • 部署: Docker、Docker Compose或传统Python服务器

项目状态

  • 版本: 0.1.0(稳定)
  • 许可证: 麻省理工学院(开源,商业友好)
  • 维护: 积极发展
  • 兼容性: Odoo 11.0+与Python 3.9+

有关更多详细信息,请参阅 贡献.md 用于开发设置和 许可证 许可条款。

工具与能力

工具数量

9

资源数量

0

提示词数量

0

能力标签

Odoo自动化Python本地部署RESTAPI多租户加密API连接池

支持客户端

Claude DesktopClaudeCursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 只提供 9 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude、Cursor,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备API Key,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到API Key的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Python Odoo MCP

MCP World · 本页

9stdio有1 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Python Odoo MCP 怎么安装?

公开资料给出的安装命令是 python -m venv venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Python Odoo MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Python Odoo MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Python Odoo MCP 需要 API Key 吗?

公开资料标注的认证方式是API Key,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Python Odoo MCP 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude、Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP