mcpField
O
odoo-mcp

odoo-mcp

ローカル
github.com/nicolasramosビジネス・マーケティング52 週間前に更新

odoo-mcp について

odoo-mcpは、MCPクライアント経由で業務データを参照・操作したいチーム向けの、Odoo 18用stdio MCPサーバーです。入力検証付きの業務ツールに加え、情報参照リソースとアクセス制御を備えています。

主な機能

  1. 01レコードの検索・読み取り・作成・更新
  2. 02CRM・販売・会計・プロジェクト操作
  3. 03モデルスキーマとレコード要約の公開
  4. 04Pydanticによるツール引数の検証
  5. 05モデル制限と機密フィールドの保護

活用シーン

  1. 01顧客、注文、未払い請求書の検索
  2. 02販売注文、タスク、サポートチケットの作成
  3. 03Odooのフィールドやレコード情報の確認

MCP 対応

stdioでMCPクライアントに接続し、Odoo操作ツールとモデル、フィールド、レコード情報を参照するリソースを公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"nicolasramos-odoo": {
"command": "uvx",
"args": [
"odoo-18-mcp-server"
],
"env": {
"ODOO_URL": "<ODOO_URL>",
"ODOO_DB": "<ODOO_DB>",
"ODOO_USERNAME": "<ODOO_USERNAME>",
"ODOO_PASSWORD": "<ODOO_PASSWORD>",
"ODOO_MCP_DEFAULT_LIMIT": "<ODOO_MCP_DEFAULT_LIMIT>",
"ODOO_MCP_MAX_LIMIT": "<ODOO_MCP_MAX_LIMIT>"
}
}
}
}
起動コマンドuvx odoo-18-mcp-server
設定が必要な環境変数
ODOO_URLURL of your Odoo instance (e.g., https://yourcompany.odoo.com)
ODOO_DBName of your Odoo database
ODOO_USERNAMEOdoo username for authentication
ODOO_PASSWORDシークレットOdoo password for authentication
ODOO_MCP_DEFAULT_LIMITDefault limit for search results (default: 50)
ODOO_MCP_MAX_LIMITMaximum limit for search results (default: 80)

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

パッケージ
pypiodoo-18-mcp-server1.0.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

OdooClaw MCP

stdio 経由で Odoo 18 を利用する、スタンドアロンの MCP(Model Context Protocol)サーバーです。

MCP 名: io.github.nicolasramos/odooclaw-mcp
PyPI パッケージ: odooclaw-mcp
公式 CLI: odooclaw-mcp

下位互換性のある別名もインストールされます。

  • odoo-mcp
  • odoo-mcp-server
  • odoo-18-mcp-server

クイックスタート

1) インストール
pip install odooclaw-mcp

ソースからインストールする場合:

git clone https://github.com/nicolasramos/odooclaw-mcp.git
cd odooclaw-mcp
pip install -e .
2) 環境を設定する
cp .env.example .env

必須:

ODOO_URL=https://yourcompany.odoo.com
ODOO_DB=your_database
ODOO_USERNAME=your_username
ODOO_PASSWORD=your_password

任意:

ODOO_MCP_DEFAULT_LIMIT=50
ODOO_MCP_MAX_LIMIT=80
LOG_LEVEL=INFO
3) 検証して実行する
odooclaw-mcp --check-config
odooclaw-mcp

別の方法:

python -m odoo_mcp

MCP クライアントの設定(stdio)

{
  "mcpServers": {
    "odoo": {
      "command": "odooclaw-mcp",
      "env": {
        "ODOO_URL": "https://yourcompany.odoo.com",
        "ODOO_DB": "your_database",
        "ODOO_USERNAME": "your_username",
        "ODOO_PASSWORD": "your_password",
        "ODOO_MCP_DEFAULT_LIMIT": "50",
        "ODOO_MCP_MAX_LIMIT": "80"
      }
    }
  }
}
ツール呼び出しのペイロード形式

MCP プロトコル経由でツールを呼び出す場合、引数は最上位の payload オブジェクトでラップする必要があります。

有効な形式:

{
  "name": "odoo_search",
  "arguments": {
    "payload": {
      "model": "res.partner",
      "domain": [["customer_rank", ">", 0]],
      "limit": 3
    }
  }
}

payload が省略されている場合、Field required: payload に相当するエラーで検証に失敗します。

対応範囲

  • Odoo の操作に対応する 129 個の MCP ツール(CRUD、業務アクション、移行ワークフロー)
  • すべてのツールペイロードに対する Pydantic 検証
  • Odoo 18 互換性ヘルパー(customer_rank / supplier_rank / payment_state)
  • セキュリティガード(モデルの許可リスト、拒否対象フィールド、アクションガード、unlink のブロック)
  • 構造化ログと監査アクション

利用可能なツール

サーバーは現在、129 個の MCP ツールを公開しています。

注:以下のカテゴリ別テーブルでは、一般的または特に有用なツールを紹介しています。インストール済みバージョンのツールカタログ全体を確認するには、MCP の list_tools を使用してください。

