odoo-surface-mcp について
odoo-surface-mcpは、認証ユーザーの画面上の権限範囲でOdooを操作するMCPサーバーです。モデルの発見から計画、データ操作、ワークフローの参照までを段階的なツールで支援します。
主な機能
- 01ユーザー権限に基づく操作制限
- 02モデル、フィールド、アクションの発見
- 03レコードの取得、検索、グループ化
- 04レコードの作成、更新、操作
- 05ページ、添付ファイル、翻訳の管理
- 06スキルとワークフローの案内
活用シーン
- 01Odooの業務レコードの検索と更新
- 02レコードの現在状態に応じた操作
- 03Webページの作成や調整
- 04添付ファイルや翻訳の管理
MCP 対応
MCPサーバーとして、互換クライアントにOdooの発見、検索、操作ツールを提供します。アクセス範囲は認証ユーザーのOdoo権限に制限されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @suco/odoo-surface-mcpODOO_URLOdoo instance URL (e.g. https://myodoo.com)ODOO_DBOdoo database nameODOO_USERNAMEOdoo login usernameODOO_PASSWORDシークレットOdoo login passwordローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
36掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
OdooSurface MCP
AI エージェントが Odoo にユーザーと同等のアクセスで接続できます。認証済みユーザーがブラウザーで実行できる操作のみが可能です。
前提条件
- Node.js 18 以降(
npxが付属しているため、追加のインストールは不要です) - 稼働中の Odoo インスタンス(15.0 以降、CE または EE)。各呼び出しのバージョンごとの動作については、docs/compatibility.md を参照してください。
- MCP 対応クライアント(VS Code、Claude Desktop、Claude Code、Cursor など)
MCP クライアントの設定
MCP クライアントの設定ファイル(例:Claude Desktop の claude_desktop_config.json)に以下を追加します。
{
"mcpServers": {
"odoo-surface": {
"command": "npx",
"args": ["-y", "@suco/odoo-surface-mcp@latest"],
"env": {
"ODOO_URL": "http://localhost:8069",
"ODOO_DB": "your_database",
"ODOO_USER": "admin",
"ODOO_PASSWORD": "admin"
}
}
}
}
保存後、MCP クライアントを再起動してください。npx がパッケージを自動的にダウンロードして実行するため、追加のインストール手順は不要です。
認証
オプション A — .env ファイル(認証情報を MCP の設定ファイルに記載しない)
認証情報を MCP クライアントの JSON に記載する代わりに、MCP を実行するディレクトリに .env ファイルを作成します。
ODOO_URL=http://localhost:8069
ODOO_DB=your_database
ODOO_USER=admin
ODOO_PASSWORD=your_password
MCP クライアントの設定から env ブロックを削除してください。.env ファイルは自動的に読み込まれます。
オプション B — API キー(推奨、パスワードを保存しません)
Odoo 14 以降では、ユーザーはパスワードの代わりとなる個人用 API キーを生成できます。 各ユーザーが自分のアカウントからキーを生成します。管理者側のメニューはありません。
- MCP が認証に使用するユーザーとしてログインします
- ユーザーアバター(右上)をクリックし、Preferences を選択します
- Account Security タブを開きます
- API Keys の下にある New API Key をクリックします
- 求められたらパスワードを入力し、キーに名前を付けて、生成されたキーをコピーします
ODOO_PASSWORDとして使用します。実際のアカウントパスワードは保存されません
ODOO_URL=http://localhost:8069
ODOO_DB=your_database
ODOO_USER=admin
ODOO_PASSWORD=your_api_key_here
アカウントパスワードを変更せずに、同じ画面から API キーを個別に取り消すことができます。
高度な設定
複数の Odoo インスタンス
技術者は、複数の Odoo インスタンス(ローカル開発環境、ステージング、本番環境など)を使うことがよくあります。 各インスタンスには MCP 設定で固有の名前付きエントリーを割り当てます。それぞれが独立したプロセスとして実行され、 認証情報は完全に分離されます。AI クライアントからは、それぞれが個別のツール名前空間として認識されます。
{
"mcpServers": {
"odoo-local": {
"command": "npx",
"args": ["-y", "@suco/odoo-surface-mcp@latest"],
"env": {
"ODOO_URL": "http://localhost:8069",
"ODOO_DB": "dev",
"ODOO_USER": "admin",
"ODOO_PASSWORD": "dev_api_key"
}
},
"odoo-production": {
"command": "npx",
"args": ["-y", "@suco/odoo-surface-mcp@latest"],
"env": {
"ODOO_URL": "https://mycompany.odoo.com",
"ODOO_DB": "prod",
"ODOO_USER": "admin",
"ODOO_PASSWORD": "prod_api_key"
}
}
}
}
注:
.envファイルを使う方法(オプション A)は、複数インスタンスの設定では機能しません。どちらの プロセスも同じ作業ディレクトリを共有し、同じファイルを読み込むためです。代わりに、各エントリーにenvブロックを 設定してください。
デバッグモード
追加のツールを登録します:ping、echo、inspect_view、inspect_action、inspect_fields、dump_cache、clear_cache、restart_mcp。
"args": ["-y", "@suco/odoo-surface-mcp@latest", "--debug"]
ツール
| レイヤー | ツール |
|---|---|
| ガイダンス | list_skills, get_skills, find_skill, list_workflows, get_workflows |
| 検出 | get_models, get_model_actions, get_model_interface |
| 計画 | get_available_actions |
| 補助 | list_records, get_record, search_records, read_group, get_fields, get_defaults, get_filters, list_pages, get_page_arch, list_snippets, get_snippet, list_attachments, download_binary, fetch_and_upload, translation_get, translation_update, translation_audit |
| インテント | create, update, execute_action, archive, post_message, schedule_activity, create_page, set_page_arch, set_page_visibility, upload_binary |
アーキテクチャ
コア契約
エージェントが実行できるのは、認証済みユーザーがブラウザーで実行できる操作に限られます。範囲はユーザーのメニュー、ビュー、ACL によって制限され、それ以上の操作はできません。ツールの動詞は、生の ORM 操作ではなく、機能上の意図(公開、確認)を表します。検出は遅延的に行われ、エージェントは現在のプロンプトで必要なものだけを解決します。
階層化されたツールサーフェス
| レイヤー | 役割 | 呼び出すタイミング |
|---|---|---|
| 0 — ガイダンス | エージェントが複数ステップの操作の前に参照する、標準的な手順(スキル、ワークフロー)です。副作用のない純粋なドキュメントです。 | 計画の前 |
| 1 — 検出 | 現在のユーザーが利用できるモデルと、到達可能な関連の範囲を特定します。 | 意図の解決時 |
| 2 — 計画ブリッジ | 「この特定のレコードで、現時点で有効なものは何か」に答える、レコードの状態を考慮したアクションです。 | レコードの特定後 |
| 3 — サポート | エージェントの計画に不足している情報を補うため、表立たずに使われる読み取り専用のデータ取得ツールです。 | 計画中を通じて |
| 4 — 意図 | ユーザーのリクエストを満たす変更操作です。ユーザーの UI 権限の範囲に制限されます。 | 最終実行 |
計画ループ
User prompt
├── Discovery — what models/relations does this user have?
├── (optional) — locate the specific record
├── Planning Bridge — what is live on that record right now?
├── Guidance — consult skills/workflows for multi-step recipes
└── Intent — execute the mutation(s)
スキルとワークフローは skills/ と workflows/ に YAML フロントマター付きの Markdown として記述され、実行時にレイヤー 0 のツールとして公開されます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。