Odoo MCP Server について
Odoo MCP ServerはJSON-RPCでOdoo 18.0に接続し、Odoo Extract APIでOCRを行います。モデルレコードの読み取りや変更に加え、書類の解析も実行できます。
主な機能
- 01利用可能なモデルとフィールドの確認
- 02レコードの検索と読み取り
- 03レコードの作成・更新・削除
- 04書類のOCR解析を開始
- 05解析結果の取得
活用シーン
- 01検索前にOdooのモデル構造を確認
- 02パートナーレコードの検索と更新
- 03Odooレコードの作成や削除
- 04書類から請求書データを抽出
MCP 対応
Odooのモデル確認やレコード操作、書類解析のツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Odoo MCP Server
Odoo 18.0(JSON-RPC)および OCR 文書解析用の Odoo Extract API に、安全かつ高レベルでアクセスできます。
🚀 Cline ですぐに始める
-
リポジトリをクローンします:
git clone https://github.com/onlybets/odoo-mcp-server-unofficial.git cd odoo-mcp-server-unofficial -
認証情報を設定します:
cp .env.example .env # Edit .env and fill in your Odoo/Extract credentials -
Cline で実行します(セルフホストは不要です):
- Cline がサーバーをローカルで自動実行します。
- Cline でリポジトリを開き、ツールを使い始めてください。
🛠️ ツールと JSON スキーマ
1. list_models
現在のユーザーに表示されるモデルを返します。
入力: なし
出力:
[
{"model": "res.partner", "name": "Contact"},
{"model": "crm.lead", "name": "Lead"}
]
2. get_fields
モデルのフィールドとメタデータを返します。
入力:
{ "model": "res.partner" }
出力:
{
"id": {"string": "ID", "type": "integer", "required": true, "readonly": true},
"name": {"string": "Name", "type": "char", "required": true, "readonly": false}
}
3. search_read
モデルのレコードを検索して読み取ります。
入力:
{
"model": "res.partner",
"domain": [["is_company", "=", true]],
"fields": ["id", "name", "email"],
"limit": 10
}
出力:
[
{"id": 7, "name": "Acme Corp", "email": "[email protected]"}
]
4. create_record
モデルに新しいレコードを作成します。
入力:
{
"model": "res.partner",
"values": {"name": "New Partner", "email": "[email protected]"}
}
出力:
{ "id": 42 }
5. update_record
モデルの1つ以上のレコードを更新します。
入力:
{
"model": "res.partner",
"ids": [42],
"values": {"email": "[email protected]"}
}
出力:
{ "success": true }
6. delete_record
モデルの1つ以上のレコードを削除します。
入力:
{
"model": "res.partner",
"ids": [42]
}
出力:
{ "success": true }
7. extract_parse
文書抽出ジョブを開始します。
入力:
{
"document_base64": "<base64-encoded-pdf>",
"doc_type": "invoice",
"version": "18.0"
}
出力:
{ "document_token": "abc123", "status": "processing" }
8. extract_get_result
文書抽出ジョブの結果を取得します。
入力:
{
"doc_type": "invoice",
"version": "18.0",
"document_token": "abc123"
}
出力:
{
"status": "done",
"data": { "invoice_number": "INV-001", "total": 123.45 }
}
🐳 Docker Compose
- すべてのサービスを次のコマンドで実行します:
docker-compose up --build - ローカルでの開発とテストに、そのまま使用できます。
🧪 CI/CD
- GitHub Actions ワークフロー(
.github/workflows/ci.yml)では、次を実行します:pylint(利用可能な場合は Odoo プラグインを使用)pytest(スモークテストを実行)
- Python 3.11 以降のマトリックスを使用します。
📄 ライセンス
MIT License。LICENSE を参照してください。
MCP Server — Model Context Protocol
https://modelcontextprotocol.org/
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。