# How to connect Claude Code to live Odoo through MCP

Published: 2026-08-27
Last updated: 2026-08-27
Canonical: https://erpipe.com/guides/connect-claude-code-to-odoo
MCP endpoint: https://mcp.erpipe.com/mcp

## Answer first

Add ERPipe as a user-scoped remote HTTP server, complete Claude Code's browser OAuth flow, then check the saved connection:

```text
claude mcp add --transport http --scope user erpipe https://mcp.erpipe.com/mcp
claude mcp login erpipe
claude mcp get erpipe
```

Start with read access. Do not paste an Odoo password, dashboard cookie, bearer token, or static authorization header into Claude Code. ERPipe keeps the Odoo credential behind the workspace connection and gives Claude a governed MCP tool path.

## Prerequisites

- Claude Code 2.1.186 or newer for the shell-level `claude mcp login` command.
- An [ERPipe workspace](/app/login) with one reachable HTTPS Odoo connection.
- A dedicated Odoo user whose groups and record rules match the work Claude should be able to see.
- A browser for OAuth consent, or an interactive SSH terminal for the headless flow.

## Steps

1. **Add the remote server.** Run `claude mcp add --transport http --scope user erpipe https://mcp.erpipe.com/mcp`. HTTP is Claude Code's recommended transport for remote MCP servers.
2. **Authenticate.** Run `claude mcp login erpipe`. Complete the ERPipe workspace consent in the browser. Leave write access ungranted for the first connection.
3. **Inspect the result.** Run `claude mcp get erpipe` or open `/mcp` inside Claude Code. The server should show the canonical URL and a connected state.
4. **Choose an Odoo instance.** Ask Claude to list the instances available to the signed-in workspace and use one explicit instance key. Do not let it assume a default database.
5. **Run one read-only check.** Ask for connection health, then search a small, known record set. Compare the result with Odoo before expanding the task.

The complete multi-client setup contract and copy-ready agent prompt remain on the [connector page](/docs/connector).

## User scope or project scope?

The command above uses `--scope user`, which stores a private cross-project server entry for your local user. It is the simpler default when the same operator uses ERPipe from several repositories.

Use `--scope project` only when the endpoint configuration should live in the repository's `.mcp.json` for the team. Claude Code asks people to trust and approve project-scoped servers. Commit the endpoint, never credentials or tokens.

## Headless or SSH login

If Claude Code cannot open a local browser, run:

```text
claude mcp login erpipe --no-browser
```

Open the printed authorization URL on your local machine, finish consent, then paste the full redirect URL back into the interactive terminal. Claude Code's official guidance requires a terminal that can accept that paste step; use an interactive SSH session.

## Expected result

`claude mcp get erpipe` should identify a remote HTTP server at `https://mcp.erpipe.com/mcp` and report it as connected after OAuth. Inside Claude Code, `/mcp` should list the server and its available tools.

Connection does not mean unrestricted Odoo access. Odoo ACLs remain authoritative, every Odoo-bound action uses an explicit instance key, and writes remain off until the workspace owner enables them.

## Safe first prompts

- List the Odoo instances available to this workspace. Do not choose one implicitly.
- On the instance I select, verify the connection and tell me which Odoo version and company context you can see.
- Find at most ten open customer invoices for Acme. Read only; do not prepare or execute a write.
- Show me the model facts you will rely on before you construct a structured domain.

## Troubleshooting

- **“Server already exists.”** Inspect it with `claude mcp get erpipe`. If it already points to the canonical endpoint, keep it; do not create a duplicate.
- **Needs authentication.** Run `claude mcp login erpipe` or open `/mcp`, select ERPipe, and follow the browser flow.
- **Browser does not open.** Use `claude mcp login erpipe --no-browser` in an interactive terminal.
- **Project server is pending approval.** Start Claude Code in the repository, trust the workspace, and approve the `.mcp.json` server. User-scoped setup does not need a committed project entry.
- **No Odoo instances appear.** Sign in to the ERPipe dashboard and confirm the connection is enabled and its live probe succeeds.
- **An Odoo access error appears.** Fix the dedicated user's groups or record rules in Odoo. Do not widen gateway policy to conceal an ACL problem.
- **A write remains unavailable.** This is expected on the read-only grant. The owner must explicitly enable writes on the target connection and grant write access during consent.

## Evidence and limits

The three commands above were syntax-checked on 2026-08-27 with installed Claude Code 2.1.235 and compared with Anthropic's current MCP documentation. This local content pass did not perform a fresh ERPipe OAuth end-to-end login, so the guide is labelled syntax-checked rather than OAuth-verified.

Vendor reference: [Claude Code — Connect to tools via MCP](https://code.claude.com/docs/en/mcp).

## FAQ

- **Do I need a local Odoo MCP process?** No. Claude Code connects to ERPipe's remote HTTP endpoint; ERPipe connects to the Odoo instance registered in your workspace.
- **Should I add an Authorization header?** No. Use Claude Code's native OAuth flow. Static headers create a second credential path and can prevent OAuth fallback.
- **Why use user scope?** It keeps one private ERPipe entry available across your local projects. Use project scope only when the team should share the endpoint configuration.
- **Can I use this over SSH?** Yes. Use `--no-browser`, open the URL locally, and paste the redirect URL back into an interactive SSH terminal.
- **Does Claude receive my Odoo password?** No. The Odoo credential stays on the ERPipe workspace connection. Claude receives a workspace-bound OAuth grant.
- **Can Claude write immediately after login?** No. The first grant should stay read-only. Writes require both owner configuration and write consent, and may still wait for owner approval.

## Related

- [What is an Odoo MCP server?](/guides/what-is-odoo-mcp)
- [Local process, native addon, or remote gateway?](/guides/odoo-mcp-server-architecture)
- [Why Odoo ACLs are not enough for AI writes](/guides/human-approval-odoo-ai-writes)
- [All client recipes](/docs/connector)
- [Hosted tool catalog](/tools)
