Odoo Surface Mcp

io.github.solutionsunity由 GitHub 帳號 solutionsunity 發布v0.6.1更新於 Oct 24, 2026

Full Odoo access for AI agents via MCP: CRUD, website, translations, attachments, workflows.

已驗證STDIO僅桌面效率與工作流商業與電商

概覽

AI 產生的概覽

本機 MCP 伺服器,讓 AI 助理以登入使用者權限存取 Odoo 實例,處理記錄、網站頁面、翻譯、附件與工作流程。

可以做什麼
探索目前使用者可用的模型、欄位、動作與可執行操作,並在多步驟操作前查閱內建技能與工作流程。讀取與搜尋記錄、分組統計、檢視欄位、預設值與篩選器,列出頁面、片段與附件。建立、更新、封存記錄並執行動作,張貼訊息與安排活動。管理網站頁面與片段,設定頁面結構與可見性,上傳或下載二進位檔案。讀取、更新與稽核翻譯。除錯模式另提供 ping、echo、檢視/動作/欄位檢查及快取工具。
適用情境
適合讓助理在既有 Odoo ERP 或網站中工作:查詢與修改業務記錄、維護網頁、處理翻譯或附件,且權限與登入使用者在瀏覽器中相同。
執行需求
透過 npx 在本機執行,需要 Node.js 18+。需要可存取的 Odoo 實例(15.0+,CE 或 EE)與支援 MCP 的用戶端。在用戶端 env 區塊或 .env 檔案設定 ODOO_URL、ODOO_DB、ODOO_USERNAME 與 ODOO_PASSWORD(建議使用 Odoo API 金鑰);多實例設定需為每個項目個別設定 env。
安裝前請注意
伺服器透過 ODOO_PASSWORD 保存 Odoo 憑證,建議使用個人 API 金鑰而非帳戶密碼,並避免寫入共用設定。它能在 Odoo 中建立、更新、封存、發布與上傳資料,僅受使用者權限限制,錯誤指令可能改動線上記錄或網站內容。情況允許時先在測試實例試用。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Odoo Surface Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[圖片] OdooSurface MCP

[npm version] [Node] [Odoo] [License: Apache 2.0] [Downloads]

User-equivalent Odoo access for AI agents — what the authenticated user can do in their browser, nothing more.

Prerequisites

  • Node.js 18+ (ships with npx — no extra install needed)
  • A running Odoo instance (15.0+, CE or EE) — per-version behaviour of every call: docs/compatibility.md
  • An MCP-compatible client (VS Code, Claude Desktop, Claude Code, Cursor, …)

Configure your MCP client

Add this to your MCP client config (e.g. Claude Desktop claude_desktop_config.json):

json
{  "mcpServers": {    "odoo-surface": {      "command": "npx",      "args": ["-y", "@suco/odoo-surface-mcp@latest"],      "env": {        "ODOO_URL": "http://localhost:8069",        "ODOO_DB": "your_database",        "ODOO_USER": "admin",        "ODOO_PASSWORD": "admin"      }    }  }}

Restart your MCP client after saving. npx downloads and runs the package automatically — no further install steps.

Authentication

Option A — .env file (keep credentials out of MCP config)

Instead of putting credentials in your MCP client JSON, create a .env file in the directory where you run the MCP:

ini
ODOO_URL=http://localhost:8069ODOO_DB=your_databaseODOO_USER=adminODOO_PASSWORD=your_password

Remove the env block from the MCP client config — the .env file is loaded automatically.

Option B — API Key (recommended, no password stored)

Since Odoo 14+, users can generate personal API keys that act as a password replacement. Each user generates their own key from their own account — there is no admin-side menu for this.

  1. Log in as the user the MCP will authenticate as
  2. Click the user avatar (top-right) → Preferences
  3. Go to the Account Security tab
  4. Under API Keys → click New API Key
  5. Enter your password when prompted, give the key a name, copy the generated key
  6. Use it as ODOO_PASSWORD — the actual account password is never stored
ini
ODOO_URL=http://localhost:8069ODOO_DB=your_databaseODOO_USER=adminODOO_PASSWORD=your_api_key_here

API keys can be revoked individually from the same screen without changing the account password.

Advanced Configuration

Multiple Odoo instances

Technical users commonly work with more than one Odoo instance (local dev, staging, production). Each instance gets its own named entry in the MCP config — they run as independent processes with fully isolated credentials. The AI client exposes them as separate tool namespaces.

json
{  "mcpServers": {    "odoo-local": {      "command": "npx",      "args": ["-y", "@suco/odoo-surface-mcp@latest"],      "env": {        "ODOO_URL": "http://localhost:8069",        "ODOO_DB": "dev",        "ODOO_USER": "admin",        "ODOO_PASSWORD": "dev_api_key"      }    },    "odoo-production": {      "command": "npx",      "args": ["-y", "@suco/odoo-surface-mcp@latest"],      "env": {        "ODOO_URL": "https://mycompany.odoo.com",        "ODOO_DB": "prod",        "ODOO_USER": "admin",        "ODOO_PASSWORD": "prod_api_key"      }    }  }}

Note: The .env file approach (Option A) does not work for multi-instance setups — both processes share the same working directory and would load the same file. Use the env block per entry instead.

Debug mode

Registers additional tools: ping, echo, inspect_view, inspect_action, inspect_fields, dump_cache, clear_cache, restart_mcp.

json
"args": ["-y", "@suco/odoo-surface-mcp@latest", "--debug"]

Tools

LayerTools
Guidancelist_skills, get_skills, find_skill, list_workflows, get_workflows
Discoveryget_models, get_model_actions, get_model_interface
Planningget_available_actions
Supportinglist_records, get_record, search_records, read_group, get_fields, get_defaults, get_filters, list_pages, get_page_arch, list_snippets, get_snippet, list_attachments, download_binary, fetch_and_upload, translation_get, translation_update, translation_audit
Intentcreate, update, execute_action, archive, post_message, schedule_activity, create_page, set_page_arch, set_page_visibility, upload_binary

Architecture

Core Contract

The agent may only do what the authenticated user can do in their browser. Scope is bounded by the user's menus, views, and ACL — nothing more. Tool verbs express functional intent (publish, confirm) rather than raw ORM operations. Discovery is lazy: the agent resolves only what the current prompt requires.

Layered Tool Surface

LayerRoleWhen invoked
0 — GuidanceCanonical recipes (skills, workflows) the agent consults before any multi-step operation. Pure documentation, no side effects.Before planning
1 — DiscoveryEstablishes the bounded universe of models and reachable relations for the current user.At intent resolution
2 — Planning BridgeAnswers "what is live on this specific record right now" — record-state-aware actions.Once a record is identified
3 — SupportingRead-only data fetchers used silently to fill gaps in the agent's plan.Throughout planning
4 — IntentMutating actions that fulfill the user's request — bounded by the user's UI permissions.Final execution

Planning Loop

User prompt  ├── Discovery       — what models/relations does this user have?  ├── (optional)      — locate the specific record  ├── Planning Bridge — what is live on that record right now?  ├── Guidance        — consult skills/workflows for multi-step recipes  └── Intent          — execute the mutation(s)

Skills and workflows are authored in skills/ and workflows/ as markdown with YAML frontmatter; they are exposed as Layer 0 tools at runtime.

來源:README.md,提交 51902ef

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v0.6.1最新Oct 3, 2026
  2. v0.4.6Sep 16, 2026

評分

已滿足適用檢查項的 50%

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

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

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

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