Skip to main content
Glama
singleflo

io.github.singleflo/odoo-assistant

by singleflo

Odoo Assistant MCP Server

Model Context Protocol(MCP)を介したOdoo仮想従業員です。このサーバーはOdooのビジネスロジック、レコード、ワークフローをLLMに公開し、Odooデータの安全なクエリ、作成、更新、操作を可能にします。

クイックスタート

1. インストール

サーバーを直接実行します:

uvx odoo-assistant

または、環境にインストールします:

uv pip install odoo-assistant

開発用にソースからインストールすることも可能です:

uv pip install git+https://github.com/singleflo/odoo-assistant-mcp

2. 環境変数の設定

2つの変数が必要です。その他は自動検出されるか、デフォルト値があります。

  • ODOO_BASE_URL:OdooインスタンスのベースURL(例:https://mycompany.odoo.com)。

  • ODOO_API_KEY:Odoo APIキー(Odoo 14+、設定 > ユーザー > APIキー > 新規作成で生成)。アカウントパスワードは受け付けられません。キーはユーザーごと、スコープ付きで、単独で取り消し可能です。

オプション設定:

  • ODOO_DB:データベース名。インスタンスが1つのデータベースのみを提供する場合は自動検出されます。複数のデータベースを提供する場合は必須で、エラー時にすべてのデータベース名が表示されます。

  • ODOO_USER:ログイン名。キーから検出されますが、最大59回の追加ラウンドトリップが発生する可能性があります。キー所有者のuidが60以上の場合、検出は失敗します。設定することでプローブを回避できます。

  • ODOO_MCP_MAX_LEVEL:このサーバーが実行できる最高安全レベル。0から4(デフォルト:3)。これによりサーバーを読み取り専用にしたり、削除を許可したりできます。天井の選択を参照してください。

  • ODOO_MCP_PROTECTED_HOSTS:このサーバーが書き込みを拒否するホストのカンマ区切りリスト(デフォルトは空で、パッケージに組み込まれたホストはありません)。リストされたホストへの読み取りは許可されます。書き込みには、意図的なオーバーライドとしてODOO_ALLOW_PROD_WRITE=yesが必要です。

Related MCP server: mcp-server-odoo

安全レイヤー

すべての書き込みとアクションは、Odooに到達する前に動的安全分類子を通過します。操作はレベルL0からL5に分類されます:

レベル

名前

説明

デフォルトステータス

L0

L0_READ

読み取り専用クエリ(search_readreadsearch_count)。

許可

L1

L1_WRITE

単一レコードの書き込みと作成。

許可

L2

L2_BATCH

複数レコードに影響するバッチ書き込み。

許可

L3

L3_STATE_CHANGE

ワークフローの状態遷移(例:注文の確認、請求書の転記)。

許可

L4

L4_DESTRUCTIVE

破壊的操作(例:unlinkaction_cancel、アーカイブ)。

ブロック

L5

L5_PRIVATE / L5_UNKNOWN

プライベートメソッドまたは不明な操作。

ブロック

天井の選択

ODOO_MCP_MAX_LEVELは、このサーバーが実行できる最高レベルを設定します。各値は累積的で、自身のレベルとそれ以下のすべてを許可します:

許可される内容

0

読み取りのみ。

1

+ 単一レコードの書き込みと作成。

2

+ 5レコードを超えるバッチ。

3

デフォルト。 + 注文の確認、請求書の転記、メール送信。

4

+ unlinkaction_cancel、アーカイブ。

5

受け入れられますが、効果は4と同じです。以下を参照。

数値を選ぶ前に知っておくべき2つの動作があります:

  • 5はL5をアンロックしません。 両方のL5バリアントは、天井が読み取られる前に拒否されます。L5_PRIVATEは、Odoo自体が_で始まるすべてのメソッドを拒否するため、どの天井でも提供できません。L5_UNKNOWNは、誰も分類していないメソッドは定義上、未レビューの影響を持つため拒否されます。そのようなメソッドを許可する方法は、safety_layer.pyWRITE_L1/L3/L4に追加することです。コード内でレビューされ、設定によってではありません。

  • 無効な値は起動を拒否します。 ODOO_MCP_MAX_LEVEL="O"はデフォルトにフォールバックするのではなくエラーを発生させます。なぜなら、デフォルトは書き込み可能だからです。タイプミスによって、読み取り専用だと思っていたサーバーが書き込み可能になることを防ぎます。

天井は人間によって帯域外で設定され、起動時にプロセス環境から読み取られます。このサーバーに対して実行されるモデルは天井を上げることはできません。呼び出しが天井を超えた場合、拒否メッセージには必要なレベルが示されるため、エージェントは操作が何を変更するかを説明し、決定をあなたに委ねることができます。

これはこのサーバーの権限であり、アカウントの権限ではないことに注意してください。シェルアクセスを持つエージェントは、Odooを直接呼び出すことでMCPサーバーを常にバイパスできます。クライアントに関係なく保持しなければならない制限は、APIキーが属するユーザーのOdooアクセス権限に設定する必要があります。そこではOdooサーバーがそれを強制します。

Odooバージョンサポート

Odoo 14.0はサポートされる絶対最小バージョンです。このサーバーはAPIキーのみを使用して認証するため、Odoo 13以前には存在しません。

Odooバージョン

APIキー

XML-RPC

公式メンテナンス(2026年8月)

サポートレベル/備考

≤ 13.0

いいえ

はい

いいえ

未サポート。このサーバーで認証できません。

14.0

はい

はい

いいえ

プロトコル互換。実インスタンスでのテスト未実施。

15.0

はい

はい

いいえ

プロトコル互換。実インスタンスでのテスト未実施。

16.0

はい

はい

いいえ

プロトコル互換。実インスタンスでのテスト未実施。

17.0

はい

はい

はい(2026年9月まで)

プロトコル互換。実インスタンスでのテスト未実施。

18.0

はい

はい

はい(2027年9月まで)

プライマリターゲット。実インスタンスで検証済み、完全サポート。

19.0

はい

はい

はい(2028年9月まで)

プロトコル互換。実インスタンスでのテスト未実施。APIキーには説明と有効期限(最大3ヶ月)が必要です。

APIキー生成パス

APIキーを生成するには、Odooインスタンスにログインし、次の場所に移動します: 設定 / マイプロフィール → アカウントセキュリティ → 新しいAPIキー

トランスポートと非推奨に関する注意

クライアントは、ネイティブJSON-2 APIが/json/2/<model>/<method>で利用可能かどうかを自動的に検出し(Authorization: bearer <API_KEY>を使用)、利用できない場合はXML-RPCにフォールバックします。XML-RPCとJSON-RPCはOdoo 19で非推奨となり、Odoo 22で削除される予定です。

ソース

ツールとリソース

サーバーは19のツールと2つのリソースタイプを公開します:

ツール

  1. search_read:1回の呼び出しでレコードを検索して読み取ります(Odoo search_read)。

  2. read_record:IDで1つのレコードを読み取り、常に名前付きフィールドを使用します。

  3. count_records:ドメインに一致するレコードをカウントします(Odoo search_count)。

  4. instance_overview:接続されたインスタンスの概要(バージョン、会社、エリアごとのボリューム、社内モジュール、異常)を要約します。

  5. required_fields:モデルに対するcreateの前にOdooが要求するもの、適用されるデフォルト値、および既存のレコードが実際にどのように使用しているかをリストします。

  6. create_record:レコードを作成し、unique_onが指定されている場合は既存の一致を再利用します。

  7. write_record:1つのレコードにフィールド値を書き込み、実際に変更された内容を報告します。

  8. run_action:ワークフローメソッドを実行し、その後に残された状態を報告します。

  9. cancel_recordaction_cancelを使用してレコードをキャンセルし、返されたウィザードに従います。

  10. notify_user:レコードのチャッターでユーザーに通知します。デフォルトは内部通知です。

  11. create_activity:アクティビティをスケジュールします。期限を伴う唯一の通知です。

  12. download_docs:レコードのすべてのドキュメントをディスクに保存します(チャッターファイルを含む)。

  13. generate_pdf:レコードのPDFをレンダリングし、保存場所を返します。

  14. list_message_targets:メッセージを送信できる相手とその場所(プレゼンス(オンライン/離席/オフライン)を持つ内部ユーザー、および呼び出し元の開いている会話)をリストします。送信前にこれを問い合わせてください。

  15. read_conversation:Discussの会話を新しい順に読み取ります。

  16. send_direct_message:1対1のDiscussメッセージを送信し、ユーザーのチャットシステムトレイにリアルタイムで表示されます。メールは送信されず、通知設定に関係なくユーザーに届きます。

  17. send_channel_message:既存のDiscussチャンネルに投稿します。非従業員がいるルームは拒否します。

  18. explore_module:ライブインスタンスに問い合わせてモジュールの構造を発見します。

  19. list_known_modules:このサーバーが学習したモジュール(名前、生成日、レコード)をリストします。

ツール10-11(notify_usercreate_activity)はレコードに関する通知を行い、受信箱のベルに届きます。ツール14-17はDiscussの会話で、チャットシステムトレイに届きます。「ユーザーXにメッセージ」は2番目の種類で、notify_userではなくsend_direct_messageです。

リソース

  • odoo://skill:Odooアシスタントスキルの指示にアクセスします。

  • odoo://ref/*:探索されたモジュールの生成されたリファレンスドキュメントにアクセスします。

ホスト設定例

以下の各例には、重要なものだけが含まれています。2つの必須変数と天井です。天井は、このサーバーが書き込み可能かどうかを決定する唯一の設定で、人間が所有するファイルに表示されます。データベースとログインは自動検出され、3が天井のデフォルトです。引用符に注意してください。環境値は文字列です。

Claude Desktop

claude_desktop_config.jsonにこれを追加します:

{
  "mcpServers": {
    "odoo-assistant": {
      "command": "uvx",
      "args": [
        "odoo-assistant"
      ],
      "env": {
        "ODOO_BASE_URL": "https://mycompany.odoo.com",
        "ODOO_API_KEY": "your-api-key-here",
        "ODOO_MCP_MAX_LEVEL": "3"
      }
    }
  }
}

Cursor

.cursor/mcp.jsonに追加するか、Cursor設定UIで設定します:

{
  "mcpServers": {
    "odoo-assistant": {
      "command": "uvx",
      "args": [
        "odoo-assistant"
      ],
      "env": {
        "ODOO_BASE_URL": "https://mycompany.odoo.com",
        "ODOO_API_KEY": "your-api-key-here",
        "ODOO_MCP_MAX_LEVEL": "3"
      }
    }
  }
}

VS Code Copilot

VS Codeのsettings.jsonに追加します:

{
  "mcp.servers": {
    "odoo-assistant": {
      "command": "uvx",
      "args": [
        "odoo-assistant"
      ],
      "env": {
        "ODOO_BASE_URL": "https://mycompany.odoo.com",
        "ODOO_API_KEY": "your-api-key-here",
        "ODOO_MCP_MAX_LEVEL": "3"
      }
    }
  }
}

opencode

プロジェクトのopencode.jsonまたは.opencode/opencode.jsonに追加するか、~/.config/opencode/opencode.jsonに追加してサーバーをどこでも利用できるようにします:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "odoo-assistant": {
      "type": "local",
      "enabled": true,
      "command": [
        "uvx",
        "odoo-assistant"
      ],
      "timeout": 120000,
      "environment": {
        "ODOO_BASE_URL": "https://mycompany.odoo.com",
        "ODOO_API_KEY": "your-api-key-here",
        "ODOO_MCP_MAX_LEVEL": "3"
      }
    }
  }
}

