Odoo MCP サーバー
Odoo ERP システムと統合する MCP サーバー実装。AI アシスタントがモデル コンテキスト プロトコルを通じて Odoo のデータや機能と対話できるようになります。
特徴
- 包括的なOdoo統合:Odooモデル、レコード、メソッドへのフルアクセス
- XML-RPC 通信: XML-RPC 経由の Odoo インスタンスへの安全な接続
- 柔軟な構成: 構成ファイルと環境変数のサポート
- リソースパターンシステム: Odooデータ構造へのURIベースのアクセス
- エラー処理: 一般的な Odoo API の問題に関する明確なエラーメッセージ
- ステートレス操作: 信頼性の高い統合のためのクリーンなリクエスト/レスポンス サイクル
ツール
- 実行メソッド
- Odoo モデルでカスタムメソッドを実行する
- 入力:
model
(文字列): モデル名 (例: 'res.partner')method
(文字列): 実行するメソッド名args
(オプション配列): 位置引数kwargs
(オプションオブジェクト): キーワード引数
- 戻り値: メソッドの結果と成功インジケータを含む辞書
- 従業員検索
- 名前で従業員を検索する
- 入力:
name
(文字列): 検索する名前(または名前の一部)limit
(オプションの数値): 返される結果の最大数 (デフォルトは 20)
- 戻り値: 成功インジケータ、一致する従業員名とIDのリスト、およびエラーメッセージを含むオブジェクト
- 検索休日
- 指定した日付範囲内の休日を検索します
- 入力:
start_date
(文字列): 開始日(YYYY-MM-DD形式)end_date
(文字列): 終了日(YYYY-MM-DD形式)employee_id
(オプションの数値):休日をフィルタリングするためのオプションの従業員ID
- 戻り値: 成功インジケータ、見つかった休日のリスト、およびエラーメッセージを含むオブジェクト
リソース
- odoo://モデル
- Odoo システムで利用可能なすべてのモデルを一覧表示します
- 戻り値: モデル情報のJSON配列
- odoo://model/{モデル名}
- フィールドを含む特定のモデルに関する情報を取得する
- 例:
odoo://model/res.partner
- 戻り値: モデルメタデータとフィールド定義を含むJSONオブジェクト
- odoo://record/{モデル名}/{レコードID}
- IDで特定のレコードを取得する
- 例:
odoo://record/res.partner/1
- 戻り値: レコードデータを含むJSONオブジェクト
- odoo://search/{モデル名}/{ドメイン}
- ドメインに一致するレコードを検索する
- 例:
odoo://search/res.partner/[["is_company","=",true]]
- 戻り値: 一致するレコードの JSON 配列 (デフォルトでは 10 に制限されます)
構成
Odoo接続設定
odoo_config.json
という名前の設定ファイルを作成します。
{
"url": "https://your-odoo-instance.com",
"db": "your-database-name",
"username": "your-username",
"password": "your-password-or-api-key"
}
- あるいは、環境変数を使用します。
ODOO_URL
: Odoo サーバーの URLODOO_DB
: データベース名ODOO_USERNAME
: ログインユーザー名ODOO_PASSWORD
: パスワードまたはAPIキーODOO_TIMEOUT
: 接続タイムアウト(秒)(デフォルト: 30)ODOO_VERIFY_SSL
: SSL証明書を検証するかどうか(デフォルト: true)HTTP_PROXY
: ODOO 接続に HTTP プロキシを使用するように強制します
Claude Desktopでの使用
これをclaude_desktop_config.json
に追加します:
{
"mcpServers": {
"odoo": {
"command": "python",
"args": [
"-m",
"odoo_mcp"
],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_DB": "your-database-name",
"ODOO_USERNAME": "your-username",
"ODOO_PASSWORD": "your-password-or-api-key"
}
}
}
}
ドッカー
{
"mcpServers": {
"odoo": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ODOO_URL",
"-e",
"ODOO_DB",
"-e",
"ODOO_USERNAME",
"-e",
"ODOO_PASSWORD",
"mcp/odoo"
],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_DB": "your-database-name",
"ODOO_USERNAME": "your-username",
"ODOO_PASSWORD": "your-password-or-api-key"
}
}
}
}
インストール
Pythonパッケージ
サーバーの実行
# Using the installed package
odoo-mcp
# Using the MCP development tools
mcp dev odoo_mcp/server.py
# With additional dependencies
mcp dev odoo_mcp/server.py --with pandas --with numpy
# Mount local code for development
mcp dev odoo_mcp/server.py --with-editable .
建てる
Dockerビルド:
docker build -t mcp/odoo:latest -f Dockerfile .
Odoo 用の MCP ツールを使用する場合は、次のパラメータ書式設定ガイドラインに注意してください。
- ドメインパラメータ:
- 次のドメイン形式がサポートされています。
- リスト形式:
[["field", "operator", value], ...]
- オブジェクト形式:
{"conditions": [{"field": "...", "operator": "...", "value": "..."}]}
- いずれかの形式のJSON文字列
- 例:
- リスト形式:
[["is_company", "=", true]]
- オブジェクト形式:
{"conditions": [{"field": "date_order", "operator": ">=", "value": "2025-03-01"}]}
- 複数の条件:
[["date_order", ">=", "2025-03-01"], ["date_order", "<=", "2025-03-31"]]
- フィールドパラメータ:
- フィールド名の配列である必要があります:
["name", "email", "phone"]
- サーバーは文字列入力をJSONとして解析しようとします
ライセンス
この MCP サーバーは MIT ライセンスに基づいてライセンスされます。