ERP Facts
Server Details
Sourced, dated ERP facts: Odoo 20 changes, support deadlines, prices, e-invoicing status.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Jaikin-SASU/claude-plugin-erp-upgrade
- GitHub Stars
- 0
TDQS
Scored across 6 tools
Each tool has a clear primary purpose, and descriptions are specific enough to prevent most misselection. The generic vendor_facts tool could overlap somewhat with einvoicing_status and support_deadlines, but the specialized tools are distinct enough that an agent should usually pick correctly.
Tool names are consistently snake_case and descriptive, forming a mostly noun-phrase pattern for data lookups. list_vendors is the main deviation because it uses a verb, but this is a natural and minor inconsistency rather than a chaotic mix.
Six tools is well within the ideal 3-15 range and each tool earns its place: vendor discovery, general facts, specific statuses, deadlines, one vendor's changes, and source metadata. There is no obvious bloat or thinness.
For a read-only facts and status server, the surface is quite complete: list_vendors provides discovery, vendor_facts provides detailed lookup, specialized tools cover major fact categories, and sources_and_method covers provenance. There are no obvious dead ends or missing operations that would block common agent workflows.
Available Tools
6 toolseinvoicing_statusE-invoicing statusARead-onlyIdempotentInspect
French e-invoicing (PA) status per vendor plus the national einvoicing_france block. Optional vendor filter.
| Name | Required | Description | Default |
|---|---|---|---|
| vendor | No | Optional vendor id or name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the scope (per vendor plus national block) and optional filter, but does not disclose return format, pagination, or any other behavioral traits. With annotations covering safety, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no waste. It front-loads the core purpose and includes the optional filter. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only status tool with one optional parameter and no output schema, the description is nearly complete. It could mention what the returned status values look like or how the vendor filter behaves, but the annotations and schema cover the essential safety and parameter semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single optional 'vendor' parameter is already documented in the schema. The description adds the context that the filter is optional and that it filters by vendor, but does not add meaning beyond the schema's 'Optional vendor id or name'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('status per vendor') and resource ('French e-invoicing (PA) status'), and mentions the national einvoicing_france block. It is clear about what the tool returns, though it does not explicitly distinguish it from siblings like vendor_facts or list_vendors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking French e-invoicing status per vendor, and the optional vendor filter suggests a use case. However, it does not explicitly state when to use this tool versus alternatives like vendor_facts or support_deadlines, nor does it provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_vendorsList vendorsARead-onlyIdempotentInspect
List ERP vendors with id, name, fact count and available topics.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds useful output context but does not disclose additional behavioral details such as pagination, ordering, or scope of 'ERP vendors'. This is adequate but not enhanced beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence conveys the action, target, and output fields without any filler words. Every part of the description earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only list operation, the description is nearly complete: it names the resource and the returned fields. It stops short of perfect completeness by not mentioning pagination, sorting, or whether all vendors are always returned, though these are minor gaps given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema description coverage is 100%, so there is no parameter burden for the description to carry. The description's reference to output fields is useful but not required for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states an explicit verb ('List'), a specific resource ('ERP vendors'), and the exact fields returned ('id, name, fact count and available topics'). This makes the tool's scope clear and distinguishes it from siblings like vendor_facts, which presumably focus on fact content rather than the vendor list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this tool over alternatives such as vendor_facts. The context signals list sibling tools, but the description does not explain whether this should be used as an overview, a lookup step, or in combination with other tools, leaving usage inference entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
odoo_20_changesOdoo 20 changesARead-onlyIdempotentInspect
Breaking and notable changes in Odoo 20. Optional area filter (requirements, security, frontend, orm, modules, api, functional, ecosystem). Max 15.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Optional area filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, establishing safety. The description adds a useful behavioral constraint with 'Max 15,' which likely caps the number of returned changes, and explicitly lists the allowed area filter values. This goes beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the core purpose front-loaded in the first sentence. The optional filter and result limit follow efficiently, and every piece of information adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter, the description covers the main aspects: purpose, filter values, and result limit. It does not describe the output format, but with no output schema and a straightforward info-retrieval use case, this gap is minor. The safety profile is fully covered by annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema has 100% coverage for the parameter description, the parameter has no enum values. The description compensates by listing valid area filters (requirements, security, frontend, orm, modules, api, functional, ecosystem), which is essential for correct parameter usage and not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Breaking and notable changes in Odoo 20.' It clearly identifies the tool's purpose and is distinct from sibling tools like einvoicing_status and list_vendors, which cover unrelated domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose: the tool is for retrieving Odoo 20 changes. However, it provides no explicit guidance on when to prefer this tool over alternatives or any exclusions. The optional area filter is described, but no situational context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sources_and_methodSources and methodCRead-onlyIdempotentInspect
Dataset checked_on date, certainty levels, volatility rule, GitHub repository and JAIKIN site.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. However, the description adds no behavioral context—it does not indicate what the tool returns, whether it queries an external source, or how the listed items relate to the tool's behavior. It simply enumerates topics, providing minimal value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, but it is cryptic and unstructured. It reads as a comma-separated list without context or a lead-in, making it ineffective despite its brevity. A clearer structure would state the tool's purpose before listing contents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description must clarify what the tool returns. It only lists a set of items without explaining format, source, or significance, leaving the agent uncertain about the output. The description is incomplete for a tool that evidently provides reference information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline score of 4 applies. There are no parameters to document, and the description does not need to explain any inputs. This dimension is trivially satisfied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a list of items ('checked_on date, certainty levels, volatility rule, GitHub repository and JAIKIN site') without a clear verb or resource. It does not state an action like 'retrieves' or 'returns', making the tool's purpose ambiguous. It also fails to distinguish from siblings such as vendor_facts or support_deadlines, which likely have similarly thematic scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the sibling tools. There is no mention of context, prerequisites, or alternative tools, leaving the agent to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
support_deadlinesSupport deadlinesARead-onlyIdempotentInspect
Support / maintenance end dates per ERP vendor. Optional vendor filter. Max 15 facts.
| Name | Required | Description | Default |
|---|---|---|---|
| vendor | No | Optional vendor id or name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the 'Max 15 facts' limit, which is a useful behavioral constraint. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with three distinct pieces of information: purpose, optional filter, and limit. Every word earns its place; it is front-loaded with the core purpose and contains no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description explains the output type (support/maintenance end dates) and a result limit. It does not clarify whether multiple vendors are returned when no filter is given, but overall it is adequate for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'vendor' parameter, which already documents 'Optional vendor id or name'. The description's 'Optional vendor filter' adds no new semantic information, so it meets the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States it provides support/maintenance end dates per ERP vendor, with optional vendor filter. The resource is specific ('support/maintenance end dates') and the scope is clear ('per ERP vendor'). While it doesn't explicitly differentiate from the sibling 'vendor_facts', the purpose is unambiguous and not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: use when you need support/maintenance deadlines. It mentions an optional vendor filter but does not explain when to use it vs. not, nor does it reference alternatives or exclusions. Guidance is minimal but not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vendor_factsVendor factsARead-onlyIdempotentInspect
Return sourced facts for one ERP vendor (id or name; aliases: bc/business central/dynamics, sap b1/sap, sage 100/sage x3). Optional topic filter. Max 15 facts.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Optional topic filter, e.g. pricing, einvoicing | |
| vendor | Yes | Vendor id or name (case/accent-insensitive; aliases accepted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive behavior, and the description adds useful traits beyond that: facts are 'sourced' and limited to 'Max 15 facts.' This gives the agent realistic expectations about result scope without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one tightly packed sentence that front-loads the action, then adds aliases, optional filter, and a result cap. Every clause earns its place with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description is sufficiently complete: it names the vendor identifier forms, accepted aliases, optional topic, and result limit. An agent has everything needed to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds value by listing concrete aliases (bc/business central/dynamics, sap b1/sap, sage 100/sage x3) and restating the optional topic filter. This helps an agent supply correct values beyond what the schema alone provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Return sourced facts for one ERP vendor.' It also clarifies acceptable identifiers and aliases, making the tool's scope unmistakable and distinct from siblings like list_vendors or einvoicing_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states this is for one vendor and supports an optional topic filter, providing clear context for when to call it. It does not explicitly name alternatives or exclusions, but the 'one vendor' and 'facts' framing makes the intended use apparent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- First observed
einvoicing_status - First observed
list_vendors - First observed
odoo_20_changes - First observed
sources_and_method - First observed
support_deadlines - First observed
vendor_facts
Related MCP Connectors
- Zoxron MCPOAuthcom.zoxron
Your AI agent deploys, migrates & upgrades self-hosted Odoo ERP on a server you own.
- Frihet ERPOAuthio.frihet
AI-native ERP MCP: ES/EU fiscal compliance (VeriFactu/TicketBAI/Facturae), invoicing, tax, banking
- odooOAuthcom.odooconsole
Odoo ERP for AI agents: hosted OAuth endpoint, gated writes, one endpoint for every instance.
ERP and B2B ecommerce rollout research: ERP fit, migration plans, site scans, ERP partner directory.
Related MCP Servers
- AlicenseCqualityBmaintenanceDeterministic Odoo ERP calculators: implementation, migration and upgrade cost, ROI and TCO, US/Canada/EU sales tax and VAT, Canadian payroll source deductions, and inventory maths (reorder point, safety stock, EOQ, landed cost, OEE). 24 tools, each a pure function, the numbers are arithmetic rather than a model's guess. Hosted remote server, no install and no API key; a stdio bridge is included24MIT
- AlicenseNot gradedqualityAmaintenanceAI connector for Odoo ERP enabling natural language interaction to search, create, update, and manage business records.80Elastic 2.0
- AlicenseAqualityAmaintenanceAn AI business analyst for your Odoo ERP. Ask one question, get one answer — numbers, highlights, risks, and a verdict (on-track / at-risk / off-track) — over the Model Context Protocol. CRUD bridges to Odoo already exist; this is the analytics layer that sits on top.3123 PyPI1MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that bridges Odoo ERP systems with AI agents, enabling them to access and manipulate partner information, accounting data, invoices, and perform financial reconciliation through a standardized interface.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.