Skip to main content
Glama
Kai-Oesterling

ERPNext MCP Server

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v2.0.0

  • Disambiguation3/5

    Most tools are distinct, but get_doctype_fields and get_doctype_meta overlap in scope, and add_doctype_field vs create_custom_field can confuse agents about which to use. Descriptions help but boundaries are not always clear.

    Naming Consistency4/5

    Tool names generally follow a verb_noun pattern (get_document, create_document, submit_document), but there are minor inconsistencies such as singular vs plural (get_document vs get_documents) and mixed resource naming (create_custom_field vs add_doctype_field).

    Tool Count4/5

    At 19 tools, the count is slightly above the ideal 3-15 range but still reasonable for an ERP system covering documents, Doctypes, workflows, and reports. The breadth justifies the number without feeling bloated.

    Completeness4/5

    The toolset covers document CRUD, lifecycle actions (submit/cancel), DocType management, customization, workflows, and report execution. Minor gaps exist such as no delete workflow or update custom field, but core workflows are well supported.

  • Average 3.2/5 across 19 of 19 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior1/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden of behavioral disclosure. It only says 'delete a document' without mentioning permanence, permission requirements, or effects on related records, which is a significant gap for a destructive action.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, concise sentence with no redundant information. It is front-loaded and efficiently communicates the action.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the destructive nature and the presence of sibling tools like cancel_document, the description lacks important context about when deletion is permitted and what the consequences are. Without annotations or an output schema, this is incomplete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already provides descriptions for both parameters (doctype and name), so the description adds nothing beyond the schema. High schema coverage justifies a baseline score of 3.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool deletes a document from ERPNext, using a specific verb and resource. It does not explicitly distinguish from cancel_document, but the verb 'delete' is distinct enough to convey the core purpose.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No usage guidance is provided. It does not mention when to use delete versus cancel_document, or any conditions for deleting a document, leaving the agent to infer the appropriate context.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden of behavioral disclosure. 'Override' is vague—it doesn't explain that this creates a Property Setter record, whether changes are global/persistent, require permissions, or affect existing data. No side effects or prerequisites are mentioned.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, well-formed sentence with no wasted words. However, it is so terse that it borders on under-specification, providing only the bare definition without helpful context. It is not as egregious as a tautology, but it lacks the substance expected of a genuinely helpful description.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what 'override' entails, how the required parameters interact, what values are valid, or what the response or side effects are. The schema covers parameter descriptions, but broader context is missing.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema provides 100% coverage with descriptions for all four parameters. The description adds minimal semantic value beyond the schema, only noting that 'property' and 'fieldname' relate to DocType-level or field-level targets. This is consistent with the baseline for high schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'Override a DocType or field property' is a specific verb+resource statement that clearly indicates the tool's function. It distinguishes itself from document manipulation tools like update_document, but doesn't explicitly contrast with related property/customization tools.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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 alternatives. It doesn't mention scenarios such as needing to change a DocType's custom properties, nor does it exclude cases better handled by create_custom_field or update_document.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description must carry the full burden of disclosing behavior. It only states that it updates an existing workflow, implying mutation but not disclosing whether updates are additive or destructive, whether validation occurs, what happens to existing workflow properties, or if authentication is required. This is a significant gap for a tool that modifies state.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence and is front-loaded, but it essentially restates the title. It is concise but not informationally dense. While it avoids wasted words, it also avoids providing any additional value, making it minimally acceptable rather than well-crafted.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The context is incomplete for a mutation tool. There is no output schema, and the description does not explain return values, errors, or side effects. The 'updates' parameter is open-ended, and the description offers no example or clarification. With no annotations and minimal schema detail, the description fails to provide sufficient context for safe and correct usage.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so each parameter has a description. The 'updates' object is described as 'Properties to update' but with additionalProperties allowed, the actual valid keys are not documented. The tool description adds no extra meaning beyond the schema, and the schema itself is vague about possible update properties. Baseline 3 is appropriate since the schema covers parameter descriptions, but neither the schema nor the description clarifies permissible update keys.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Update') and the resource ('an existing workflow'). It distinguishes itself from siblings like create_workflow (by specifying 'existing') and get_workflow (by being a mutation verb). However, it doesn't detail what 'updates' means or what aspects of the workflow can be modified.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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 alternatives (e.g., update_document, create_workflow). There is no mention of prerequisites, exclusions, or typical use cases. The description is purely a statement of action without context.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that a field is added, with no mention of side effects, permissions, reversibility, success/failure behavior, or whether it modifies the DocType schema directly.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single concise sentence that communicates the core purpose without redundancy or unnecessary detail.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a mutation tool with 8 parameters, no annotations, and no output schema, a single sentence is insufficient. It does not explain return values, prerequisite conditions, error cases, or behavioral outcomes, though the schema covers parameter semantics adequately.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has 100% parameter coverage with descriptions for all 8 parameters, so the baseline is 3. The description itself adds no parameter-level details beyond what the schema already provides.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action (Add), the resource (custom field), and the target (existing DocType). It is specific, but it does not explicitly differentiate from the sibling tool 'create_custom_field', which appears to serve the same purpose, preventing a 5.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    There is no guidance on when to use this tool versus alternatives like create_custom_field or create_document. It does not mention prerequisites, exclusions, or scenarios where another tool would be more appropriate.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden for behavioral disclosure. However, it only says 'Get complete metadata' without mentioning read-only nature, return format, scope of configuration (e.g., fields, permissions, customizations), or any side effects. It adds no behavioral context beyond the name, leaving the agent uninformed about what to expect.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence, front-loaded with the key verb 'Get'. It is appropriately sized for a simple tool and contains no unnecessary words or repetition. Every word earns its place, even if the content is somewhat vague.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the lack of annotations and output schema, the description must carry the burden of explaining what the tool returns and when to use it. 'Complete metadata including all configuration' is ambiguous—it doesn't specify whether fields are included, how the data is structured, or any authentication requirements. This leaves significant gaps for a tool that likely returns a complex object.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has one parameter, 'doctype', with a description 'ERPNext DocType' (100% schema coverage). The tool description does not add parameter-specific details, but since the schema already explains the parameter, the baseline score of 3 is appropriate. The description's mention of 'metadata' implicitly ties to the doctype parameter but adds no further semantic value.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action (get) and the resource (metadata for a DocType), with a hint that it covers 'all configuration'. It distinguishes itself from the sibling get_doctype_fields by implying a broader scope, though it does not explicitly name alternatives. The verb and object are specific enough to avoid confusion with unrelated tools.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides no guidance on when to use this tool versus alternatives like get_doctype_fields or get_doctypes. It does not state any exclusions, prerequisites, or context such as 'use this when you need full DocType settings beyond just fields'. The implied usage is minimal and not supported by explicit direction.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden of behavioral disclosure. It does not mention whether report execution is read-only, has side effects, requires specific permissions, or how results are returned. The minimal wording omits important details for an execution tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence that is front-loaded and to the point. Every word contributes to the core purpose, though 'get results' is somewhat vague and would benefit from additional specificity without compromising conciseness.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool has no output schema and minimal annotations, yet the description does not compensate by explaining return formats, filter usage, or report name conventions. For an execution tool with this complexity, the description is incomplete and leaves significant gaps for the agent.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already documents both parameters (report_name and filters) with full coverage, so the description adds no new semantic meaning. The schema describes filters only as an object, and the description does not clarify filter keys or structure, but the baseline for high schema coverage is met.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('execute') with a clear resource ('ERPNext report') and outcome ('get results'). It distinguishes itself from sibling tools, which all focus on document/doctype operations rather than report execution, though it does not specify types of reports or any unique scope.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance is given for when to use this tool versus alternatives or any prerequisites. The tool is unique among siblings (no other report tool), which implies its use for report execution, but the description does not explicitly state usage context or exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries full responsibility for disclosing behavior. It adds minimal information beyond the name, not explaining partial vs full updates, required permissions, error handling, or side effects. This is insufficient for a mutation tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single concise sentence with no fluff. It is appropriately brief, though it could be more informative without sacrificing conciseness.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a mutation tool with no output schema or annotations, this description is incomplete. It does not mention return values, errors, or operational semantics, making it inadequate for an agent to fully anticipate the tool's behavior.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, with each parameter clearly described ('Fields to update', 'Document name/ID', 'ERPNext DocType'). The description adds no extra parameter meaning, so baseline 3 applies since the schema does the heavy lifting.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool updates an existing document in ERPNext, with a specific verb and resource. It distinguishes from create_document and delete_document by implying mutation of an existing record, though it does not explicitly compare against submit_document or cancel_document.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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 alternatives such as create_document or submit_document. The description simply says 'update an existing document' without contextual cues or exclusions, leaving the agent to infer suitability.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden. It does disclose one meaningful behavior—that the custom field persists across ERPNext updates—which is useful context. However, it does not mention potential side effects, whether the field is idempotent, error conditions, or required permissions.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, concise sentence that is front-loaded with the verb 'Create'. It contains no wasted words and is appropriately minimal for the information it conveys.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a tool with six parameters, no output schema, and no annotations, the description is too sparse. It does not explain what 'survives ERPNext updates' implies for usage, how the parameters interact, or what the result of a successful creation looks like.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the input schema fully documents all six parameters. The description itself adds no additional parameter-level information, so the score aligns with the baseline for full schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose: creating a custom field. It adds the value proposition 'survives ERPNext updates', which is specific and useful. However, it does not explicitly distinguish from the sibling tool 'add_doctype_field', which also appears to involve adding fields.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    There is no guidance on when to use this tool versus alternatives like 'add_doctype_field' or 'create_property_setter'. The description only states what it does, not in which scenarios it should be preferred.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must disclose behavioral traits. It only states that the tool creates a DocType; it does not mention permission requirements, whether the operation is irreversible, potential side effects like schema migrations, or the return format. This is a significant gap for a mutation tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, well-structured sentence that immediately states the core purpose. It is front-loaded with the verb and resource, and contains no unnecessary words or filler. The length is appropriate for the simplicity of the core message, though it could be expanded with additional context.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    With 8 parameters, no output schema, and no annotations, the description is incomplete for an agent to understand the full context. It does not explain what happens after creation, whether overrides are allowed, or the expected return value. The minimal description leaves too much unspecified for a tool that creates a structural entity like a DocType.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema provides descriptions for all 8 parameters (100% coverage), including fields, module, autoname, and permissions. The description adds no further semantic detail about the parameters themselves. Since schema coverage is complete, the baseline of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('Create') and a clear resource ('new custom DocType in ERPNext'), which clearly distinguishes this tool from siblings like create_document (creates a document of an existing DocType) and create_custom_field (adds a field to an existing DocType). It is more than a tautology because it names both the action and the object.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides no guidance on when to use this tool versus alternatives. It does not mention when it is appropriate to create a custom DocType, nor does it contrast with tools like create_custom_field or create_document. There is no explicit context or exclusions, leaving the agent to infer usage solely from the name.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must carry the burden of behavioral disclosure. It only states 'create', which implies a write operation, but gives no details on permissions, idempotency, return values, or error handling.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is one short sentence with no unnecessary words, adhering to the principle that every word earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    With no annotations and no output schema, the description is incomplete. It does not explain the return value, validation expectations, or how the create operation relates to other workflow steps (e.g., submit). The schema is minimal, leaving data as a free-form object.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Both parameters (doctype and data) have descriptions in the schema, giving 100% coverage. The tool description adds no extra parameter semantics, so the baseline score of 3 applies.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'create' with the resource 'document' in the context of ERPNext. It distinguishes itself from sibling tools like update_document, delete_document, and get_document by specifying the create action.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides no guidance on when to use this tool versus alternatives like update_document or submit_document. It only implies usage for creating a new document, but does not explicitly state conditions or exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description must disclose behavioral outcomes. It only mentions the authentication method, but does not explain what happens after successful authentication (e.g., returns a token/session), whether it is a prerequisite for other calls, or any side effects. This is a significant gap for an authentication tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence with no fluff, front-loading the action. Every word contributes to the core purpose, making it appropriately concise.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For an authentication tool with no annotations and no output schema, the description is incomplete. It does not mention the authentication response, session handling, or the necessity to authenticate before using sibling tools, leaving critical context missing.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already provides clear descriptions for both parameters (username and password), and schema coverage is 100%. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's function: 'Authenticate with ERPNext using username and password'. It specifies a verb, resource, and method, and distinguishes itself from sibling tools (document/workflow operations) by focusing on authentication.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The phrase 'alternative to API key' gives slight guidance on usage contexts, but it does not explicitly state when to use this tool (e.g., before other ERPNext operations) or when not to use it. No clear exclusions or alternative tool references are provided.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action without describing effects (e.g., document state change, reversibility, permissions, or side effects), leaving the agent with insufficient behavioral context.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, focused sentence that immediately states the action and target, with no filler or redundant information. Every word earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Despite the tool's conceptual simplicity, the description lacks essential context about the cancellation workflow, such as what happens to the document after cancellation, any state constraints beyond 'submitted', or error conditions. With no annotations and no output schema, the description is under-specified for reliable agent invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already provides descriptions for both parameters (name and doctype), yielding 100% schema coverage. The description adds the qualifier 'submitted' but does not elaborate on parameter semantics beyond what the schema already provides.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses the specific verb 'Cancel' and identifies the resource as 'a submitted document', clearly distinguishing it from sibling tools like delete_document, submit_document, and update_document. The qualifier 'submitted' adds essential scope.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The phrase 'submitted document' implies the tool is intended for cancelling documents that have already been submitted, giving some contextual guidance. However, it does not explicitly state when to use cancellation over deletion or other operations, nor does it mention alternatives.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior1/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must convey behavioral traits. It only states the action with no mention of side effects, permissions, validation, duplication behavior, or return value. For a write operation, this is a critical gap.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, focused sentence with no fluff. It conveys the core purpose without any wasted words, making it front-loaded and easy to parse.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Despite the complexity of the tool (nested states/transitions arrays, required fields), the description gives only a minimal overview. It does not explain the relationship between states and transitions or what constitutes a valid workflow, leaving the agent to rely entirely on the schema.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the schema already documents all parameters and their meanings. The description adds no additional parameter-level insights, meeting the baseline expected when the schema handles the heavy lifting.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states a specific action ('Create a new workflow') on a specific resource ('a DocType'), distinguishing it from sibling tools like get_workflow and update_workflow. The verb and resource are precise and unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The verb 'Create' clearly implies this tool is for new workflows, and the presence of siblings get_workflow and update_workflow indicates alternatives. However, the description does not explicitly mention when not to use it or name the alternatives directly.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention authentication requirements (notable given the sibling authenticate_erpnext), return format, pagination, or potential side effects. The description is purely a high-level statement of functionality.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence, directly states the purpose, and contains no filler. It is appropriately sized for a tool with no parameters and straightforward behavior.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The description is minimal and does not explain the response structure (e.g., array of doctype names) or mention authentication prerequisites, which are relevant given the ERPNext context and the presence of an authenticate_erpnext sibling. Without an output schema, the description should offer more detail about what to expect.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics, and the empty schema is fully covered.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool retrieves a list of all available DocTypes in ERPNext, using a specific verb and resource. It distinguishes itself from sibling tools like get_doctype_fields and get_doctype_meta by explicitly covering the full list of doctypes.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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 alternatives. The description does not mention any context, prerequisites, or exclusions, leaving the agent to infer usage solely from the tool name.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries full burden. It communicates a read operation via 'Get', but does not explicitly state that it is read-only, nor does it disclose any caveats such as authentication requirements, pagination behavior, or side effects. This is minimal for a tool with no annotation support.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, well-structured sentence that is front-loaded with the action and resource. It contains no filler and every word adds meaning.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool has no output schema and no annotations, yet the description does not clarify return format, pagination, or how it differs from get_document. Given the sibling list, some guidance on when to use this vs. get_document would be necessary for full contextual completeness.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the schema already explains all four parameters. The description adds only 'specific DocType' and 'optional filtering', which are already present in the schema, so no significant additional meaning is provided.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('Get') and resource ('list of documents') and clearly scopes to 'a specific DocType with optional filtering'. This distinguishes it from the sibling get_document (singular) tool, which presumably retrieves a single document.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies this is for retrieving multiple documents filtered by DocType, but it does not explicitly say when to use this versus get_document, create_document, or run_report. There is no mention of alternatives or exclusions, so guidance is only implied.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries full behavioral burden. It states 'active' which adds a qualifier, but it does not disclose return format, error behavior (e.g., what if no active workflow exists), or permissions. The tool appears to be a read operation, but this is not explicitly stated.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence that is concise and to the point. There is no fluff or redundant content; it delivers the essential purpose efficiently.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Although the tool is simple with one parameter, there is no output schema and no explanation of what the tool returns (e.g., a workflow object, a name, or a list). The description also fails to address edge cases like no active workflow or multiple workflows. This is a significant gap for an agent.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema covers 100% of the parameter and already describes 'doctype' as 'DocType to get workflow for'. The tool description merely repeats the same context ('for a DocType') without adding extra meaning, so the baseline of 3 applies.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'Get' and the specific resource 'active workflow for a DocType'. It distinguishes itself from siblings like create_workflow, update_workflow, and get_document by focusing specifically on retrieving the active workflow.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies when to use this tool (to fetch a specific workflow definition) but does not explicitly mention any alternatives or when not to use it. It doesn't say 'use this instead of get_document' or 'if you need the full document list, use get_documents', leaving usage guidance implicit.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must carry the full burden. It only restates the core action and adds a generic scoping phrase, providing no deeper behavioral detail (e.g., whether hidden fields are included, return format, authentication needs). This is barely beyond a tautology and offers minimal transparency.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single front-loaded sentence with no redundant words. It is appropriately concise for a simple, single-purpose tool.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is simple with one parameter and no output schema, but the description leaves ambiguity about what 'field definitions' includes (e.g., field names only vs. full metadata with types, mandatory flags) and how it overlaps with get_doctype_meta. Additional details about the return payload would improve completeness.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema fully describes the only parameter ('doctype' as 'ERPNext DocType'), giving 100% coverage. The description adds no extra meaning beyond echoing the scoping, so it meets the baseline without enriching parameter semantics.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb 'Get' with a clear resource ('field definitions') and scoping ('for a specific DocType'). It distinguishes the tool from siblings like get_doctypes (list of doctypes) and get_doctype_meta (metadata for a doctype), making its purpose unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The usage is implied: the agent can infer this tool is for retrieving field definitions for a given DocType. However, there is no explicit when-to-use guidance or mention of alternatives, such as how this differs from get_doctype_meta or when to prefer it over other field-related tools.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Get a single document by DocType and name' and does not disclose error behavior (e.g., not found), permissions, or that it is a read-only operation. This is minimal and leaves significant behavioral traits undisclosed.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, concise sentence that front-loads the action and resource. There is zero wasted wording, and the structure is highly efficient.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is simple and the parameters are clearly documented, but there is no output schema and no annotations. The description does not mention what is returned (the document object) or error handling, leaving some gaps. It is adequate but not fully complete for a retrieval tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already provides complete descriptions for both parameters (name, doctype) with 100% coverage. The description merely references 'DocType and name' without adding examples, format details, or constraints, so it adds no value beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool gets a single document by DocType and name, using a specific verb and resource. The singular 'single document' distinguishes it from sibling get_documents, which implies multiple documents.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The phrase 'single document' provides clear context for when to use this tool (retrieving one specific document), but it does not explicitly mention alternatives or exclusions. It does not name get_documents as the alternative for multiple documents, so it lacks explicit when-not guidance.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden. It does disclose the core behavior: a state transition from Draft to Submitted, and the submittable DocType constraint. However, it omits other relevant behavioral traits such as what happens on failure, return values, or whether the action is reversible, which is significant for a mutation tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence that front-loads the action and includes a critical constraint. Every word is necessary, with no redundant or filler content.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool has only two simple parameters and no output schema. The description covers the purpose and a key constraint, but it does not explain what the tool returns or error scenarios. An agent might need to know how to confirm success, making the description adequate but incomplete in some aspects.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema provides 100% coverage for both parameters (name and doctype) with descriptions. The tool description adds no extra parameter-level meaning, so it does not improve upon the schema. The baseline of 3 applies given high schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action 'Submit a document' and specifies the exact state transition 'Draft → Submitted'. It also notes the constraint 'Only works for submittable DocTypes,' which distinguishes it from siblings like create_document, update_document, and cancel_document. This makes the tool's purpose unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies when to use the tool: to submit a document, moving it from Draft to Submitted. It also provides a clear constraint (only submittable DocTypes). However, it does not explicitly name alternatives or state when not to use it, though the purpose is specific enough to guide selection.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

erpnext-mcp-server MCP server

Copy to your README.md:

Score Badge

erpnext-mcp-server MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Kai-Oesterling/erpnext-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server