Aidoo for Odoo

ai.aidooPublished by aidoo.aiOfficial publisherv1.0.0Updated Oct 24, 2026

Query and update your Odoo ERP in plain language, under your own Odoo access rules.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowBusiness & Commerce

Overview

AI-generated overview

Connects an AI assistant to an Odoo ERP through Aidoo, letting it query, create and update Odoo records in plain language under the user's Odoo permissions.

What you can do
Query Odoo records such as quotations, contacts and invoices in plain language, with a context tool for orientation and a print tool for generating documents like invoice PDFs (aidoo_context, aidoo_print, aidoo_query). Create new Odoo records such as contacts and other entries (aidoo_create). Update existing Odoo records, subject to the permissions carried by the API key. Reach the hosted Aidoo MCP server either directly over HTTP/SSE or through the small stdio bridge package, which relays MCP messages unchanged.
When to use it
Useful when an assistant should work with live Odoo business data — looking up quotations, contacts or invoices, creating records, or producing document PDFs — without giving the assistant direct Odoo credentials.
Requirements
A remote endpoint at mcp.aidoo.ai, reachable over outbound HTTPS on port 443. An Aidoo account with a linked Odoo connection and an Aidoo API key (prefixed aid_live_) supplied via the AIDOO_API_KEY environment variable or the --api-key flag. The optional stdio bridge needs Python 3.10+ (uvx, pipx or pip) or Node.js 18+ (npx). OAuth is supported for direct remote connections.
Before you install
The AIDOO_API_KEY is a bearer credential sent over HTTPS and masked in logs; use one key per person, never a shared key, and revoke it from the dashboard if in doubt. The assistant can create and update Odoo records, so grant only the permissions the assistant needs; the tool list follows the key's permissions. Odoo credentials stay in Aidoo and are not seen by the bridge.

Installation

In SourceWeft

  1. Open Aidoo for Odoo in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/ai.aidoo%2Faidoo/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "aidoo-for-odoo": {
      "type": "http",
      "url": "https://mcp.aidoo.ai/mcp"
    }
  }
}

README

aidoo-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.

[PyPI] [Python] [License]

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:

bash
uvx aidoo-mcp --check

Or install it:

bash
pipx install aidoo-mcp# orpip install aidoo-mcp

Prefer Node over Python? The npm/ directory ships the same bridge for npx, with no Python dependency:

bash
npx aidoo-mcp --check

Check your setup

bash
export AIDOO_API_KEY=aid_live_your_key_hereaidoo-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:

json
{  "mcpServers": {    "aidoo": {      "command": "uvx",      "args": ["aidoo-mcp"],      "env": { "AIDOO_API_KEY": "aid_live_your_key_here" }    }  }}

Cursor

~/.cursor/mcp.json:

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:

json
{  "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:

bash
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]
OptionEnvironment variableDefault
--api-keyAIDOO_API_KEYrequired
--urlAIDOO_MCP_URLhttps://mcp.aidoo.ai/mcp
--transportAIDOO_MCP_TRANSPORTinferred from the URL path
--timeoutAIDOO_MCP_TIMEOUT60
--retries3

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

bash
uv syncuv run pytestuv run ruff check .uv run ruff format --check .

License

MIT. See LICENSE.

Source: README.md at commit 6d9bf15

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v1.0.0LatestSep 22, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts