Odoo

com.odooconsole由 odooconsole.com 發布官方發布者v1.1.0更新於 Oct 24, 2026

Odoo ERP for AI agents: hosted OAuth endpoint, gated writes, one endpoint for every instance.

已驗證Streamable HTTP可網頁執行資料庫效率與工作流商業與電商

概覽

AI 產生的概覽

託管的 Odoo ERP 連接器,讓 AI 助理查詢、建立、更新與刪除 Odoo 記錄,並檢視模型與檢視畫面。

可以做什麼
依條件篩選、計數與批次匯出記錄,並依 ID 建立、更新或刪除記錄,或對記錄執行確認、過帳等模型方法。探索可用模型,檢視欄位定義、預設值、檢視畫面與視窗動作,並可修改欄位預設值或動作設定。對執行個體做健康診斷,並顯示目前連線資訊。
適用情境
適合需要讓助理直接操作 Odoo ERP 執行個體的情境:查詢銷售訂單、聯絡人、產品,匯出資料,建立或修改記錄,或檢視與調整模型設定。唯讀模式適合安全地瀏覽正式環境執行個體。
執行需求
遠端 OAuth 驗證端點,或在本機以 Python 3.11+ 與 uv(或 fastmcp、httpx)執行腳本。需提供 Odoo 執行個體網址、資料庫名稱與使用者名稱,以及密碼或 API 金鑰,皆透過環境變數傳入。
安裝前請注意
寫入工具可建立、更新、刪除記錄並執行任意模型方法,自訂工具會修改欄位預設值與視窗動作;可開啟唯讀模式停用寫入。伺服器持有 Odoo 憑證與已驗證工作階段,請謹慎限縮帳號權限,尤其是在正式資料庫上。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Odoo,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.odooconsole%2Fodoo/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "odoo": {
      "type": "http",
      "url": "https://mcp.odooconsole.com/mcp"
    }
  }
}

README

Odoo MCP Server

An MCP (Model Context Protocol) server that connects AI agents to Odoo ERP instances. Works with Claude Code, Cursor, Windsurf, and any MCP-compatible client.

Supports Odoo 17-18 (JSON-RPC) and Odoo 19+ (JSON-2 API) — auto-detects the best protocol.

[Odoo MCP Server Overview]

Quick Start

bash
# Run directly (uv handles dependencies automatically)ODOO_URL=https://my.odoo.com ODOO_DB=mydb ODOO_USER=admin ODOO_PASSWORD=secret \  uv run odoo_mcp_server.py

No virtualenv or pip install needed — the script has inline metadata that uv resolves automatically.

Configure in Claude Code

Add to your project's .mcp.json:

json
{  "mcpServers": {    "odoo": {      "type": "stdio",      "command": "uv",      "args": ["run", "--python", "3.11", "--script", "/path/to/odoo_mcp_server.py"],      "env": {        "ODOO_URL": "https://your-instance.odoo.com",        "ODOO_DB": "your-database",        "ODOO_USER": "admin",        "ODOO_PASSWORD": "your-password"      }    }  }}

Or for Odoo 19+ with API key auth:

json
{  "mcpServers": {    "odoo": {      "type": "stdio",      "command": "uv",      "args": ["run", "--python", "3.11", "--script", "/path/to/odoo_mcp_server.py"],      "env": {        "ODOO_URL": "https://your-instance.odoo.com",        "ODOO_DB": "your-database",        "ODOO_USER": "admin",        "ODOO_API_KEY": "your-api-key"      }    }  }}

Configure in Cursor / Windsurf

Add to ~/.cursor/mcp.json or equivalent:

json
{  "mcpServers": {    "odoo": {      "command": "uv",      "args": ["run", "--python", "3.11", "--script", "/path/to/odoo_mcp_server.py"],      "env": {        "ODOO_URL": "https://your-instance.odoo.com",        "ODOO_DB": "your-database",        "ODOO_USER": "admin",        "ODOO_PASSWORD": "your-password"      }    }  }}

Environment Variables

VariableRequiredDescription
ODOO_URLYesOdoo instance URL
ODOO_DBYesDatabase name
ODOO_USERYesLogin username
ODOO_PASSWORDOne of thesePassword (Odoo 17-18)
ODOO_API_KEYrequiredAPI key (Odoo 19+, preferred)
ODOO_READONLYNoSet to true to disable all write operations

Read-Only Mode

Set ODOO_READONLY=true to disable create, update, delete, and execute tools. Useful for safe browsing of production instances:

