Skip to main content
Glama
elster-mcp-server
by kegelmeier

elster_form_handoff

Hand off a finished ELSTER tax form for user submission: save the draft, run portal checks, and open the send page in a visible browser. Review and send it yourself.

Instructions

Hands a finished form to the USER for sending. Saves the open form (or takes the given draft), opens it in a separate, visible browser window with its own login, runs "Prüfen" and, if clean, moves on to the "Formular absenden" page. Then the MCP detaches from that window: it cannot click anything there. The user checks the overview, clicks "Absenden" themselves and closes the window. Until the window is closed the other elster_form_* tools refuse to run. Follow up with elster_form_handoff_wait, which returns when the window is closed and shows what was sent.

Input Schema

NameRequiredDescriptionDefault
aufgabeIdNoDraft to hand off when no form is open; default: newest draft.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses that the form is saved, that a separate visible browser window with its own login is opened, that 'Prüfen' runs and a clean result advances to 'Formular absenden', and that the MCP then loses the ability to act in that window. It also warns about the blocking side effect on sibling tools, which is exactly the kind of hidden behavior an agent needs.

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?

Four sentences, front-loaded with the outcome (hand off to the user), then mechanics, then the critical constraint, then the follow-up call. Every sentence contributes a distinct fact with no repetition.

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

Completeness5/5

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

For a one-optional-parameter tool with no annotations and no output schema, the description covers the whole lifecycle: preconditions, what is opened and validated, where control is lost, the blocking window, and which tool to call next. Nothing an agent needs to invoke it correctly 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?

Schema coverage is 100%, so aufgabeId is already documented including its 'newest draft' default. The description corroborates the conditional role by saying it saves the open form or takes the given draft, but adds no format, id-source, or error semantics beyond the schema. 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 opens with a specific verb+resource: hands a finished form to the USER for sending, and immediately scopes it against the surrounding automation tools by saying the MCP detaches and cannot click in that window. That makes it clearly distinguishable from siblings like elster_form_press, elster_form_check, and elster_form_handoff_wait.

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

Usage Guidelines5/5

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

It states exactly when this applies (a finished form ready to send), what it does with an open form versus a supplied draft, and explicitly names the follow-up tool elster_form_handoff_wait. It also gives a hard usage constraint: until the window is closed, the other elster_form_* tools refuse to run.

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