mcpField
O
Odoo

Odoo

ローカル
github.comビジネス・マーケティング01 日前に更新

Odoo について

Odoo MCP serverは、AIクライアントからOdooの販売、購買、製造、在庫データを読み取れるようにします。既定では読み取り専用で、サーバー側で書き込みを有効にし、各呼び出しで指定の確認を行った場合に限り、発注行の納期を更新できます。

主な機能

  1. 01販売・購買オーダーの状態照会
  2. 02仕入先予定日と遅延行の確認
  3. 03製造・作業指示・在庫データの参照
  4. 04名前、メール、参照番号、VATで連絡先検索
  5. 05発注行の予定日を任意で更新

活用シーン

  1. 01遅延している購買・販売行の特定
  2. 02仕入先の入荷予定日の確認
  3. 03製造状況と在庫量の確認
  4. 04仕入先確認後の発注行日付の調整

MCP 対応

stdioでローカル実行するMCPサーバーで、MCPクライアントに12個の読み取りツールと任意の書き込みツールを公開します。書き込みにはODOO_MCP_ENABLE_WRITES=trueと毎回の指定確認文が必要で、アクセス権は設定したOdooユーザーに従います。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"helios-one-oy-odoo": {
"command": "npx",
"args": [
"-y",
"@heliosone/odoo-mcp"
],
"env": {
"ODOO_URL": "<ODOO_URL>",
"ODOO_DB": "<ODOO_DB>",
"ODOO_USERNAME": "<ODOO_USERNAME>",
"ODOO_API_KEY": "<ODOO_API_KEY>",
"ODOO_PASSWORD": "<ODOO_PASSWORD>",
"ODOO_MCP_ENABLE_WRITES": "<ODOO_MCP_ENABLE_WRITES>"
}
}
}
}
起動コマンドnpx -y @heliosone/odoo-mcp
設定が必要な環境変数
ODOO_URLOdoo base URL, e.g. https://odoo.example.com
ODOO_DBOdoo database name
ODOO_USERNAMEOdoo login (user email)
ODOO_API_KEYシークレットOdoo API key for that user (or set ODOO_PASSWORD instead)
ODOO_PASSWORDシークレットOdoo password, if no API key is used
ODOO_MCP_ENABLE_WRITESSet to true to allow the one write tool (still needs a confirmation text per call)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@heliosone/odoo-mcp0.1.0

ツール

13

掲載時のツール一覧 · 1 日前に更新

パラメーター型必須説明
limitintegerいいえMaximum rows to return (1-500, default 50).
querystringいいえMatch order number, customer name or customer reference.
offsetintegerいいえページングのためにスキップする行数(デフォルトは 0)。
includeQuotationsbooleanいいえ

詳細

Odoo MCP サーバー

AI アシスタント(Claude Desktop、Claude Code、または任意の MCP クライアント)が、Odoo の販売、購買、製造、在庫データを読み取れるようにする MCP サーバーです。また、有効にした場合に限り、購買オーダー明細の納期を更新できます。

  • 読み取りツールが 12 個、書き込みツールが 1 個あります(以下に記載)。
  • デフォルトでは読み取り専用です。 書き込みツールを使うには、サーバーで ODOO_MCP_ENABLE_WRITES=true を設定し、呼び出しごとに正確な確認テキストを指定する必要があります。
  • 設定したユーザーとして、Odoo の外部 JSON-RPC API(/jsonrpc)に接続します。Odoo のアクセス権が適用されます。
  • stdio を使用してローカルで動作します。テレメトリーはなく、接続先は Odoo のみです。

Helios One が開発しました。MIT ライセンスです。

クイックスタート(2 分)

Node.js 20 以降と、外部 API にログインできる Odoo ユーザーが必要です。

1. Odoo で API キーを取得します(パスワードより推奨):アバターをクリックし、My Profile / Preferences を選択して、Account Security を開き、New API Key をクリックします。キーをコピーします。

2. MCP クライアントにサーバーを追加します。

Claude Code:

claude mcp add odoo \
  -e ODOO_URL=https://odoo.example.com \
  -e ODOO_DB=mydb \
  -e [email protected] \
  -e ODOO_API_KEY=your-api-key \
  -- npx -y @heliosone/odoo-mcp

Claude Desktop:Settings > Developer > Edit Config を開き、claude_desktop_config.json に以下を追加してから、Claude Desktop を再起動します。

{
  "mcpServers": {
    "odoo": {
      "command": "npx",
      "args": ["-y", "@heliosone/odoo-mcp"],
      "env": {
        "ODOO_URL": "https://odoo.example.com",
        "ODOO_DB": "mydb",
        "ODOO_USERNAME": "[email protected]",
        "ODOO_API_KEY": "your-api-key"
      }
    }
  }
}

3. たとえば、「遅延している購買オーダー明細と、遅延日数を教えてください」 や 「S00042 のステータスは何ですか?」 と尋ねます。

設定

変数必須説明
ODOO_URLはいOdoo のベース URL。例:https://odoo.example.com
ODOO_DBはいデータベース名
ODOO_USERNAMEはいユーザーのログイン名
ODOO_API_KEY次のいずれか 1 つユーザーの API キー(パスワードの代わりに使用)
ODOO_PASSWORDユーザーのパスワード
ODOO_MCP_ENABLE_WRITESいいえtrue にすると書き込みツールが使用できます。それ以外の場合、サーバーは読み取り専用になります。
ODOO_TIMEOUT_MSいいえリクエストのタイムアウト。デフォルトは 30000 です

