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/mcpUsing 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:
- A PLANA Business Cloud (Odoo) account — your normal Odoo login.
- 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 ↗.
- A recent Gemini CLI install — native OAuth for remote MCP servers needs an up-to-date version (
npm update -g @google/gemini-cli). - 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)
└──────────────┘- Add the server to Gemini CLI's config.
- Sign in with Google — this proves who you are.
- 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:
gemini mcp add --transport http -s user plana-odoo https://mcp.planapulse.com/mcpplana-odoois 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):
{
"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:
geminiIn the session, run /mcp to see the server's status. If it needs authentication, trigger the sign-in:
/mcp auth plana-odooYour 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:
- Open your Odoo instance in the browser and log in.
- Click your avatar (top-right) → My Profile (Preferences).
- Open the Account Security tab.
- Click New API Key. You may be asked to re-enter your password / 2FA.
- Name it (e.g.
Plana MCP) and optionally set an expiry. - 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:
| Tool | What it does |
|---|---|
odoo_list_models · odoo_get_fields | Discover what data exists and which fields are available |
odoo_search_read · odoo_read | Read records matching a filter, or by id |
odoo_search_count | Count records (cheap) |
odoo_read_group | Aggregate — sums, averages, counts — for reports |
odoo_name_search | Look 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
| Symptom | Cause | Fix |
|---|---|---|
| Google: "Access blocked / app isn't verified" | Your Google account isn't authorized for sign-in yet | Ask your administrator to authorize it — contact us ↗ |
| Signed in, but "access denied" | Your email isn't on the allowlist, or was disabled | Contact your administrator |
| "No Odoo instance is configured for you" | Your account isn't bound to an Odoo instance yet | Contact your administrator |
| "Invalid API key / login" when setting credentials | Wrong or expired key, or the login doesn't match | Create 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 version | Switch to httpUrl, update Gemini CLI, then run /mcp auth plana-odoo |
| Tools don't appear | Sign-in not completed | Run /mcp auth plana-odoo, then /mcp to confirm |
| "This server is read-only" when asking to change data | By design — the server cannot write to Odoo | Make 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.