codeforge-mcp
Provides tools for interacting with Jira, including fetching, searching, creating, updating, and transitioning issues, as well as adding comments, linking issues, and attaching remote links via the Jira REST API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@codeforge-mcpreview the auth service pull request"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
codeforge-mcp
CodeForge — an MCP (Model Context Protocol) server that exposes Senior Software Engineer / Technical Lead capabilities as individual tools. Any MCP-compatible client — Claude Desktop, Cursor, VS Code, Claude Code — can call these tools to delegate engineering tasks to a model playing a senior-engineer persona.
The server is prompt-mediated for reasoning tools: code generation, code review, RCA, etc. each return a structured prompt that locks the host LLM into the senior-engineer persona and a strict output schema. The reasoning happens in the client's LLM, so no second LLM API key is needed.
Jira tools call the Jira REST API directly.
Tools exposed
Tool | Purpose |
| Generate clean, scalable, production-ready code with tests, logging, and docs. |
| Scaffold a new Comviva Spring Boot microservice (pom, packaging, logging, Kafka, Consul, OpenAPI) per the standards in |
| Generate a JUnit 5 + Mockito test class for one Java class with |
| Review a pull request / diff with severity-tagged findings anchored to file:line. |
| Root-cause a bug from symptoms, stack trace, logs, and source. |
| Produce a publish-ready Root Cause Analysis report for an incident. |
| Fetch a Jira issue. |
| JQL search. |
| File a new issue (bug, story, task, epic). |
| Update fields on an issue. |
| Move an issue through workflow states. |
| Attach investigation notes, RCA, or implementation updates. |
| Link related issues (Blocks, Relates, Caused by, etc.). |
| Attach a PR / deployment / dashboard URL to an issue. |
| Propose a scalable system design for a goal. |
| Review an API / database / microservice / pipeline / cloud infra design. |
| Inventory technical debt and produce a refactor roadmap. |
| Validate a CI/CD pipeline config. |
| Review Kubernetes / Docker / Terraform / Helm / CloudFormation. |
| Pre-deploy go/no-go review with rollback and observability checks. |
| Tech design, API reference, runbook, README, or module overview. |
| Architecture Decision Record (MADR style). |
| Phased implementation plan with risks and definition of done. |
| Migration strategy with stages, cutover, and rollback. |
Related MCP server: Aurai Advisor (上级顾问 MCP)
Install & build
cd D:/eclipse-workspace/MRTM_7.12/mrtm/codeforge-mcp
npm install
npm run buildThis produces dist/index.js.
Configure environment
Jira tools require credentials. Copy .env.example to .env and fill in:
JIRA_HOST=https://your-company.atlassian.net
JIRA_EMAIL=you@company.com
JIRA_API_TOKEN=<API token from id.atlassian.com/manage-profile/security/api-tokens>
JIRA_DEFAULT_PROJECT=MRTM.env is not loaded automatically — pass these as real environment variables when the MCP client launches the server (see the next section). Tools that don't touch Jira work without these variables.
Register with an MCP client
Claude Desktop
Edit %APPDATA%\Claude\claude_desktop_config.json (Windows) and add:
{
"mcpServers": {
"codeforge": {
"command": "node",
"args": ["D:/eclipse-workspace/MRTM_7.12/mrtm/codeforge-mcp/dist/index.js"],
"env": {
"JIRA_HOST": "https://your-company.atlassian.net",
"JIRA_EMAIL": "you@company.com",
"JIRA_API_TOKEN": "<token>",
"JIRA_DEFAULT_PROJECT": "MRTM"
}
}
}
}Restart Claude Desktop. The tools will appear in the tool picker.
Claude Code (CLI)
claude mcp add codeforge node "D:/eclipse-workspace/MRTM_7.12/mrtm/codeforge-mcp/dist/index.js" \
-e JIRA_HOST=https://your-company.atlassian.net \
-e JIRA_EMAIL=you@company.com \
-e JIRA_API_TOKEN=... \
-e JIRA_DEFAULT_PROJECT=MRTMCursor / VS Code (with MCP extension)
Add an entry in the client's MCP settings pointing to the same node dist/index.js command with the env vars above.
Company standards (used by scaffold_service)
The conventions for new microservices live in standards/comviva-springboot.md — packaging, copyright header, constructor injection, @Slf4j parameterized logging, Spring Kafka config pattern, Consul config layout, error handling, JPA, scheduling, Dockerfile. Edit that file to refine conventions; scaffold_service re-reads it on every call (no rebuild needed).
Example invocation from Claude
Scaffold a new service called
rewardservicethat consumes thereward.eventsKafka topic, persists aRewardLedgerentity to MySQL, and exposesGET /rewards/{customerId}to read balances.
The MCP client picks scaffold_service, fills in the args, and the host LLM produces the full project — pom.xml, RewardserviceApplication.java, config/KafkaConfig.java, service/RewardEventConsumer.java, dao/RewardLedgerRepository.java, model/RewardLedger.java, controller/RewardController.java, application.yml, bootstrap.yml, consul-prop.yml, logback-spring.xml, Dockerfile, and tests — all carrying the Comviva copyright header and following every rule in the standards file.
How the prompt-only tools work
When you call review_code, the server doesn't itself invoke an LLM. It returns a single text block containing:
A senior-engineer persona prelude (role, tone, standards).
The supplied inputs (the diff, PR title, etc.) embedded in a task description.
A strict output contract — the exact sections, severity scale, table columns, and rules the LLM must follow.
The host LLM (Claude Desktop, Cursor, etc.) then executes that prompt as its next reasoning step. Because the contract is strict and the persona is consistent across tools, you get reproducible, high-quality output without standing up a second LLM endpoint.
If you later want the server to call an LLM itself (e.g. for batch jobs without a host UI), wire an Anthropic client into each tool's handler and post the existing prompt body to it. The current architecture is designed to make that swap trivial.
Adding a new tool
Create
src/tools/yourTool.tsexporting aToolDefinition:import { z } from "zod"; import { withPersona } from "../prompts/persona.js"; import type { ToolDefinition } from "./types.js"; const Schema = z.object({ /* inputs */ }); export const yourTool: ToolDefinition = { name: "your_tool", description: "What it does, in one sentence.", inputSchema: Schema, handler: async (raw) => { const input = Schema.parse(raw); return { content: [{ type: "text", text: withPersona("...prompt body...") }] }; }, };Register it in
src/tools/index.tsunder the right capability group.npm run build. The client picks up the new tool on next restart.
Sharing with the team
Two distribution paths — start with A, promote to B once the standards stabilise.
A. Git clone
Maintainer (one-time): push this folder to GitHub.
Each teammate (one-time):
git clone https://github.com/ThakurAnketPratapSingh/codeforge-mcp.git
cd codeforge-mcp
setup.bat # Windows
./setup.sh # macOS / Linux / Git Bashsetup.bat / setup.sh installs deps, builds, and runs claude mcp add codeforge ... automatically. Teammates add their own Jira creds afterwards (re-register with -e JIRA_* flags — see the setup script output).
Getting updates:
git pull && setup.batStandards live in standards/comviva-springboot.md, versioned with the repo, so git pull is how new conventions reach every teammate.
B. Public npm (npmjs.com)
The package is published to the public npm registry as @anketpsingh/codeforge-mcp. Anyone with Node.js installed can grab it — no token needed.
⚠️ Public publication means
standards/comviva-springboot.mdis searchable on npmjs.com. Make sure that's intended.
Maintainer — one-time setup:
Create a free account at https://www.npmjs.com/signup
Enable 2FA on the account (npm requires it for publishing).
Authenticate on this machine:
npm loginEnter username, password, email, and the OTP from your authenticator.
Maintainer — each release:
npm run release:patch # 0.1.0 → 0.1.1, builds, publishes
npm run release:minor # 0.1.0 → 0.2.0
npm run release:major # 0.1.0 → 1.0.0prepublishOnly rebuilds from clean automatically. Only dist/, standards/, README.md, and .env.example ship.
Each teammate — one-time:
npm install -g @anketpsingh/codeforge-mcp
claude mcp add codeforge codeforge-mcpNo .npmrc or token required — it's public.
Getting updates:
npm install -g @anketpsingh/codeforge-mcp@latestPer-user secrets (both paths)
Jira credentials are per-user. Each teammate adds their own via claude mcp add ... -e JIRA_EMAIL=... -e JIRA_API_TOKEN=... after the base install. Shared values (JIRA_HOST, JIRA_DEFAULT_PROJECT) go in the README so everyone copies them verbatim.
Evolving the standards
standards/comviva-springboot.md is the single source of truth. To change a convention:
Edit the file
Path A: commit, push, teammates
git pull && setup.batPath B: bump version,
npm run release:minor, teammatesnpm install -g @anketpsingh/codeforge-mcp@latest
Standards changes are visible in git log standards/ — useful when investigating "why does the generator do X now".
Project layout
codeforge-mcp/
├── src/
│ ├── index.ts # stdio entry point
│ ├── server.ts # MCP server wiring
│ ├── prompts/persona.ts # shared senior-engineer persona
│ ├── jira/client.ts # Jira REST client (Cloud v3 / ADF)
│ └── tools/
│ ├── types.ts # ToolDefinition shape, error helper
│ ├── index.ts # tool registry
│ ├── codeGeneration.ts
│ ├── codeReview.ts
│ ├── bugAnalysis.ts
│ ├── rca.ts
│ ├── jira.ts
│ ├── architecture.ts
│ ├── devops.ts
│ └── documentation.ts
├── package.json
├── tsconfig.json
└── .env.exampleAvailable Tools
24 toolsanalyze_bugB
Analyze symptoms, stack traces, logs, and source to find the root cause of a bug. Returns a structured prompt that yields a hypothesis with evidence, severity, priority, recommended fix, and prevention actions.
| Name | Required | Description | Default |
|---|---|---|---|
| logs | No | Relevant log excerpts (trim to the bug window). | |
| symptom | Yes | What the user / monitor observed. Include error messages verbatim. | |
| stackTrace | No | Stack trace, if any. | |
| environment | No | Deployment env, version, traffic profile, recent changes. | |
| sourceContext | No | Source snippets of the suspected code paths. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses that the tool returns a structured prompt rather than a direct answer, and enumerates the fields (hypothesis, evidence, severity, priority, fix, prevention). It stops short of stating permissions, side effects, or whether the analysis is read-only.
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?
Two tight sentences, front-loaded with the purpose and immediately followed by the return behavior. Every clause earns its place with 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?
With no output schema, the description helpfully explains what the tool returns, and parameter coverage is complete via the schema. The main missing piece is usage/routing guidance against similar siblings like generate_rca.
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 each of the five parameters is already documented in the schema. The description lists the same input types (symptoms, stack traces, logs, source) without adding format or syntax detail, so the baseline 3 applies.
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 a specific verb (analyze) and resource (bug) plus the input types it consumes (symptoms, stack traces, logs, source). However, it does not differentiate itself from the sibling 'generate_rca', which is a closely related root-cause-analysis tool an agent could easily confuse with this one.
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 its use case ('to find the root cause of a bug') but gives no explicit when-to-use, when-not-to-use, or alternative tool guidance. With a sibling like generate_rca present, the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deployment_readiness_checkA
Perform a pre-deployment readiness check. Returns a structured prompt assessing risk, validating rollback, observability, and go/no-go gates.
| Name | Required | Description | Default |
|---|---|---|---|
| riskLevel | No | ||
| blastRadius | No | Which users / services / regions are affected by this change. | |
| changeSummary | Yes | What is being deployed. | |
| observability | No | Dashboards, alerts, and logs that will signal trouble. | |
| rollbackMechanism | No | Today's rollback mechanism: blue/green, canary, feature flag, redeploy-previous. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose one important behavioral trait: the tool returns a "structured prompt" rather than executing a check itself, implying a read-only, non-mutating operation. However, it omits permissions, whether it inspects live systems, and any side effects or rate limits.
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?
Two tightly written sentences: the first states the action, the second the return. Zero filler and the essential purpose is front-loaded.
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?
There is no output schema, and the description compensates by characterizing the return (a structured prompt assessing risk, rollback, observability, and go/no-go gates). With only one required parameter and well-documented optional ones, an agent has enough to call it correctly; only the absence of precondition/permission detail keeps it from a 5.
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 80%, so the schema already documents changeSummary, blastRadius, observability, and rollbackMechanism. The description adds no per-parameter meaning beyond what the schema supplies (the enum riskLevel is self-explanatory), so the baseline of 3 is correct.
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 gives a specific verb+resource: "Perform a pre-deployment readiness check," and the second sentence enumerates what the check covers (risk, rollback, observability, go/no-go gates). This is clear. It does not name or contrast any sibling tool, so it falls short of 5, but no sibling (review_cicd_pipeline, review_infra_config) plainly overlaps in function.
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?
"Pre-deployment" implies the usage window, but there is no explicit when-to-use statement, no prerequisites, and no guidance on when a different tool (e.g. review_cicd_pipeline, review_infra_config) would be a better fit. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_adrA
Generate an Architecture Decision Record (ADR) in the MADR-style format. Returns a structured prompt the host LLM completes into a fully-formed ADR.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Decision title, e.g. 'Adopt Kafka for cross-service eventing'. | |
| status | No | proposed | |
| context | Yes | The problem / forces driving the decision. | |
| options | Yes | Options under consideration (at least two). | |
| decision | Yes | The chosen option and rationale. | |
| consequences | No | Known consequences: positive, negative, neutral. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden, and it does disclose the key non-obvious behavior: this does not produce a finished ADR, only a structured prompt the host LLM must complete. That is genuinely useful. It does not mention determinism, side effects, or that the output format is MADR-prescribed content.
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?
Two sentences, front-loaded with the verb and format, then immediately the crucial distinction that the return value is a prompt rather than a document. No waste.
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 prompt-emitting generator with no output schema, the description covers the essentials: format, inputs by schema, and output shape. It is silent on how the prompt should be used (templating, tool chaining, expected host LLM behavior) and on edge cases like missing consequences, which for a generation tool aimed at a host LLM is a meaningful gap.
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 83%, so the schema describes five of six parameters well, including the enum for status and minItems=2 for options. The description adds only the 'MADR-style' framing and none of the parameters; baseline 3 applies when the schema does the heavy lifting.
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 a specific verb (Generate) and resource (ADR in MADR style), and adds what it returns: a structured prompt for the host LLM. It doesn't name a sibling, but it is distinguishable from generate_documentation and recommend_architecture by its ADR/MADR framing.
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 context ('generate an ADR'), and the two-stage nature (prompt the host LLM completes) hints at a workflow. There is no explicit when-to-use vs generate_documentation, recommend_architecture, or generate_implementation_plan, and no guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_codeB
Generate clean, scalable, production-ready code for a feature. Returns a structured prompt the host LLM executes to produce code, tests, logging, error handling, and docs following industry best practices.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Surrounding architecture: frameworks in use, conventions, neighbouring services. | |
| feature | Yes | Plain-English description of the feature or component to build. | |
| language | Yes | Target language/runtime, e.g. 'TypeScript', 'Java 21 + Spring Boot 3'. | |
| constraints | No | Hard constraints (latency budgets, compliance, library versions, etc.). | |
| includeDocs | No | Generate inline + module-level documentation. | |
| includeTests | No | Generate unit + integration tests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose a genuinely non-obvious trait — the tool returns a structured prompt the host LLM executes rather than writing code itself, implying a read-only/analysis posture — but says nothing about permissions, whether any files are written, or invocation limits.
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?
Two sentences, front-loaded with the core action and then the return behavior. 'clean, scalable, production-ready' is mild marketing padding, but nothing is redundant enough to waste space.
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 annotations, the description does explain the return value (a structured prompt), which is the most important missing piece. It still leaves the agent unsure how this differs from scaffold_service or whether constraints/includeDocs actually alter the prompt content.
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 schema already documents all six parameters, including defaults for includeTests and includeDocs. The description adds no syntax, format, or constraint-interpretation guidance beyond the schema, so baseline 3 applies.
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 names a specific verb ('Generate') and resource ('code for a feature') plus the artifacts produced (tests, logging, error handling, docs). However, it never distinguishes itself from close siblings like scaffold_service, generate_test_cases, or generate_documentation, which an agent would need to route between.
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?
There is no explicit when-to-use, when-not-to-use, or alternative named anywhere in the description. Given the crowded sibling set (scaffold_service, generate_test_cases, generate_documentation, generate_implementation_plan), the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_documentationA
Generate technical documentation — design doc, API reference, runbook, README, or module overview — from supplied source material. Returns a structured prompt the host LLM completes into the document.
| Name | Required | Description | Default |
|---|---|---|---|
| docType | Yes | Type of documentation to generate. | |
| subject | Yes | What is being documented (component name, API name, system area). | |
| audience | No | Primary readers: 'new joiners', 'on-call engineers', 'API consumers', etc. | |
| sourceMaterial | Yes | Source code, OpenAPI spec, design notes, existing docs to base the output on. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden, and it discloses a genuinely non-obvious trait: the tool returns a structured prompt for the host LLM to complete rather than the finished document. This prevents a wrong mental model of the return value. It does not mention token/length limits or permissions, which is why it is not a 5.
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?
Two sentences, zero filler, with the core action front-loaded and the return-behavior caveat immediately after. Every clause 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?
With no output schema, the description must explain what comes back, and it does so clearly via the structured-prompt return. Combined with 100% schema coverage for a four-parameter tool, an agent has what it needs to invoke it 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 description coverage is 100%, so every parameter is already documented in the schema; the description adds only loose references ("doc types", "source material") that map to existing fields. Baseline 3 applies when the schema does the heavy lifting.
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 a specific verb (generate) and resource (technical documentation) and enumerates the five concrete doc types matching the docType enum. It stops short of differentiating from siblings like generate_adr or generate_implementation_plan, which also produce documents, so an agent must infer the boundary.
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?
"From supplied source material" implies the precondition, and the listed doc types hint at scope. There is no explicit when-to-use vs. alternatives guidance and no exclusions telling the agent when to reach for a sibling generation tool instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_implementation_planB
Generate a phased implementation plan for a feature or change. Returns a structured prompt yielding milestones, dependencies, risks, and a definition of done.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Current state, surrounding systems, prior art. | |
| feature | Yes | The feature or change to plan. | |
| constraints | No | Hard constraints (timeline, team size, freeze windows, compliance). | |
| knownUnknowns | No | Things you already know you don't know. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It usefully reveals that the tool returns a 'structured prompt' containing milestones, dependencies, risks, and a definition of done, which is real behavioral value. It says nothing about permissions, side effects, or whether any state is created, leaving gaps.
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?
Two tight sentences with zero filler, front-loading the action and then the return content. Slightly under-elaborated for the number of concerns it could address, but nothing is wasted.
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, the description compensates by summarizing the return structure (milestones, dependencies, risks, definition of done), and all four parameters are documented in the schema. The remaining gap is the absence of any usage/disambiguation guidance against the many sibling generators.
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 schema already documents all four parameters (feature, context, constraints, knownUnknowns) with clear descriptions. The description adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.
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 a specific verb ('Generate') and a distinctive resource ('phased implementation plan for a feature or change'), which separates it from siblings like generate_migration_strategy and recommend_architecture. It does not, however, explicitly route the agent away from any named sibling, so it stops short of a 5.
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?
There is no explicit when-to-use guidance, no prerequisites, and no mention of alternative tools such as recommend_architecture or generate_adr that also produce planning artifacts. Usage must be inferred entirely from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_migration_strategyB
Generate a migration strategy from one technology / version / pattern to another. Returns a structured prompt yielding stages, dual-write/dual-read plans, validation, cutover, and rollback.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target technology / version / pattern. | |
| from | Yes | Source technology / version / pattern being migrated away from. | |
| scope | Yes | What is in scope: services, datasets, customers, regions. | |
| constraints | No | Downtime tolerance, deadlines, dual-write requirements. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the return shape (structured prompt yielding stages, dual-write/dual-read plans, validation, cutover, rollback), but says nothing about side effects, permissions, whether output is persisted, or determinism of the generation.
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?
Two sentences, zero filler. The purpose is front-loaded and the return-shape detail follows, with every clause earning 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 four-parameter generation tool with a fully documented schema and no output schema, the description covers what it does and what it returns. The remaining gap is routing guidance relative to the other planning/architecture generators, which limits it from being fully complete.
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 schema already documents all four parameters, including constraints like downtime tolerance and deadlines. The description adds no syntax, format, or example guidance beyond the loose 'one technology to another' framing, so the baseline of 3 applies.
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 a specific verb and resource ('Generate a migration strategy from one technology / version / pattern to another'), which is clearly distinct from plan/architecture siblings. However, it never names or contrasts with the nearest alternatives such as generate_implementation_plan or recommend_architecture, so sibling differentiation is left to inference.
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?
There is no explicit when-to-use, when-not-to-use, or prerequisite guidance. An agent cannot tell from this text whether this tool should precede or follow generate_implementation_plan, or under what circumstances a migration strategy is the right artifact versus an implementation plan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_rcaA
Generate a detailed Root Cause Analysis report for a production incident. Returns a structured prompt the host LLM completes into a publish-ready RCA document with summary, timeline, root cause, impact, resolution, corrective actions, preventive measures, and lessons learned.
| Name | Required | Description | Default |
|---|---|---|---|
| impact | No | Quantified impact: users affected, revenue, SLO burn, etc. | |
| timeline | No | Free-form timeline of events from detection through resolution. | |
| rootCause | No | Known or suspected root cause, if already identified. | |
| resolution | No | What was done to resolve / mitigate. | |
| extraContext | No | ||
| detectionTime | No | ISO-8601 timestamp when first noticed. | |
| incidentTitle | Yes | Short name for the incident, e.g. 'Checkout 500s 2026-06-20'. | |
| resolutionTime | No | ISO-8601 timestamp when mitigated / resolved. | |
| affectedSystems | No | Services / regions / customer segments affected. |
TDQS
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 a genuinely important trait – it returns a structured prompt the host LLM completes, rather than the finished document itself – which is valuable beyond structured fields. However, it omits permission requirements, how optional params (8 of 9 are optional) are handled when absent, and any limits.
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?
Two sentences, front-loaded with the core action, with no filler. The second sentence is long but each listed section earns its place by telling the agent what the generated document will contain.
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?
No output schema exists, so the description must characterize the return value – and it does, describing the structured prompt and its component sections. For a 9-parameter generation tool this is largely complete, with only optional-parameter behavior left unaddressed.
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 89%, so the schema already documents nearly every parameter. The description lists the output sections (summary, timeline, root cause, impact, resolution, corrective actions, preventive measures, lessons learned), which loosely maps to the input fields but adds little syntax or format meaning beyond 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?
States a specific verb ("Generate") and resource ("detailed Root Cause Analysis report") scoped to "a production incident," and no sibling tool overlaps with this capability, so an agent can distinguish it immediately.
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 context "for a production incident" implies post-incident usage, but the description never states when to reach for this versus e.g. analyze_bug or jira_create_issue, nor any preconditions or exclusions. Usage is inferable but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_test_casesA
Generate a complete JUnit 5 + Mockito test class for one Java class, with @DisplayName annotations on every test class, nested group, and test method for readable test reports. Follows Comviva standards (copyright header, package layout). Call once per class; for 'tests for all classes in the project', the host LLM should glob the sources and invoke this tool per file.
| Name | Required | Description | Default |
|---|---|---|---|
| className | Yes | Fully-qualified or simple class name of the class under test (SUT), e.g. 'MenuService' or 'com.comviva.menuservice.service.MenuService'. | |
| sourceCode | Yes | Full Java source of the class under test. The generator reads this to derive collaborators, method signatures, branches, and exception paths. | |
| useAssertJ | No | Use AssertJ (assertThat) for assertions. If false, falls back to JUnit 5 assertions. | |
| coverageTargets | No | Optional list of method names or scenarios that MUST be covered. Use when a specific branch isn't obvious from the source. | |
| packageOverride | No | Override the test package. Default: same package as SUT under src/test/java. | |
| includeIntegrationTest | No | Also produce a Spring-context integration test (*IT.java suffix) using @SpringBootTest. Off by default — most classes only need unit tests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses output conventions (@DisplayName on every class, nested group, and method; copyright header; package layout), which is useful, but never says whether the generated test is returned as text or written into the repository, nor whether it overwrites an existing file. For a code-generation tool that ambiguity matters.
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?
Three sentences, front-loaded with what is produced, then conventions, then invocation cadence. Every sentence carries distinct information with no repetition of the name or schema.
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?
There is no output schema, so the description stands in for the return contract, and it does describe the structure of the generated artifact reasonably well. It stops short of stating the delivery mechanism (returned string vs. written file) and any write-side effects, which is the one thing an agent still has to guess.
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, and the description adds real value on top: it explains when coverageTargets is needed (when a branch isn't obvious from the source) and confirms the default package/IT behavior. It does not add syntax detail beyond what the schema strings already say.
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 a specific verb and resource: generate a JUnit 5 + Mockito test class for one Java class. It also names the framework stack and header conventions, so an agent can distinguish it from generate_code or scaffold_service without reading the schema.
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?
Explicitly says 'Call once per class' and prescribes the exact alternative workflow for the project-wide case (glob sources, invoke per file). It also flags that integration tests are off by default and most classes only need unit tests, which is real when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identify_tech_debtB
Identify technical debt in a codebase and propose a refactoring strategy. Returns a structured prompt covering debt inventory, business impact, refactor roadmap, and quick wins.
| Name | Required | Description | Default |
|---|---|---|---|
| hotspots | No | Known problem modules / packages, if any. | |
| symptoms | No | Symptoms attributed to debt: slow PRs, on-call pain, flaky tests, regressions. | |
| codebaseSummary | Yes | High-level summary of the codebase: structure, age, languages, scale. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does valuable work by disclosing that the return value is a 'structured prompt' covering four named sections (rather than a finished analysis), which is important and not in any schema. However, it omits any detail about permissions, execution cost, or how the four sections are framed.
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?
Two tight sentences with no filler: the first states purpose, the second enumerates the return structure. The function is front-loaded and everything present 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?
There is no output schema, so the description must characterize the return, and it does so by naming the four sections of the produced prompt. Combined with the fully documented inputs, this is nearly complete, though it stops short of explaining how the four sections relate or what an agent should do with the returned prompt.
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 all three parameters (hotspots, symptoms, codebaseSummary) are already documented in the schema. The description adds no parameter-level syntax, format, or interaction detail beyond what the schema provides, so the baseline of 3 applies.
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 a specific verb and resource ('Identify technical debt in a codebase') plus the secondary action ('propose a refactoring strategy'). It does not explicitly distinguish itself from nearby siblings like review_code or review_architecture, but the purpose is unambiguous without opening the schema.
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 never says when to reach for this tool versus alternatives such as review_code, review_architecture, or recommend_architecture, nor does it state any prerequisites or exclusions. Usage must be inferred entirely from the tool name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_add_commentB
Add a comment to a Jira issue. Use to attach investigation notes, RCA summaries, or implementation updates.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | Yes | Investigation notes, RCA summary, implementation update, etc. | |
| issueKey | Yes |
TDQS
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 says nothing about auth/permission requirements, whether the comment triggers notifications, whether Jira markup is supported, or what the call returns, all of which are relevant for a write operation.
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?
Two short sentences, front-loaded with the purpose and followed by the use cases. No filler, no redundancy; every clause 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 two-parameter tool with no output schema, the description covers purpose and usage scenarios adequately. It stops short of the behavioral specifics (permissions, response, formatting) that would make the definition fully self-sufficient given the absence of 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?
Schema coverage is only 50%: 'comment' is documented in the schema and effectively restated here, while 'issueKey' has no description in either place. The description does not compensate for that gap or add format/syntax guidance beyond what the schema already supplies.
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 gives a specific verb+resource: 'Add a comment to a Jira issue.' That is unambiguous and easy to distinguish from siblings like jira_create_issue or jira_update_issue, though it never explicitly contrasts itself with them.
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 second sentence offers concrete use cases (investigation notes, RCA summaries, implementation updates), which is implied guidance on when the tool fits. However, it names no alternatives and sets no exclusions or prerequisites, so an agent still has to infer that this is the tool to use whenever a comment is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_add_remote_linkC
Attach a remote link (e.g. PR URL, deployment URL, dashboard URL) to a Jira issue.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| title | Yes | ||
| issueKey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Attach' implies a mutation, but nothing is said about required permissions, idempotency, duplicate-link handling, or reversibility.
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 efficient sentence, front-loaded with the action and resource. No wasted words, though the terseness contributes to the documentation gaps elsewhere.
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?
A mutation tool with no annotations, no output schema, and 0% parameter coverage needs more than one sentence. An agent lacks the permission, duplicate-handling, and per-parameter context required to invoke it confidently.
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 0%, so the description must compensate. The parenthetical examples add meaning for `url`, but `issueKey` and `title` remain completely undocumented in both schema and description, leaving two of three params unexplained.
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 a specific verb (Attach) and resource (remote link) with a clear target (a Jira issue), and the URL examples clarify it handles external URLs. This implicitly distinguishes it from the sibling jira_link_issues, but the description never names that sibling to make the contrast explicit.
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 on when to use this versus alternatives, despite the closely related jira_link_issues sibling. The URL examples imply the external-link use case, but there are no exclusions or prerequisites stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_create_issueB
Create a Jira issue. Useful for filing bugs after analysis, opening tracking tickets for RCA action items, or creating stories from implementation plans.
| Name | Required | Description | Default |
|---|---|---|---|
| labels | No | ||
| summary | Yes | ||
| priority | No | Priority name: Highest, High, Medium, Low, Lowest. | |
| issueType | No | Issue type name: Task, Bug, Story, Epic, etc. | Task |
| parentKey | No | Parent issue key for sub-tasks / epic children. | |
| projectKey | No | Project key. Falls back to JIRA_DEFAULT_PROJECT. | |
| description | No | ||
| assigneeAccountId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing beyond the word 'Create'. It does not mention that 'summary' is the only required field, that a project key falls back to a default, what the call returns (the new issue key, needed for follow-ups), or any permission/auth requirements. For a mutation tool with zero annotation coverage this is a significant gap.
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?
Two short sentences, purpose front-loaded, with the use cases earning their place by routing the agent from analysis siblings to this action tool. No filler or 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 an 8-parameter mutation tool with no annotations and no output schema, the description is under-specified: it omits the required-field constraint, the default project fallback behavior, and any indication of the return value. An agent could call it, but not confidently or correctly in edge cases.
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?
With only 50% schema description coverage, half the parameters (labels, summary, description, assigneeAccountId) have no documentation in either the schema or the description. The description adds no parameter guidance at all, so it fails to compensate for the coverage gap.
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 ('Create a Jira issue'), which is unambiguous and clearly distinguishable from siblings like jira_update_issue or jira_get_issue. It does not explicitly name those siblings, but the verb+resource pairing is precise enough that the agent knows what the tool does.
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 second sentence gives concrete triggering scenarios: filing bugs after analysis, opening tickets for RCA action items, and creating stories from implementation plans. This connects well to sibling tools like analyze_bug and generate_rca, giving clear context for when to reach for it, though it names no exclusions or explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_get_issueC
Fetch a Jira issue by key.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Optional field allowlist. | |
| issueKey | Yes | Issue key, e.g. 'MRTM-1234'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Fetch' implies a read with no side effects, but the description says nothing about auth requirements, error behavior for missing keys, or what the call retrieves.
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 with no padding; the verb and resource lead. It is efficient but arguably under-specified rather than optimally sized.
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 read tool with a full-coverage schema this is minimally adequate, but with no annotations and no output schema the description could reasonably state what is returned or note the read-only nature.
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 both parameters (issueKey with an example, and the optional fields allowlist) are already documented. The description adds no syntax or format detail beyond the schema, so the baseline of 3 applies.
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 a specific verb and resource ('Fetch a Jira issue') and adds the key-based scope, which implicitly separates it from the sibling jira_search_issues. It does not, however, explicitly name that sibling or clarify what makes this distinct from other jira_* reads.
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 when-to-use guidance, no prerequisites, and no mention of alternatives such as jira_search_issues for when the key is unknown. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_link_issuesC
Link two Jira issues. Link types are project-defined; common ones: 'Relates', 'Blocks', 'is blocked by', 'Caused by', 'Duplicate'.
| Name | Required | Description | Default |
|---|---|---|---|
| linkType | No | Link type name, e.g. 'Relates', 'Blocks', 'Caused by'. | Relates |
| inwardIssue | Yes | Inward issue key. | |
| outwardIssue | Yes | Outward issue key. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that link types are project-defined with common examples, which is useful, but says nothing about permission requirements, whether links are reversible/removable, or what the inward/outward direction semantics mean in practice. That last omission is significant for a link-creation API.
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?
Two tight sentences with the action front-loaded and the link-type caveat second. No filler, though the second sentence is a list rather than a constraint an agent can act on.
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 3-parameter mutation tool with no annotations and no output schema, the description is roughly adequate but omits the direction semantics of inward vs outward issues, which is the main ambiguity in this API. A bare-minimum-viable definition.
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 baseline is 3. The description adds a marginally broader list of common link types ('is blocked by', 'Duplicate') beyond the schema's examples, but does not clarify inwardIssue vs outwardIssue semantics, which is the parameter detail most likely to trip an agent up.
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 a specific verb and resource: 'Link two Jira issues', which is unambiguous about the operation. It doesn't differentiate itself from the sibling jira_add_remote_link, so an agent could confuse the two, but the core purpose is clear.
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 never says when to use this tool versus jira_add_remote_link or when not to link. No prerequisites, no exclusions, no alternative routing — only implied usage from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_search_issuesC
Search Jira issues with a JQL expression.
| Name | Required | Description | Default |
|---|---|---|---|
| jql | Yes | JQL expression. | |
| fields | No | ||
| maxResults | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: no read-only confirmation, no mention of the 100-result hard cap, no pagination behavior, no statement of what happens when JQL is malformed. A search tool with zero annotation coverage needs far more than one sentence.
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 with zero filler, so it is efficient in form. The brevity is arguably under-specification rather than conciseness, but as structure it is clean and the purpose is stated first.
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 three-parameter query tool with no output schema, no annotations, and only one-third of parameters documented, the description should explain result shape, pagination, and field selection. None of that is present, leaving the agent to guess at core behavior.
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 only 33% — the lone documented parameter, jql, is described tautologically as 'JQL expression.' The description adds no meaning for fields (which fields are returned, whether it defaults to all) or maxResults (the schema caps it at 100, which is worth calling out). It does not compensate for the coverage gap.
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 a specific verb (Search) and resource (Jira issues) with the mechanism (JQL expression), which is enough to distinguish it from jira_get_issue or jira_create_issue in the sibling list. However, it never explicitly contrasts itself with those siblings or states the scope of what it returns.
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 on when to use this versus jira_get_issue for a known key, nor any prerequisites such as required Jira permissions or project scope. The agent must infer that this is the broad-query tool from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_transition_issueB
Transition a Jira issue to a new status (e.g. 'In Progress', 'Done'). Optionally posts a comment with the transition.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | Comment posted with the transition. | |
| issueKey | Yes | ||
| transitionName | Yes | Transition name as shown in Jira workflow, e.g. 'In Progress'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the side effect that a comment may be posted, but says nothing about required permissions, that transitionName must match an actual workflow transition, or what happens on an invalid transition.
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?
Two sentences, no filler, purpose and optional side-effect front-loaded. Every clause 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?
With no annotations and no output schema, the description covers the core purpose and the comment side effect, but leaves the agent without permission prerequisites, workflow-validation behavior, or any indication of the result. Adequate but visibly incomplete for a mutation tool.
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 67%; transitionName is well documented in the schema and the description reinforces the 'as shown in Jira workflow' nuance. issueKey is undocumented in both places, and the description adds no format detail beyond 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?
States a specific verb ('Transition') and resource ('a Jira issue') with a target ('a new status') and concrete examples. It is distinguishable from jira_update_issue in principle because it names status transition rather than field editing, though it never explicitly says so.
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 on when to use this versus jira_update_issue or jira_add_comment, even though both overlap (status change vs field update; the optional comment vs the dedicated comment tool). Usage is only implied by the verb choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_update_issueC
Update a Jira issue's fields.
| Name | Required | Description | Default |
|---|---|---|---|
| labels | No | ||
| summary | No | ||
| issueKey | Yes | ||
| priority | No | ||
| description | No | ||
| extraFields | No | Raw additional fields passed straight through to Jira. | |
| assigneeAccountId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it discloses nothing beyond the tautological implication that a mutation occurs. It does not say whether omitted fields are preserved or cleared, what permissions are needed, or how failures behave for a 7-parameter write operation.
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 single sentence is front-loaded and free of filler, but for a 7-parameter mutation tool it is under-specified rather than concise. Brevity here costs the agent needed information instead of saving it.
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?
A write tool with no annotations, no output schema, nested/raw fields (extraFields), and near-zero parameter documentation requires substantially more description than one sentence. Nothing about field-merge behavior, permissions, or error handling is covered.
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 only 14% — just the pass-through extraFields property is documented. The description compensates for none of this, leaving labels, summary, priority, description, and assigneeAccountId with no semantic guidance in either place.
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 (Update) and resource (a Jira issue's fields), so an agent knows it is a field-mutation tool rather than a workflow tool. It does not, however, distinguish itself from sibling mutators like jira_transition_issue or jira_add_comment, which also modify an issue.
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?
There is no guidance on when to use this tool versus jira_transition_issue, jira_add_comment, or jira_link_issues, all of which also change an issue. No prerequisites, no exclusions, no routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_architectureA
Recommend a scalable system design for a stated goal. Returns a structured prompt covering architecture decisions, component diagram-as-text, data flow, scaling strategy, failure modes, and an explicit decision log.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | What is being designed or improved (e.g. 'real-time loyalty event ingestion at 50k req/s'). | |
| cloud | No | Target cloud / platform: AWS, GCP, Azure, on-prem, k8s. | |
| currentState | No | Today's architecture, pain points, constraints. | |
| nonFunctional | No | Non-functional requirements: compliance, multi-region, RTO/RPO, etc. | |
| scaleRequirements | No | Traffic, data volume, latency, availability targets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the substantive behavior: the tool returns a structured prompt containing architecture decisions, a text component diagram, data flow, scaling strategy, failure modes, and a decision log. It does not state whether anything is persisted or what permissions are needed, but for a generative, side-effect-free tool the disclosed output shape is meaningful context beyond the schema.
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?
Two tight sentences with zero filler; the purpose is front-loaded and the return contents follow immediately. Nothing is repeated from the schema or name.
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?
There is no output schema, so the description usefully enumerates what the structured prompt will contain, and all five input params are covered by the schema. The only material gap is routing guidance against sibling design/review tools, which does not affect call correctness.
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 all five parameters (goal, cloud, currentState, nonFunctional, scaleRequirements) are already well documented with examples. The description adds no parameter-level syntax or format guidance, so the baseline 3 applies.
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 a specific verb+resource ('Recommend a scalable system design') with the scope qualifier 'for a stated goal'. It clearly distinguishes design recommendation from the sibling review_architecture, though it never names that sibling explicitly.
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 only implied: the tool takes a design goal plus optional current-state/constraints and produces a design. There is no explicit when-to-use guidance and no exclusion pointing to review_architecture for existing systems or generate_implementation_plan for execution detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_architectureB
Review an existing architecture (API, database, microservice, event pipeline, or cloud infra) for scalability, reliability, security, and operability. Returns a structured prompt that yields graded findings and prioritized remediation.
| Name | Required | Description | Default |
|---|---|---|---|
| concerns | No | Specific concerns to prioritize (e.g. 'cost', 'multi-region failover'). | |
| description | Yes | Architecture description, diagram-as-text, or doc excerpt. | |
| componentType | Yes | What is being reviewed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose the key behavioral trait — the tool returns a structured prompt rather than an analysis result — which is unusual and valuable. However, it says nothing about permissions, side effects, determinism, or output shape, leaving notable gaps for a tool with no annotation coverage.
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?
Two sentences, no filler, and the most important and surprising fact (it returns a prompt, not findings) is placed second where it is easily read. Every clause 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?
No output schema, no annotations, and the description does not specify what the returned structured prompt looks like or how to consume it, nor does it distinguish the tool from its many review-adjacent siblings. The 'returned prompt' behavior is disclosed but not elaborated, leaving an agent under-informed for routing and follow-through.
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 schema already documents all three parameters including the enum for componentType and examples for concerns. The description adds no parameter-level detail beyond what the schema provides, so the baseline 3 applies.
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 a specific verb+resource ('Review an existing architecture') and scopes the domains checked (scalability, reliability, security, operability). It doesn't explicitly differentiate from siblings like review_code or review_infra_config, which overlap as 'review' tools, but the enumeration of architecture types and concern dimensions makes the intent clear.
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 when-to-use guidance and no routing to alternatives. An agent cannot tell from this description when to pick review_architecture over review_infra_config or review_code, despite obvious surface overlap among the sibling review tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_cicd_pipelineA
Validate a CI/CD pipeline configuration for correctness, security, efficiency, and best practices. Returns a structured prompt yielding severity-tagged findings and recommended fixes.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | What the pipeline builds / deploys. | |
| pipelineType | Yes | CI/CD platform. | |
| pipelineConfig | Yes | Pipeline config file content (yaml/groovy/etc.). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the output shape ('severity-tagged findings and recommended fixes'), which matters because there is no output schema. But it says nothing about whether the tool only reads (no mutation of the pipeline), size limits on config input, or how findings are scoped, leaving the safety profile unstated.
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?
Two sentences, zero filler; the purpose and validation dimensions are front-loaded, with the return behavior second. Nothing is restated from the title or schema.
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 three-parameter analysis tool with no output schema, the description covers what it does and what it returns, which is the key missing structured information. It stops short of stating input constraints (e.g., supported config formats, size limits) or how it relates to the other review_* tools.
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 pipelineType, pipelineConfig, and context are already documented, including the platform enum. The description adds no syntax or format detail beyond the schema, so the baseline 3 applies.
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 a specific verb (validate) and resource (CI/CD pipeline configuration) and enumerates the review dimensions (correctness, security, efficiency, best practices). The resource is narrow enough to be told apart from review_code, review_architecture, and review_infra_config, though no sibling is named explicitly.
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 narrow resource — an agent can infer this applies to pipeline configs rather than general code or infra. However, there is no explicit when-to-use guidance, no exclusions, and no routing advice against the neighboring review_* and review_infra_config tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_codeA
Review a pull request or diff. Returns a structured prompt that yields severity-tagged, file:line-anchored findings across correctness, security, performance, maintainability, and tests.
| Name | Required | Description | Default |
|---|---|---|---|
| prTitle | No | Pull request title. | |
| language | No | Primary language, e.g. 'Java', 'TypeScript'. | |
| diffOrCode | Yes | Unified diff (preferred) or full source of the change under review. | |
| focusAreas | No | Restrict the review to these dimensions. Default: all dimensions. | |
| prDescription | No | Pull request description / motivation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that the return is a structured prompt producing severity-tagged, file:line-anchored findings across five areas — a genuinely non-obvious behavioral trait. However, it says nothing about permissions, mutation/reversibility (a review tool is implicitly read-only but this is unstated), or any limits, leaving part of the safety profile undocumented.
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?
Two sentences, front-loaded with the action and followed by the return shape. Every clause earns its place with no 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?
There is no output schema, so the description correctly compensates by describing the return value (a structured prompt with severity-tagged findings), and all parameters are schema-documented. The only meaningful omission is when to choose this over the other review_* siblings.
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 all five parameters are already documented. The description's enumeration of review dimensions maps onto the focusAreas enum but adds no format or syntax detail beyond what the schema provides, so the baseline of 3 applies.
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 a specific verb (review) and a precise resource (pull request or diff), and enumerates the dimensions it covers. This is cleanly distinguishable from siblings like review_architecture, review_cicd_pipeline, and review_infra_config, which target different artifacts.
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 artifact named (a PR or diff), but there is no explicit when-to-use framing, no exclusions, and no routing to alternatives such as review_architecture or analyze_bug. An agent can infer intent but gets no decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_infra_configA
Review Kubernetes, Docker, Terraform, Helm, or CloudFormation configuration for correctness, security, reliability, and cost. Returns a structured prompt with anchored findings and remediation.
| Name | Required | Description | Default |
|---|---|---|---|
| config | Yes | Raw config file content. | |
| targetEnv | No | Target environment: dev / staging / prod, region, scale tier. | |
| configType | Yes | Type of configuration being reviewed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the return is a structured prompt containing anchored findings plus remediation, which is genuinely useful output-shape context for an analysis tool, but it says nothing about determinism, permission/auth requirements, size limits, or how the review is performed.
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?
Two tight sentences with no filler. The capability scope leads and the return contract follows, so an agent gets the essentials in the first sentence.
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 three-parameter, no-annotation, no-output-schema analysis tool, the description covers supported inputs and the shape of the result adequately. It falls short only on operational constraints such as input size limits or multi-file handling, which an agent might need before invoking it.
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% and all three parameters (config, configType, targetEnv) carry their own descriptions and an enum, so the schema does the heavy lifting. The description adds no format, size, or syntax guidance beyond what the schema already states, making the baseline 3 appropriate.
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?
Specific verb (review) plus a precisely enumerated resource scope: Kubernetes, Docker, Terraform, Helm, and CloudFormation configurations, across four named quality dimensions (correctness, security, reliability, cost). This distinguishes it from generic siblings like review_code and review_architecture without the agent needing to open any schema.
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 scope implies when the tool applies (you have an IaC/config file to audit), but there is no explicit when-to-use, when-not-to-use, or routing guidance versus review_code, review_cicd_pipeline, or deployment_readiness_check. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scaffold_serviceB
Scaffold a new Comviva Spring Boot microservice following company standards (packaging, logging, Kafka, Consul config, error handling, OpenAPI). Returns a structured prompt that yields a complete file tree with full source for pom.xml, the application class, config beans, controllers, producers/consumers, entities, application.yml/bootstrap.yml, logback-spring.xml, Dockerfile, and tests.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | HTTP port. | |
| notes | No | Anything else the generator should know (special integrations, naming, etc.). | |
| author | No | Author tag for class-level JavaDoc. | |
| entities | No | ||
| description | Yes | What the service does, in 1-3 sentences. | |
| kafkaTopics | No | ||
| serviceName | Yes | Service name, lowercase. Used for artifactId, root package, application class name. | |
| capabilities | Yes | Which features the service needs. Each capability pulls in the appropriate dependencies, packages, and boilerplate. | |
| restEndpoints | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it does disclose an important trait: the tool 'returns a structured prompt' rather than writing files directly, which prevents a common misuse assumption. It stops short of stating side effects, permissions, or whether anything is persisted.
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?
Two sentences, front-loaded with the action and scope, followed by the return value. The enumerated output list earns its place by telling the agent exactly what a call produces.
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 complex 9-parameter generator with no output schema, the description does a solid job explaining the deliverable (file tree with full source) and the standards applied. It omits usage routing and prerequisite context, but the core contract is complete.
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 67%, so the schema already documents most parameters. The description maps its standards list (packaging, logging, Kafka, Consul config, OpenAPI, error handling) to the capabilities concept, adding modest value, but it doesn't explain requirements like the serviceName pattern or how capabilities drive boilerplate.
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?
Specific verb+resource ('Scaffold a new Comviva Spring Boot microservice') with an explicit scope of company standards. It is clearly distinguishable from the generic generate_code sibling by naming the artifact and the standards it follows, though it never explicitly differentiates itself.
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 when-to-use, when-not-to-use, or alternatives are given. The scenario (creating a new service) is inferable, but there is no guidance on how this differs from generate_code, recommend_architecture, or generate_implementation_plan.
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.
24 tool updates
v0.1.1- First observed
analyze_bug - First observed
deployment_readiness_check - First observed
generate_adr - First observed
generate_code - First observed
generate_documentation - First observed
generate_implementation_plan - First observed
generate_migration_strategy - First observed
generate_rca - First observed
generate_test_cases - First observed
identify_tech_debt - First observed
jira_add_comment - First observed
jira_add_remote_link - First observed
jira_create_issue - First observed
jira_get_issue - First observed
jira_link_issues - First observed
jira_search_issues - First observed
jira_transition_issue - First observed
jira_update_issue - First observed
recommend_architecture - First observed
review_architecture - First observed
review_cicd_pipeline - First observed
review_code - First observed
review_infra_config - First observed
scaffold_service
TDQS
Scored across 24 tools
Most tools are clearly distinct (generate_code vs review_code vs generate_rca). Minor overlap exists between review_architecture and recommend_architecture, and between analyze_bug and generate_rca, but descriptions help differentiate. Overall, an agent can select the right tool with minimal confusion.
Majority of tools follow a verb_noun pattern (generate_code, review_code, jira_*). The jira_ prefix adds consistency for that subgroup. Minor deviations like jira_add_remote_link (verb_noun_noun) are acceptable. No chaotic mixing; overall predictable.
24 tools is on the heavy side for a single server, especially since many are wrappers that return structured prompts rather than direct actions. While each tool has a clear purpose, the count feels excessive; consolidation or grouping (e.g., separate jira tools) would improve usability.
The toolset covers a wide range of development lifecycle activities (code generation, review, architecture, bug analysis, Jira integration, CI/CD, infra, documentation). However, it lacks tools for direct code manipulation (e.g., apply_patch, create_file) and for some domains like database schema generation or performance profiling. Notable gaps exist but core workflows are present.
Maintenance
Related MCP Connectors
MCP server for AI agent profiles and smart notes. 60+ coding prompt packs with expert personas.
The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.
MCP-Native LLM Orchestration Agent
Official DevSpeak MCP server — translate technical text into formal specs from any AI IDE or agent
Related MCP Servers
- AlicenseAqualityCmaintenanceAutomatically enhances developer prompts with quality requirements, codebase context, and architectural patterns, then orchestrates other MCP servers to ensure AI coding assistants produce high-quality, structured code that follows best practices and security standards.73MIT
- FlicenseAqualityDmaintenanceAn MCP server that enables local AI models to receive guidance from remote 'senior' AI providers like OpenAI, Anthropic, and Gemini to solve programming problems. It features intelligent multi-turn dialogue management, context synchronization, and automated session history tracking.410-
- AlicenseNot gradedqualityDmaintenanceA hosted AI software engineer that writes code, opens PRs, reviews code, generates tests, runs security scans, and answers codebase questions. Connect from any MCP client (Claude Code, Cursor, Windsurf, or your own agents) and delegate engineering tasks.67 npmMIT
- AlicenseNot gradedqualityBmaintenanceEmpower any MCP-compatible AI Agent(MCP Client) with engineering-grade capabilities to understand, modify, run, and deliver real-world code repositories.465 PyPI1,125Apache 2.0