設定が不足していてもサーバーは起動するため、クライアントからツールの一覧を取得できます。その後、各呼び出しは、不足している設定名とともに CONFIGURATION_ERROR を返します。

ツール

ツール戻り値
list_open_sales_orders納品が完了していない確定済み販売オーダー(includeQuotations を指定すると見積もりも追加)
list_open_purchase_orders受領が完了していない確定済み購買オーダー(includeRfqs を指定すると見積依頼も追加)
get_order_status明細(発注/納品または受領/請求)と移動を含む、1 件の販売または購買オーダー。ID、番号、顧客/仕入先参照で指定します。
list_supplier_promise_dates確定済み購買オーダーの未完了明細を、仕入先の入荷予定日とともに、予定日の早い順で表示
list_late_purchase_lines入荷予定日を過ぎていて、受領が完了していない購買オーダー明細。days_late を含みます
list_late_sales_lines納期を過ぎていて、納品が完了していない販売明細。days_late を含みます。納期は、オーダーの確約日があればその日付、なければオーダー日付に明細のリードタイムを加えた日付です。
list_manufacturing_orders製造オーダーのステータス、数量、計画日、部品の在庫状況
list_work_orders作業オーダーの作業、ワークセンター、ステータス、予定所要時間と実績所要時間
list_shipments入荷、出荷、または内部移動。予定日を過ぎたものは lateOnly で指定します
lookup_customer名前、メールアドレス、参照、または VAT で連絡先を検索。顧客を優先します
lookup_supplier名前、メールアドレス、参照、または VAT で連絡先を検索。仕入先を優先します
get_inventory_on_hand製品の数量:手持ち、予測、入荷、出荷
update_po_line_promise_date書き込み。 1 件の購買オーダー明細の入荷予定日を設定します。以下を参照してください。

一覧ツールは limit(デフォルトは 50、最大は 500)と offset を受け取ります。結果には、Odoo 独自のフィールド値に加えて、いくつかの計算フィールド(qty_open、days_late、promised_date)が含まれます。お使いの Odoo バージョンに存在しないフィールドは除外されます。

書き込みツール

update_po_line_promise_date は、1件の発注書明細の date_planned を変更します(たとえば、仕入先から新しい日付の連絡があった場合)。次の両方を満たす場合にのみ実行されます。

  1. サーバーが ODOO_MCP_ENABLE_WRITES=true を指定して起動されていること
  2. 呼び出しに "confirmation": "CONFIRM update_po_line_promise_date" が含まれていること

それ以外の場合は WRITES_DISABLED または CONFIRMATION_REQUIRED を返し、Odoo への呼び出しは行いません。時刻を指定せずに日付を指定した場合、12:00 UTC として保存されるため、ほとんどのタイムゾーンで同じ日に表示されます。結果には変更前と変更後の値が表示されます。

テスト済みの内容

2026年10月24日に、公式 MCP TypeScript SDK クライアントから stdio 経由で odoo-mcp コマンドを実行し、空のプロジェクトにインストールした npm パッケージの tarball を使ってテストしました。対象は、新規にセルフホストした Odoo Community 17.0、18.0、19.0(公式の odoo/odoo ブランチからビルドし、Sales、Purchase、Inventory、Manufacturing をインストール済み。架空のレコードを使用)です。各バージョンで以下を確認しました。

  • 13個すべてのツールが一覧表示され、12個すべての読み取りツールがシード済みのレコードを返しました(各バージョンで21回のツール呼び出しと25項目のチェックを行い、すべて成功)。
  • 書き込みが無効な状態では書き込みツールが拒否され(WRITES_DISABLED)、確認テキストなしでも拒否された後(CONFIRMATION_REQUIRED)、正常に実行され、Odoo を直接読み取って新しい日付を確認しました。
  • サーバーは Odoo API キーでログインしました。1つのセッションでは代わりに通常のパスワードを使用し、間違ったパスワードでは AUTH_FAILED が返されました。
  • 1回の呼び出しは MCP Inspector CLI 経由でも実行しました。

ログ: proof/。ユニットテスト(メモリ内の Odoo の偽物を使用する npm test)は Node.js 20 と 25 で成功します。

未テスト: Odoo Online(odoo.com のホスティング)と Odoo.sh、Odoo Enterprise、17より前の Odoo バージョン、複数会社の構成、大規模なデータベース。Odoo Online では、一部のプランでのみ外部 API を利用できます。Odoo 19 では /jsonrpc が非推奨になりました(削除は Odoo 22(2028年秋)および Odoo Online 21.1(2027年冬)で予定されています)。代わりに JSON-2 API が導入されますが、このサーバーはまだ JSON-2 を使用していません。Odoo 19 では /jsonrpc の呼び出しごとに非推奨の警告が記録されます。

開発

npm ci
npm test

proof/run-live.sh 18.0 は、使い捨ての Linux マシン上でライブテストを再実行します(PostgreSQL と Odoo をインストールします。ワークステーションでは実行しないでください)。

セキュリティ

SECURITY.md を参照してください。アシスタントに必要な権限だけを持つ専用の Odoo ユーザーを使用してください。

ライセンス

MIT。詳細は LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。