基本的なレコード操作
ツール用途
odoo_searchOdoo のドメイン構文を使って、許可されたモデルのレコードを検索します。
odoo_read指定したレコード ID から選択したフィールドを読み取ります。
odoo_search_read効率的な取得のため、検索と読み取りを組み合わせます。
odoo_create許可されたモデルに新しいレコードを作成します。
odoo_write許可されたモデルの既存レコードを更新します。
odoo_invoke_actionaction_* や button_* などの Odoo モデルメソッドを呼び出します。
odoo_get_record_summaryレコードの簡潔で分かりやすい概要を返します。
パートナー、販売、CRM
ツール用途
odoo_find_partner名前、VAT、またはメールアドレスで顧客や仕入先を検索します。
odoo_get_partner_summary業務に役立つ情報を含む、パートナーの概要を取得します。
odoo_find_sale_order名前、パートナー、または状態で販売オーダーを検索します。
odoo_get_sale_order_summary明細を含む販売オーダーの概要を取得します。
odoo_create_sale_order商品明細を含む見積書/販売オーダーを作成します。
odoo_confirm_sale_order見積書を販売オーダーとして確定します。
odoo_create_leadCRM のリード/商談を作成します。
会計、購買、支払い
ツール用途
odoo_create_purchase_orderパートナー情報と明細データから購買オーダーを作成します。
odoo_create_vendor_invoice仕入先請求書を作成します。
odoo_find_pending_invoicesOdoo 18 の仕様に基づき、支払い待ちの仕訳済み請求書または仕入先請求書を検索します。
odoo_get_invoice_summary請求書または仕入先請求書の詳細な概要を取得します。
odoo_register_payment特定の請求書に対する支払いを登録します。
プロジェクト、活動、チャター
ツール用途
odoo_find_task名前、プロジェクト、またはステージでプロジェクトタスクを検索します。
odoo_create_task新しいプロジェクトタスクを作成します。
odoo_update_taskタスクのステージ、担当者、または期限を更新します。
odoo_create_activityレコードに活動を予定します。
odoo_list_pending_activities必要に応じてモデルまたは担当者で絞り込み、未完了の活動を一覧表示します。
odoo_mark_activity_done活動を完了としてマークします。
odoo_post_chatter_messageレコードにチャターメッセージを投稿します。
odoo_create_activity_summaryフォローアップ用の要約形式の活動を作成します。
odoo_close_activity_with_reason活動を終了し、その理由を記録します。
odoo_log_timesheetプロジェクトまたはタスクのタイムシート項目を記録します。
サポート、契約、在庫、インスタンスの機能
ツール用途
odoo_get_capabilities接続中のインスタンスで利用可能なモジュールと機能を報告します。
odoo_create_helpdesk_ticketヘルプデスクチケットを直接作成します。
odoo_create_helpdesk_ticket_from_partnerパートナーに紐付けたヘルプデスクチケットを作成します。
odoo_draft_ticket_emailチケットのコンテキストからサポートメールの下書きを作成します。
odoo_create_contract_line契約に明細行を追加します。
odoo_replace_contract_line既存の契約明細行を新しい明細行に置き換えます。
odoo_close_contract_line理由と終了日を指定して契約明細行を終了します。
odoo_get_product_stock製品の在庫数量を確認します。
odoo_create_calendar_event参加者を指定して会議または予定を作成します。
内省
ツール用途
odoo_get_model_schemares.partner や account.move などのモデルのフィールドとスキーマを確認します。

利用可能なリソース

サーバーは、探索とコンテキスト提供のために5 つの MCP リソースも公開しています。

リソース用途
odoo://context/odoo18-fields-referencecustomer_rank、supplier_rank、payment_state など、よくあるモデルやドメインの落とし穴に関する Odoo 18 のフィールドリファレンスです。
odoo://modelsセキュリティポリシーで現在許可されているモデルの JSON リストです。
odoo://model/{model_name}/schema特定の Odoo モデルの技術スキーマです。
odoo://record/{model}/{id}/summary特定のレコードの JSON サマリーです。
odoo://record/{model}/{id}/chatter_summary特定のレコードのチャター履歴のサマリーです。

ガードレールとランタイムの動作

  • 標準の Odoo JSON-RPC エンドポイントを使用し、OdooClaw の委譲には依存しません。
  • ツールのペイロードは、実行前に Pydantic で検証されます。
  • モデルへのアクセスは、サーバー設定で定義された許可リストによって制限されます。
  • 機密性の高い書き込みフィールドは禁止リストに登録され、unlink はブロックされます。
  • 検索形式のツールには、デフォルトと最大の上限(ODOO_MCP_DEFAULT_LIMIT、ODOO_MCP_MAX_LIMIT)が適用されます。
  • sender_id は監査およびコンテキストのメタデータとして扱われ、実行は認証済みの Odoo セッションユーザーとして行われます。
  • 一部のツールを使用するには、対応する Odoo アプリ/モジュール(CRM、Helpdesk、Projects、Contracts、Inventory など)のインストールが必要です。

セキュリティモデル

サーバーは標準の Odoo JSON-RPC エンドポイントを使用し、 設定された Odoo セッションユーザーとして操作を実行します。

本番環境では、最小限の権限を付与した専用の Odoo アカウントを使用してください。

本番環境に関する注意事項

  • これは stdio MCP サーバーであり、HTTP API サービスではありません。
  • Docker/Compose のサポートは、主にパッケージ化や管理されたランタイム環境向けです。
  • 通常の使用では、MCP クライアントがサーバープロセスを直接起動します。
  • Odoo の認証情報は環境変数またはシークレットマネージャーに保管してください。

既知の制限事項

  • MCP プロセスごとに Odoo の認証情報コンテキストは 1 つです。
  • 現在、認証フローでは ODOO_DB が必須です。
  • 一部のツールには特定の Odoo アプリ/モジュール(CRM、Helpdesk、Project など)が必要です。
  • Odoo 18 のフィールドの意味に合わせて設計されています。

開発

pip install -e .[dev]
ruff check src tests
black --check src tests
mypy src --ignore-missing-imports
pytest tests -v
python -m build
twine check dist/*

ドキュメント

ライセンス

MIT - LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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