opencodeの構造は上記のホストとは異なり、そのままでは拒否されます。キーはmcpmcpServersではない)、typeは必須、commandはプログラムとその引数を保持する単一の配列(別個のargsはありません)、環境ブロックはenvironmentenvではない)です。

timeoutは意図的に設定してください。デフォルトは5000 msで、セッションの最初の呼び出しは認証に加え、instance_overviewの場合は数十回のXML-RPCラウンドトリップが発生します。実インスタンスに対しては5秒を優に超えます。

opencodeは設定を起動時に一度だけ読み取り、ホットリロードしないため、編集後は終了して再起動してください。ここで変更した内容(天井を含む)は、次回起動時にのみ有効になります。

ChatGPT(カスタムコネクタ)

このサーバーをカスタムコネクタ経由でChatGPTに接続するには:

  1. 設定コネクタコネクタを追加 に移動します。

  2. サーバーURLを入力するか、レジストリから選択します。

  3. プロンプトが表示されたら、Odooの認証情報を入力します。

Hermes

Hermes CLIを使用してサーバーを追加します:

hermes mcp add odoo-assistant \
  --env ODOO_BASE_URL=https://mycompany.odoo.com \
  --env ODOO_API_KEY=your-api-key-here \
  --env ODOO_MCP_MAX_LEVEL=3 \
  --args run odoo-assistant

