About Aidoo for Odoo
aidoo-mcp is a stdio bridge for connecting MCP clients to Odoo through Aidoo. It lets assistants query and modify records using the permissions of an Aidoo API key, while Odoo credentials remain with Aidoo.
Key features
- 01Relays MCP messages to the hosted Aidoo server
- 02Queries, creates, and updates Odoo records
- 03Uses permissions associated with the API key
- 04Supports Python and Node.js builds
- 05Setup check lists available tools
Use cases
- 01Find pending quotations in Odoo
- 02Create an Odoo contact
- 03Generate an invoice PDF
- 04Connect a stdio-only client to Aidoo
MCP support
The bridge connects an MCP client over stdio to Aidoo's hosted MCP server over HTTPS, relaying protocol messages without modifying payloads. Aidoo then connects to Odoo.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.aidoo.ai/mcpclaude mcp add --transport http ai-aidoo-aidoo https://mcp.aidoo.ai/mcp{"mcpServers":{"ai-aidoo-aidoo":{"type":"http","url":"https://mcp.aidoo.ai/mcp"}}}Open in Cursor{"servers":{"ai-aidoo-aidoo":{"type":"http","url":"https://mcp.aidoo.ai/mcp"}}}Open in VS Code{"mcpServers":{"ai-aidoo-aidoo":{"type":"http","url":"https://mcp.aidoo.ai/mcp"}}}{"mcpServers":{"ai-aidoo-aidoo":{"serverUrl":"https://mcp.aidoo.ai/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
https://mcp.aidoo.ai/mcphttps://mcp.aidoo.ai/sseTools
Details
From the project READMEaidoo-mcp
Connect any MCP client to your Odoo ERP through Aidoo.
aidoo-mcp is a small stdio bridge. It takes an Aidoo API key, opens an authenticated
session against the hosted Aidoo MCP server, and relays the Model Context Protocol
messages in both directions. Your assistant then queries, creates and updates Odoo
records in plain language, under the permissions carried by the key.
Why a bridge
The Aidoo MCP server is hosted at https://mcp.aidoo.ai, and clients that support
remote connectors with OAuth or custom headers can reach it directly, with nothing to
install. Many MCP clients still speak stdio only, or offer no way to set an
Authorization header. This bridge fills that gap: one command, no local server,
no Odoo credentials on your machine.
MCP client <--stdio--> aidoo-mcp <--HTTPS--> Aidoo <--XML-RPC--> Odoo
The bridge is transparent. It never rewrites payloads, so every tool your workspace exposes is available the moment Aidoo ships it, with no update needed here.
Requirements
- Python 3.10+ (or Node.js 18+, see the Node build below)
- An Aidoo account with an Odoo connection
- An Aidoo API key, prefixed
aid_live_, created from the API keys page of your workspace
Install
Run it without installing anything, with uv:
uvx aidoo-mcp --check
Or install it:
pipx install aidoo-mcp
# or
pip install aidoo-mcp
Prefer Node over Python? The npm/ directory ships the same bridge for
npx, with no Python dependency:
npx aidoo-mcp --check
Check your setup
export AIDOO_API_KEY=aid_live_your_key_here
aidoo-mcp --check
The command verifies that the endpoint answers, performs the MCP handshake and prints the tools your key grants:
[aidoo-mcp] https://mcp.aidoo.ai/health is reachable
[aidoo-mcp] authenticated with https://mcp.aidoo.ai/mcp (transport=http, key=aid_live_...cdef)
[aidoo-mcp] 8 tools available: aidoo_context, aidoo_create, aidoo_print, aidoo_query, ...
Configure your client
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json on macOS,
%APPDATA%\Claude\claude_desktop_config.json on Windows:
{
"mcpServers": {
"aidoo": {
"command": "uvx",
"args": ["aidoo-mcp"],
"env": { "AIDOO_API_KEY": "aid_live_your_key_here" }
}
}
}
Cursor
~/.cursor/mcp.json:
{
"mcpServers": {
"aidoo": {
"command": "uvx",
"args": ["aidoo-mcp"],
"env": { "AIDOO_API_KEY": "aid_live_your_key_here" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json, same block as Cursor.
VS Code
.vscode/mcp.json in your workspace:
{
"servers": {
"aidoo": {
"type": "stdio",
"command": "uvx",
"args": ["aidoo-mcp"],
"env": { "AIDOO_API_KEY": "aid_live_your_key_here" }
}
}
}
Any other stdio client
Point it at the aidoo-mcp executable and pass the key through the environment. If the
client cannot set environment variables, use the flag instead:
aidoo-mcp --api-key aid_live_your_key_here
Cursor, Windsurf and any client that does accept custom headers can also skip the
bridge entirely and target https://mcp.aidoo.ai/sse with an Authorization header.
See the Aidoo documentation.
Usage
aidoo-mcp [--api-key KEY] [--url URL] [--transport {http,sse}]
[--timeout SECONDS] [--retries N] [--check] [--quiet]
| Option | Environment variable | Default |
|---|---|---|
--api-key | AIDOO_API_KEY | required |
--url | AIDOO_MCP_URL | https://mcp.aidoo.ai/mcp |
--transport | AIDOO_MCP_TRANSPORT | inferred from the URL path |
--timeout | AIDOO_MCP_TIMEOUT | 60 |
--retries | 3 |
Logs go to stderr, so they never interfere with the protocol stream on stdout. Exit
code 2 means a configuration problem, 1 a connection that could not be established.
Ask your assistant
List the five quotations I sent last week that are still pending.
Create a contact for Martin Dupont at Dupont SA, [email protected].
Generate the PDF of invoice INV/2026/0042.
Security
- The key is read from the environment or the command line and sent as a bearer token over HTTPS. It is masked in every log line.
- Odoo credentials stay in Aidoo. The bridge never sees them, and never talks to Odoo.
- Each key carries its own permissions, and every call runs under the Odoo access rules of the linked user. Grant only what the assistant needs.
- Use one key per person, never a shared key, and revoke it from the dashboard if in doubt.
- Report a vulnerability privately: see SECURITY.md.
Troubleshooting
No API key found The AIDOO_API_KEY variable did not reach the process. Client
configuration files often ignore your shell profile, so set the key in the env block
shown above.
Handshake fails with 401 The key was revoked, or its MCP permissions are disabled. Check it on the API keys page of your workspace.
The tool list is shorter than expected Tools follow the permissions of the key. Grant the missing ones, then restart your client.
Nothing happens in the client Restart the client completely after editing its
configuration, then look at its MCP logs. aidoo-mcp --check tells you within seconds
whether the problem is on your side or ours.
A corporate network blocks the connection The bridge needs outbound HTTPS on port
443 to mcp.aidoo.ai. Try --transport sse if an intermediate proxy mishandles
streamable HTTP.
Development
uv sync
uv run pytest
uv run ruff check .
uv run ruff format --check .
License
MIT. See LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.