My Awesome MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ODOO_DB | Yes | The Odoo database name. | |
| DATA_DIR | No | Directory for storing data, including the audit database. Defaults to a platform-specific location. | |
| ODOO_URL | Yes | The URL of the Odoo server. | |
| ODOO_API_KEY | Yes | The Odoo API key for authentication. | |
| ODOO_USERNAME | Yes | The Odoo username (email) for the bot. | |
| ALLOWED_MODELS | No | Comma-separated list of allowed models (e.g., 'res.partner,sale.order'). Default deny: an empty list permits nothing. | |
| AUDIT_HMAC_KEY | No | HMAC key for the audit log hash chain. If set, protects against tampering even by someone with database file access. | |
| ODOO_ENVIRONMENT | No | The environment label for the Odoo profile. Defaults to 'production', which is read-only. Set to 'development' or 'staging' to allow writes. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_recordA | Read one or more records by id. |
| search_recordsC | Search records with an Odoo domain and return the matching rows. |
| create_recordC | Create a record. |
| update_recordC | Update one or more existing records. |
| delete_recordB | Delete one or more records. Irreversible. |
| execute_methodB | Call a public model method, e.g. sale.order.action_confirm. Restricted by policy. |
| call_onchangeA | Simulate a form change and return the values Odoo would compute. Saves nothing. |
| get_model_fieldsB | Field definitions of a model (type, relation, required...). |
| get_field_namesB | Compact list of a model's field names with type and label. |
| model_infoC | Model description, Odoo access rights and what this server's policy permits. |
| list_modelsB | List the models this server allows access to, optionally filtered. |
| name_searchA | Find records by display name — the quick way to resolve a name to an id. |
| search_countC | Count records matching a domain. |
| get_reportB | Render a PDF report (e.g. an invoice) for records. Returns base64. |
| upload_attachmentC | Attach a file (base64) to a record. |
| get_attachmentB | Download an attachment as base64. |
| cache_statsC | Metadata cache statistics. |
| server_statusB | Server, active Odoo profile and governance status. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
Most tools target clearly distinct actions (CRUD, search, metadata, attachments, reports). The main overlap is get_model_fields vs get_field_names (full field definitions vs compact list), and there are three search variants (search_records, name_search, search_count), though their descriptions do clarify the boundaries.
Strong, predictable verb_noun snake_case pattern (get_record, search_records, create_record, update_record, delete_record, execute_method, etc.). Minor deviation: a few noun-only names (model_info, server_status, cache_stats) break the verb-prefix pattern but remain readable and conventional for status/info tools.
18 tools is on the heavier side but each maps to a real capability of an Odoo ORM surface (CRUD, search, metadata introspection, method execution, reports, attachments). Slightly over-scoped rather than bloated, with no obviously redundant tools.
Covers the full lifecycle: create/read/update/delete, multiple search modes, model and field introspection, method calling, onchange simulation, PDF reports, and attachment upload/download, plus status and cache tooling. No obvious dead ends for the domain.