Skip to main content
Glama

ERPNext MCP Server and API by Cotlet

Submit invoice in ERPNext

erpnext_submit_invoice
Read-onlyIdempotent

Submit invoice in the user's own ERPNext account from ChatGPT, Claude or any AI agent. Returns how to do it in ERPNext step by step (screens, buttons, fields) and opens nothing by itself; then do it with the cotlet_browser_* tools in the user's ERPNext Cloud Browser. ERPNext's official API: Yes.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "erpnext_submit_invoice"
  }
}

Input Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, and the description reinforces this with the explicit 'opens nothing by itself' statement, so an agent knows no state changes occur. It also discloses that the payload is procedural guidance (screens, buttons, fields) rather than data, which is behavior beyond the annotations; it does not cover response size or detail level.

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 core behavior is stated up front and is compact, but the opening clause ('from ChatGPT, Claude or any AI agent') is marketing filler, and the trailing 'ERPNext's official API: Yes.' is cryptic and adds no actionable meaning.

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

Completeness4/5

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

With zero parameters and no output schema, the description carries the burden of explaining the return value, and it does so ('step by step (screens, buttons, fields)'). What it omits is minor: how detailed the returned guide is and what to do if the referenced screen does not match.

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 takes zero parameters, so the baseline is 4. The description correctly implies no input is required, matching the empty schema, and nothing in the text invents parameters that do not exist.

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 states a specific resource (invoice) and clarifies the actual behavior: it returns step-by-step instructions covering screens, buttons and fields rather than performing the submission. That said, the name and title ('Submit invoice') imply an action the tool does not take, and no sibling (e.g. erpnext_create_sales_invoice) is named for contrast.

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?

It gives forward workflow guidance - after reading the steps, perform them with the cotlet_browser_* tools in the ERPNext Cloud Browser - which is a real usage cue. It does not say when to choose this over erpnext_create_sales_invoice or cotlet_app_guide, nor when this tool is unnecessary.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources