Skip to content

Gemini × Odoo (MCP)

The PLANA Odoo MCP server lets Gemini CLI — Google's open-source command-line AI agent — read and analyze your PLANA Business Cloud (Odoo) ERP in plain language. Ask "how much did we invoice last month?" or "which products are below their reorder point?" and Gemini queries Odoo for you and writes the answer.

It speaks MCP (the Model Context Protocol) over a single hosted endpoint:

https://mcp.planapulse.com/mcp

Using a different tool?

The same server works from any MCP client. See the guides for Claude and OpenCode.

Read-only and permission-scoped

The server can only read — it can search, count, group, and read records, but it can never create, change, or delete anything in Odoo. It connects as you, using your own Odoo API key, so you only ever see the data your Odoo account is already allowed to see.

Before you start

You need four things:

  1. A PLANA Business Cloud (Odoo) account — your normal Odoo login.
  2. Access granted by your PLANA administrator. Access is by invitation: an admin adds your Google email to the allowlist, binds it to your Odoo instance, and authorizes your Google sign-in. If you haven't been added yet, ask us to enable your account ↗.
  3. A recent Gemini CLI install — native OAuth for remote MCP servers needs an up-to-date version (npm update -g @google/gemini-cli).
  4. The server endpoint: https://mcp.planapulse.com/mcp.

How it works

Connecting is three steps, done once:

  ┌──────────────┐   1. add server   ┌─────────────────────┐   2. Google sign-in   ┌──────────┐
  │  Gemini CLI  │ ────────────────▶ │  mcp.planapulse.com │ ───── OAuth ─────────▶ │  Google  │
  │  (terminal)  │ ◀──────────────── │   (PLANA Odoo MCP)  │ ◀──── you are X ────── └──────────┘
  └──────────────┘    tools appear   └─────────────────────┘
                                              │ 3. your Odoo API key

                                       ┌──────────────┐
                                       │  Your Odoo   │  (read-only, as you)
                                       └──────────────┘
  1. Add the server to Gemini CLI's config.
  2. Sign in with Google — this proves who you are.
  3. Connect your Odoo by giving the server an Odoo API key — once — so it can read on your behalf.

Two Google sign-ins, on purpose

Gemini CLI signs in with Google to use Gemini itself; the step below is a separate Google sign-in that connects the PLANA Odoo MCP server. Use your allowlisted account for the MCP sign-in.

Step 1 · Add the server

Add the server in one command. --transport http is important — it tells Gemini CLI to use Streamable HTTP, and -s user makes it available in all your projects:

bash
gemini mcp add --transport http -s user plana-odoo https://mcp.planapulse.com/mcp
  • plana-odoo is just the local name for the server — call it whatever you like.

Or add it by hand to ~/.gemini/settings.json (user-wide) or .gemini/settings.json (this project only):

json
{
  "mcpServers": {
    "plana-odoo": {
      "httpUrl": "https://mcp.planapulse.com/mcp"
    }
  }
}

Use httpUrl, not url

Our server uses Streamable HTTP, which Gemini CLI selects via the httpUrl field. The url field is for legacy SSE servers and will fail to connect here.

Manage servers later with gemini mcp list, gemini mcp remove plana-odoo, and gemini mcp disable plana-odoo / enable.

Step 2 · Sign in with Google

Start Gemini CLI and check the server:

bash
gemini

In the session, run /mcp to see the server's status. If it needs authentication, trigger the sign-in:

/mcp auth plana-odoo

Your browser opens; sign in with the same Google account your administrator added to the allowlist and approve. Gemini CLI stores the resulting token and reuses it. Run /mcp again to confirm plana-odoo is CONNECTED and the odoo_* tools are listed.

Sign-in blocked or access denied?

  • "Access blocked / this app isn't verified" from Google → your Google account hasn't been authorized yet.
  • Signed in, but the server says access is denied → your email isn't on the allowlist (or was disabled).

Both are fixed by your administrator — contact us ↗. See Troubleshooting.

Step 3 · Connect your Odoo

Signing in proves who you are; the server still needs an Odoo API key to read data as you. You provide it once, and it's stored encrypted under your identity.

Ask Gemini to "get the Odoo setup instructions" (this calls the get_odoo_setup_instructions tool), or follow these steps in your Odoo:

  1. Open your Odoo instance in the browser and log in.
  2. Click your avatar (top-right) → My Profile (Preferences).
  3. Open the Account Security tab.
  4. Click New API Key. You may be asked to re-enter your password / 2FA.
  5. Name it (e.g. Plana MCP) and optionally set an expiry.
  6. Copy the key now — Odoo shows it only once.

Then give it to Gemini — say "set my Odoo credentials" and paste the key (this calls set_odoo_credentials). The key is validated against your Odoo and saved encrypted.

Check your connection

Ask Gemini to "check the connection status" (get_connection_status) at any time to see which Odoo instance you're connected to and whether your key is set.

That's it — you're connected. From now on Gemini can read your ERP whenever you ask.

What you can do

The server exposes a small set of generic, read-only tools. You rarely call them by name — just ask in plain language and Gemini picks the right one:

ToolWhat it does
odoo_list_models · odoo_get_fieldsDiscover what data exists and which fields are available
odoo_search_read · odoo_readRead records matching a filter, or by id
odoo_search_countCount records (cheap)
odoo_read_groupAggregate — sums, averages, counts — for reports
odoo_name_searchLook up a customer / product / account by name

Because the tools are generic, Gemini can build almost any report — accounting, sales, inventory, CRM — without a pre-built template. Things you can ask:

  • "How many open customer invoices do we have, and what's the total outstanding?"
  • "Break down this year's sales by month."
  • "Who are our top 10 customers by revenue this year?"
  • "Which products are below their reorder point right now?"
  • "Summarize overdue receivables by customer."

Troubleshooting

SymptomCauseFix
Google: "Access blocked / app isn't verified"Your Google account isn't authorized for sign-in yetAsk your administrator to authorize it — contact us ↗
Signed in, but "access denied"Your email isn't on the allowlist, or was disabledContact your administrator
"No Odoo instance is configured for you"Your account isn't bound to an Odoo instance yetContact your administrator
"Invalid API key / login" when setting credentialsWrong or expired key, or the login doesn't matchCreate a fresh API key in Odoo and set it again
Server won't connect / "MCP issues detected"Used url instead of httpUrl, or an old versionSwitch to httpUrl, update Gemini CLI, then run /mcp auth plana-odoo
Tools don't appearSign-in not completedRun /mcp auth plana-odoo, then /mcp to confirm
"This server is read-only" when asking to change dataBy design — the server cannot write to OdooMake changes directly in Odoo

FAQ

Can it change or delete anything in my Odoo?

No. The server is strictly read-only — it can search and read, but it cannot create, modify, or delete records.

What data can Gemini see?

Only what your Odoo user is permitted to see. It connects with your own API key, so your existing Odoo access rights apply unchanged.

Is my activity logged?

Yes. Each tool call is recorded in an audit log (who, which tool, which model, status, timing). The log stores metadata and short summaries only — never the contents of your ERP records.

Where is my API key stored?

Encrypted at rest, tied to your identity. You can replace it any time by creating a new key in Odoo and setting it again.

Which Odoo instance do I connect to?

The one your administrator assigned to your account. Each user is bound to a single Odoo instance — you don't choose it at connect time.

© PLANA Digital Ltd.