odoo-assistant-mcp: Instructions file for Codex

AGENTS.md

odoo-assistant-mcp AGENTS.md is an instructions file for Codex, OpenCode from singleflo/odoo-assistant-mcp. It costs 2,070 tokens per session, scanned A, original, MIT.

A set of project instructions for developing and releasing an Odoo assistant MCP server. Odoo is business software, and MCP is a standard way for an AI agent to use external tools and resources.

In plain words
What is it for?
Use it when working on the server’s code, tests, packaging, authentication, or release checklist. It points to the project’s local documentation and test commands.
Why use it?
It tells an agent which specifications, source files, tests, and release steps to consult before changing the project.

Instructions file for CodexOpenCode

Written for Codex and OpenCode: the file is AGENTS.md. Also seen: mentions AGENTS.md; mentions OpenCode.

This is singleflo/odoo-assistant-mcp's own configuration. It tells Codex and OpenCode how to work on odoo-assistant-mcp itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything odoo-assistant-mcp configures →

Reuse

Borrowing it

Nothing to install: this file belongs to singleflo/odoo-assistant-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/singleflo/odoo-assistant-mcp/main/AGENTS.md
Clone the repo
git clone --depth 1 https://github.com/singleflo/odoo-assistant-mcp

Made for: Codex, OpenCode.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for odoo-assistant-mcp AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/singleflo/odoo-assistant-mcp/agents-md/github.svg)](https://agentmods.dev/instructions/singleflo/odoo-assistant-mcp/agents-md)
Your own site
<a href="https://agentmods.dev/instructions/singleflo/odoo-assistant-mcp/agents-md"><img src="https://agentmods.dev/badge/instructions/singleflo/odoo-assistant-mcp/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for odoo-assistant-mcp AGENTS.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/singleflo/odoo-assistant-mcp/agents-md"><img src="https://agentmods.dev/badge/instructions/singleflo/odoo-assistant-mcp/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 2,070 This file is loaded in full into every session.
When invoked 2,070 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.02070 $0.02070
Opus 5.5 $0.00828 $0.00828
Sonnet 5.5 $0.00414 $0.00414
Haiku 4.5 $0.00207 $0.00207

Measured 1mo ago against content hash 0d319362e08b, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

odoo-assistant-mcp AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 83 lines

How it starts

The opening of the file, as written. The whole thing — 83 lines — stays where its author put it; the contents beside it link to each section on GitHub.

AGENTS.md — odoo-assistant-mcp

MCP server (stdio) that wraps 9 verified Odoo scripts as 22 tools + 8 resources. Shipped and complete; published on PyPI as version 0.1.1 and installable with uvx odoo-assistant.

Read before coding

  • docs/PRD.md — the spec: tools (§5B), auth (§6), safety mapping (§7), packaging (§10). Written before the build, so it trails the code: it says 14 tools and two sections are marked superseded. Trust the code first.
  • docs/mcp-spec/ — the ENTIRE MCP 2026-07-28 spec, vendored (144 files). Consult it instead of the web.
  • docs/RELEASE-CHECKLIST.md — the only work left, and all of it needs a human: PyPI Trusted Publishing, then the tag.
  • docs/json2-source/ — the Odoo module behind /json/2. odoo_client.py probes that transport first and falls back to XML-RPC, which Odoo 19 deprecates and 22 removes, so this is the reference for the path that becomes primary.
  • references/BUILD-STATE.md — sanity figures for the dev instance

Commands

uv run pytest                       # 227 tests. addopts already excludes live+wheel
uv build && uv run pytest -m wheel  #   3 tests. needs dist/ AND network (uvx)
uv run pytest -m live               #   6 tests. needs the env vars below

Never write -m "not live". A -m on the command line replaces addopts instead of narrowing it, so that spelling silently re-enables the wheel tests and they fail on a clean checkout with no dist/. CI spells it in full: -m "not live and not wheel".

Protocol check: npx @modelcontextprotocol/inspector against the server.

Hard rules

  • Never rewrite src/odoo_assistant/odoo_scripts/. Those 9 scripts are verified against a live instance and are the source of truth; the server is a thin wrapper importing them. They came from an agent skill that has been retired, so this repo is the canonical copy — scripts/sync-from-skill.sh has no upstream left and exits 1. Fix a bug there only with a live test proving it; otherwise adapt the wrapper.
  • Scripts are flat modules: each does sys.path.insert(0, <own dir>) + from odoo_client import .... Keep that import style working when packaging.
  • SDK: from mcp.server import MCPServer (SDK 2.0, pinned mcp[cli]>=2.0.0,<3). MCPServer(...) defaults version to "" — pass it explicitly or every host displays an empty version.
  • Module decomposition: server.py stays thin. Tools and resources live in tools_read.py / tools_write.py / tools_collab.py / tools_discuss.py / tools_evolution.py / resources.py, each exposing register(mcp), wired by server._register_all(). Adding a tool means updating the three tests that assert the exact tool set. tools_collab.py notifies ABOUT a record (Inbox bell); tools_discuss.py is user-to-user conversation (chat systray) — "message X" is the second, and its channel_get is the one method the verified safety_layer.py was extended to admit (L1).
  • explore_module.REF_DIR redirect needs the package-qualified import (from odoo_assistant.odoo_scripts import explore_module) so the patch is visible to every importer. See tools_evolution.py's docstring.
  • Wheel bundles references_public/ only (scrubbed, generic). references/ holds the instance-specific set and is excluded.
  • stdio transport: nothing may reach stdout but the JSON-RPC stream. Diagnostics go to stderr.
  • Every write passes server_safety.gate(), which decides by METHOD NAME against two operator-owned lists: ODOO_MCP_ALLOW (* by default, none for read-only, else entries spelled method or model:method) and ODOO_MCP_DENY (DEFAULT_DENY when unset; a value set REPLACES it). Matching is exact string equality, deny wins over allow, and reads are never subject to either list. unlink is decided before both lists and only ODOO_MCP_ALLOW_UNLINK=yes grants it. All three are read at CALL time. Host consent dialogs are untrusted — the gate is the only enforcement point.

Read the full file on GitHub · 83 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago Changed 0d319362e08b
  2. 1mo ago Changed · +53 tokens per session 6ddf25fa0bbc
  3. 2mo ago First seen · 83 lines · 2,017 tokens per session scan A d58fdafe4eef

Subscribe to this mod's changes

odoo-assistant-mcp AGENTS.md is an instructions file published in the GitHub repository singleflo/odoo-assistant-mcp (1 stars, last pushed 15d ago), licensed MIT. It adds 2,070 tokens to every session, about $0.0083 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

odoo-assistant-mcp AGENTS.md compared with instructions from other repositories

odoo-assistant-mcp AGENTS.md next to 6 instructions from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
odoo-assistant-mcp AGENTS.mdsingleflo/odoo-assistant-mcpInstructions file115d agoMITA2,070Codex, OpenCode
vscode buildNext.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA9,719GitHub Copilot
next.js AGENTS.mdvercel/next.jsInstructions file143kyesterdayMITA7,461Codex, OpenCode
langchain AGENTS.mdlangchain-ai/langchainInstructions file149kyesterdayMITA4,680Codex, OpenCode
vscode oss-third-party-notices.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA5,516GitHub Copilot
vscode copilot-instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA3,093GitHub Copilot
deepseek-harness AGENTS.mddeepseek-ai/deepseek-harnessInstructions file274k2d agoMITA4,313Codex, OpenCode