json
{  "mcpServers": {    "odoo": {      "type": "stdio",      "command": "uv",      "args": ["run", "--python", "3.11", "--script", "/path/to/odoo_mcp_server.py"],      "env": {        "ODOO_URL": "https://production.odoo.com",        "ODOO_DB": "prod",        "ODOO_USER": "readonly-user",        "ODOO_PASSWORD": "secret",        "ODOO_READONLY": "true"      }    }  }}

Available Tools

Core CRUD

ToolDescription
odoo_search_readQuery records with domain filters, field selection, pagination
odoo_search_countCount matching records without fetching data
odoo_exportBulk export up to 2000 records per call for spreadsheets
odoo_createCreate new records
odoo_updateUpdate existing records by ID
odoo_deleteDelete records by ID
odoo_executeRun any model method (action_confirm, action_post, etc.)

Discovery

ToolDescription
odoo_list_modelsDiscover available models with keyword filter
odoo_get_fieldsInspect field definitions for any model
odoo_doctorHealth diagnostics (version, modules, users, crons, errors)
odoo_connection_infoShow current connection details

Model Customization

ToolDescription
odoo_model_infoGet comprehensive model metadata in one call — fields, views, actions, defaults, sort order
odoo_set_defaultSet, update, or clear a field's default value (handles ir.default + JSON encoding)
odoo_get_viewGet the fully rendered (merged) form/tree/search view XML
odoo_modify_actionChange a window action's domain, context, sort order, limit, or view modes

Example Usage

Once configured, ask your AI agent:

  • "List all sale orders from this month"
  • "Show me the fields on res.partner"
  • "Create a new contact named Acme Corp"
  • "Run a health check on the Odoo instance"
  • "Export all products to a spreadsheet"
  • "Confirm sale order 42"

Model Customization Examples

  • "What's the default sort order for sale.order?"
  • "Change the default invoice policy on products to 'delivery'"
  • "Show me the form view for res.partner"
  • "What window actions exist for account.move? Change the default sort to date desc"
  • "List all custom fields on res.partner"
  • "What fields are required on sale.order?"

Model Customization Tools — Detailed Reference

odoo_model_info

Returns everything about a model in one call, eliminating the need for multiple exploratory queries.

odoo_model_info(model="sale.order")

Returns:

  • default_order — the model's _order attribute (e.g. "date_order desc, id desc")
  • rec_name — the field used for display name in dropdowns
  • field_count — total number of fields
  • fields_by_type — field count grouped by type (many2one: 12, char: 8, ...)
  • custom_fields — user-created fields (x_ prefix or state=manual)
  • relational_fields — all Many2one, One2many, Many2many with their targets
  • required_fields — fields that must be filled
  • views — base views (form, tree, search) with IDs and priorities
  • actions — window actions with their domain, context, and view modes
  • defaults — current ir.default values set for this model's fields

odoo_set_default

Manages field defaults via ir.default with proper JSON encoding. The most common source of agent errors when done manually.

# Set global defaultodoo_set_default(model="product.template", field_name="invoice_policy", value="delivery")
# Set user-specific defaultodoo_set_default(model="sale.order", field_name="warehouse_id", value=2, user_id=5)
# Remove a defaultodoo_set_default(model="product.template", field_name="invoice_policy", value=null)

The tool:

  1. Finds the field_id in ir.model.fields (validates the field exists)
  2. JSON-encodes the value automatically
  3. Creates or updates the ir.default record
  4. Returns before/after values for confirmation

odoo_get_view

Returns the fully rendered view XML after all inheritance is applied — what the user actually sees, not the raw fragments stored in ir.ui.view.

odoo_get_view(model="sale.order", view_type="form")odoo_get_view(model="res.partner", view_type="tree")odoo_get_view(model="account.move", view_type="search")

Returns:

  • arch — the complete merged XML
  • view_id — the base view ID
  • fields_in_view — list of field names present in the view

odoo_modify_action

Changes how a model appears in the UI by modifying its window action (ir.actions.act_window).

# List actions for a model (read-only)odoo_modify_action(model="sale.order")
# Change default sort orderodoo_modify_action(action_id=42, order="date_order desc")
# Change default filter and page sizeodoo_modify_action(action_id=42, domain="[['state','=','sale']]", limit=200)
# Add default grouping via contextodoo_modify_action(action_id=42, context="{'group_by': 'partner_id'}")

The tool returns before/after values so you can verify what changed.

How It Works

AI Agent (Claude, Cursor, etc.)    ↕ MCP Protocol (stdio)Odoo MCP Server    ↕ JSON-RPC / JSON-2 APIOdoo Instance

The server authenticates once at startup and maintains a persistent connection. All tools use the same authenticated session.

Requirements

  • Python 3.11+
  • uv (recommended) or pip install fastmcp httpx

License

MIT

來源:README.md,提交 898089d

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v1.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分