Odoo模型上下文协议客户端

一个Python MCP客户端,使AI助手能够与Odoo ERP系统交互,支持搜索、创建、更新、删除记录等操作。

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

使用说明

YT MCP Odoo服务器

Python MCP(模型上下文协议)客户端,使Claude、Cursor和VS Code Copilot等AI助手能够与您的Odoo ERP系统进行交互。

特性

  • 🔍 搜索和阅读 -用自然语言查询任何Odoo模型
  • ✏️ 创建和更新 -通过AI创建和修改记录
  • 🗑️ 删除 -删除记录(具有适当权限)
  • 📊 批量操作 -一次创建/更新多条记录
  • 🔢 计数和浏览 -计数记录或按特定ID获取
  • 📝 提示模板 -常见任务的预定义提示
  • 🔐 安全 -具有Odoo用户权限的API密钥身份验证

安装

方案1:地方发展(推荐)

# Navigate to the mcp_client directory
cd /path/to/yt_mcp_server/mcp_client

# Install in development mode
pip install -e .

# Or using uv
uv pip install -e .

选项2:直接从路径

# Install directly from local path
pip install /path/to/yt_mcp_server/mcp_client

选项3:无需安装即可运行

# Run directly with Python
cd /path/to/yt_mcp_server/mcp_client
python -m yt_mcp_server_odoo

配置

环境变量

变量 必填 默认 描述
ODOO_URL 是的 http://localhost:8069 您的Odoo实例URL
ODOO_API_KEY 是 - MCP服务器模块的API密钥
ODOO_DB 否 自动检测 数据库名称
ODOO_USER 否 - 用户名(API密钥的替代项)
ODOO_PASSWORD 否 - 密码(API密钥的替代项)
MCP_TRANSPORT 没有 stdio 运输: stdio 或 streamable-http
MCP_HOST 没有 localhost HTTP传输主机
MCP_PORT 没有 8000 HTTP传输端口
DEFAULT_LIMIT 没有 10 每个查询的默认记录
MAX_LIMIT 没有 100 每次查询的最大记录数
MAX_SMART_FIELDS 没有 25 智能选择的最大字段数
ODOO_YOLO 没有 off YOLO模式: off, read, true

IDE安装指南

克劳德桌面版

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
窗户: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json

选项A:使用已安装的软件包

{
  "mcpServers": {
    "odoo": {
      "command": "python",
      "args": ["-m", "yt_mcp_server_odoo"],
      "env": {
        "ODOO_URL": "https://your-odoo.com",
        "ODOO_API_KEY": "your-api-key-here",
        "ODOO_DB": "your-database"
      }
    }
  }
}

选项B:直接使用本地路径

{
  "mcpServers": {
    "odoo": {
      "command": "python",
      "args": ["/path/to/yt_mcp_server/mcp_client/src/yt_mcp_server_odoo/__main__.py"],
      "env": {
        "ODOO_URL": "https://your-odoo.com",
        "ODOO_API_KEY": "your-api-key-here",
        "ODOO_DB": "your-database"
      }
    }
  }
}

光标

地点: ~/.cursor/mcp.json

{
  "mcpServers": {
    "odoo": {
      "command": "python",
      "args": ["-m", "yt_mcp_server_odoo"],
      "env": {
        "ODOO_URL": "https://your-odoo.com",
        "ODOO_API_KEY": "your-api-key-here",
        "ODOO_DB": "your-database"
      }
    }
  }
}

VS代码(带副本/继续)

地点: .vscode/mcp.json 在您的工作区或 ~/.vscode/mcp.json 全球范围内

{
  "servers": {
    "odoo": {
      "command": "python",
      "args": ["-m", "yt_mcp_server_odoo"],
      "env": {
        "ODOO_URL": "https://your-odoo.com",
        "ODOO_API_KEY": "your-api-key-here",
        "ODOO_DB": "your-database"
      }
    }
  }
}

帆板运动

地点: ~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "odoo": {
      "command": "python",
      "args": ["-m", "yt_mcp_server_odoo"],
      "env": {
        "ODOO_URL": "https://your-odoo.com",
        "ODOO_API_KEY": "your-api-key-here",
        "ODOO_DB": "your-database"
      }
    }
  }
}

泽德

地点: ~/.config/zed/settings.json

{
  "context_servers": {
    "odoo": {
      "command": {
        "path": "python",
        "args": ["-m", "yt_mcp_server_odoo"],
        "env": {
          "ODOO_URL": "https://your-odoo.com",
          "ODOO_API_KEY": "your-api-key-here",
          "ODOO_DB": "your-database"
        }
      }
    }
  }
}

自定义/程序化

from yt_mcp_server_odoo import OdooMCPServer
from yt_mcp_server_odoo.config import OdooConfig

config = OdooConfig(
    odoo_url="https://your-odoo.com",
    odoo_api_key="your-api-key",
    odoo_db="your-database"
)

server = OdooMCPServer(config)
server.run()

可用的MCP工具

工具 说明
list_models 列出所有启用MCP的Odoo型号
search_records 使用域筛选器搜索记录
get_record 按ID获取单个记录
create_record 创建新记录
update_record 更新现有记录
delete_record 删除记录
count_records 统计与域匹配的记录
browse_records 按ID获取多条记录
create_bulk 一次创建多条记录
update_bulk 更新具有不同值的多个记录
list_prompts 列出可用的提示模板

使用示例

配置后,询问您的AI助手:

"Show me all customers from Spain"
"Create a new contact named John Doe at Acme Corp"
"Find unpaid invoices from last month over $1000"
"Update the phone number for partner ID 42"
"How many products do we have in stock?"
"Delete the draft quotation SO0123"

YOLO模式(开发)

对于开发/测试,启用YOLO模式以绕过MCP模型限制:

{
  "env": {
    "ODOO_YOLO": "read"
  }
}
模式 效果
off 正常-仅可访问配置的型号
read 无需MCP配置即可读取任何型号
true 完全访问所有型号(危险!)

⚠️ 警告: YOLO模式绕过MCP限制,但仍然尊重Odoo用户权限。


获取API密钥

  1. 首选 设置>MCP服务器 在奥多
  2. 点击 管理API密钥
  3. 为用户创建新的API密钥
  4. 复制密钥(仅显示一次!)

故障排除

连接失败

  • 检查 ODOO_URL 可访问
  • 确保安装并启用了MCP服务器模块
  • 验证API密钥是否有效

未找到型号

  • 确保在中启用了模型 MCP服务器>已启用的型号
  • 检查是否应启用YOLO模式进行开发

权限不足

  • 验证API关键用户是否有权访问模型
  • 检查模型权限(读/写/创建/删除)

许可证

LGPL-3.0