Skip to main content
Glama

generate

Converts recorded browser sessions into test code or CI configuration for Python, Java, C#, Gherkin, Playwright, GitHub Actions, Jenkins, or GitLab CI, including Selenium Boot projects.

Instructions

Generate test code or CI config from the recorded session. language: python (pytest) | java | csharp (NUnit) | gherkin (.feature + Java steps) | playwright (TS hints) | github_actions | jenkins | gitlab_ci. In a Selenium Boot project (see detect_selenium_boot) use language=java|gherkin, framework=selenium_boot.

Input Schema

NameRequiredDescriptionDefault
kindNojava only: page_object emits Page Object + test classtest
buildNoCI targets only: build tooljava_maven
runnerNojava kind=test with framework=selenium_boot only: BaseTest (testng) or BaseJUnit5Test (junit5)testng
languageYesOutput target
frameworkNojava: testng (default) | junit5 | selenium_boot. gherkin: raw (default) | selenium_boot. Ignored otherwise.
namespaceNocsharp only
page_nameNopage_object only: e.g. LoginPage; inferred from URL if omitted
test_nameNoTest function/class name (python, java, csharp, playwright)
class_nameNopython only: test class name
feature_nameNogherkin only: e.g. Login; inferred from URL if omitted
java_versionNoCI targets only17
package_nameNojava/gherkin package (page_object: base package)
scenario_nameNogherkin only

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.9.3

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the critical input dependency (the recorded session) and the framework pairing constraint, but it never says whether output is written to files on disk or returned inline, whether existing files are overwritten, or what a caller should expect to receive.

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?

Two sentences, action front-loaded, the enum catalogue compressed into one dense line, and the conditional constraint placed last where it reads as an exception. No filler.

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?

For a 13-parameter tool with fully documented parameters and no output schema, the description covers the main risk (picking the wrong language/framework combination) and the session dependency. The one notable omission is the form of the result — generated files versus returned code — which matters for a generator.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning the schema does not: it maps enum identifiers to concrete artifacts (pytest, NUnit, .feature + Java steps, TS hints) and states the cross-parameter constraint between language and framework. Minor remaining ambiguity around kind/page_object interaction is covered by the schema itself.

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?

States a specific verb and output ("Generate test code or CI config from the recorded session") and enumerates the exact artifacts possible, so an agent knows what it produces. It does not, however, distinguish itself from the sibling `migrate` tool, which is the most plausible confusion point.

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?

Gives an explicit conditional: in a Selenium Boot project (pointing at detect_selenium_boot) restrict to language=java|gherkin with framework=selenium_boot. That is real routing guidance, but there is no guidance on when to prefer `migrate` or when generation is inappropriate (e.g., empty session log).

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