MCP server for accessing Odoo 19 through its JSON-2 API with CRUD, model inspection, and context resources.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Odoo19 MCP Server.
list_modelsYes
get_fieldsYes
search_recordsYes
count_recordsYes
read_recordsYes
create_recordNo
支援的 MCP Client
Odoo 19 MCP Server,使用 JSON-2 API 連線。
✨ 支援多 user:設定 MCP_MULTIUSER=true 後,每個 client 以自己的 Odoo API key 認證,權限、操作歸屬、審計紀錄都對應真實 user,不再全部掛在同一個服務帳號上,詳見多 user 模式。
本專案基於 Odoo 19 JSON-2 API 完整使用指南 開發。

| 特性 | Resources | Tools |
|---|---|---|
| 用途 | 提供上下文資訊 | 執行操作/動作 |
| 觸發 | 客戶端控制(如 Claude Code) | LLM 自動決定呼叫 |
| 參數 | 無(或 URI 參數) | 有(需 LLM 生成) |
| 類比 | 員工手冊(背景知識) | 工具箱(按需使用) |
| HTTP 類比 | GET(讀取) | POST/PUT/DELETE(操作) |
Resources - 動態上下文,LLM 一開始就知道的背景資訊:
Tools - 需要時才呼叫的操作:
| 方式 | Default Prompt | Resource |
|---|---|---|
| 資料來源 | 寫死在程式碼 | 即時從 Odoo 查詢 |
| 更新時機 | 部署時 | 每次連線時 |
| 換用戶登入 | 資訊錯誤 | 自動正確 |
結論:Resource 是「動態的上下文」,不是靜態文字。
參考:MCP Resources | MCP Tools
| 變數 | 說明 | 預設值 |
|---|---|---|
ODOO_URL | Odoo 伺服器 URL | http://localhost:8069 |
ODOO_DATABASE | 資料庫名稱 | - |
ODOO_API_KEY | API Key 認證 | - |
READONLY_MODE | 唯讀模式(禁止寫入操作) | false |
MCP_ALLOW_SENSITIVE_MODELS | 設 true 停用模型黑名單(預設擋 credential 模型 ir.config_parameter、res.users.apikeys 的讀寫) | false |
MCP_AUTH_TOKEN | HTTP/SSE 模式的 Bearer Token 認證(未設定=無認證;stdio 不適用),見安全機制 | -(停用) |
MCP_MULTIUSER | 多 user 模式:每個 client 拿自己的 Odoo API key 當 Bearer token,見安全機制 | false |
UPLOAD_TOKEN_SECRET | upload token 的 HMAC secret;僅多 worker 部署需要設定(單一程序自動衍生) | - |
建立 .env 檔案:
本專案支援三種 MCP 傳輸模式:
| 模式 | 說明 | 適用情境 |
|---|---|---|
stdio | 標準輸入輸出(預設) | Claude Desktop、Cursor IDE、本機開發 |
http | HTTP 協定 | 遠端服務、n8n、Web 應用整合 |
sse | Server-Sent Events(已棄用) | 向下相容舊版 Client |
兩種模式的關鍵差異在於「誰來啟動 MCP Server」以及「算力在哪裡執行」:
stdio 模式(本機算力)
HTTP/SSE 模式(遠端算力)
⚠️ 安全提醒:HTTP 模式預設沒有認證——任何連得到該 port 的人都直接繼承
ODOO_API_KEY的完整權限。除非 server 只在受信任的內網使用, 否則請務必設定MCP_AUTH_TOKEN(或改用多 user 模式MCP_MULTIUSER)並搭配 TLS,詳見安全機制
專案提供 docker-compose.example.yml 範本,複製後修改即可使用:
範本內容
圖片 / 附件傳遞:
add_attachment的file_path模式會從/shared/uploads/讀檔上傳到 Odoo,避免大量 base64 佔用 LLM output token。client 與 server 跨機器(不共用此 volume)時,改走prepare_upload→/upload把檔案送進UPLOAD_DIR,詳見安全機制。
連不上、回
Invalid host header? 這是底層 MCP SDK 的 DNS rebinding 防護——用非 localhost 的 IP/網域連進來時,Host 標頭不在允許清單內就會被擋。用FASTMCP_HTTP_ALLOWED_HOSTS放行:官方明確警告:使用萬用字元
*會讓 server 對任何來源開放,正式環境請務必列出明確 host。必要時另有FASTMCP_HTTP_ALLOWED_ORIGINS(瀏覽器型 client 的 Origin 白名單)。
⚠️ 純 HTTP 下 Bearer token 是明文傳輸,僅適合受信任內網/臨時測試;對外請改用
https://(TLS)。
server 未啟用 MCP_AUTH_TOKEN、也未開多 user 模式時,headers 整段可省略。
多 user 模式(MCP_MULTIUSER=true)下 headers 必填,Bearer 改填自己的 Odoo API key,見多 user 模式。
| URI | 說明 |
|---|---|
odoo://models | 列出所有模型 |
odoo://model/{model_name} | 取得模型欄位定義 |
odoo://record/{model_name}/{record_id} | 取得單筆記錄 |
odoo://user | 當前登入用戶資訊 |
odoo://company | 當前用戶所屬公司資訊 |
Factual signals from GitHub, npm, and our automated checks — not a rating.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/twtrubiks-odoo19-mcp-server)<a href="https://allmcps.com/mcp/twtrubiks-odoo19-mcp-server"><img src="https://allmcps.com/api/badge/twtrubiks-odoo19-mcp-server?style=directory" alt="Odoo19 MCP Server on AllMCPs" /></a>