例ではオプションの変数は省略されています。インスタンスが複数のデータベースを提供する場合は ODOO_DB を、uidプローブをスキップする場合は ODOO_USER を、デフォルトの 3 から上限を変更する場合は ODOO_MCP_MAX_LEVEL を設定してください。

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細については LICENSE ファイルを参照してください。

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that enables AI assistants to interact with Odoo ERP apps like Inventory, CRM, Sales, and Manufacturing. It allows users to read, create, and manage Odoo records and workflows using natural language commands.
    25
    15
    1
    ISC
  • A
    license
    -
    quality
    D
    maintenance
    An extensible MCP server that integrates Odoo with LLMs to enable querying and managing business data like partners, quotations, and sales orders. It supports custom tool registration and multiple transport protocols for both local and remote communication.
    2
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    An MCP server that connects AI assistants to Odoo ERP instances via the built-in XML-RPC API without requiring any additional addons. It enables users to search, create, update, and manage Odoo records and models through natural language.
    238
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    An MCP server that enables AI assistants to interact with Odoo ERP, allowing natural language queries, record creation, updates, and deletions.
    LGPL 3.0

View all related MCP servers

Related MCP Connectors

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.

  • MCP server for AI dialogue using various LLM models via AceDataCloud

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/singleflo/odoo-assistant-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server