eazy-ba
Click on "Install 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., "@eazy-balist all functional requirements"
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.
eazy-ba
A personal Business Analyst as an MCP server.
eazy-ba fills the BA role for solo engineers and small teams: it captures
requirements, keeps them organized as plain markdown, and tracks the
relationships between personas, requirements, use cases, and user stories so the
documentation stays coherent as a project evolves.
Markdown files are the single source of truth — everything lives under
docs/ba/, is human-readable, git-diffable, and hand-editable. Relationships are
stored in YAML frontmatter, so traceability is always derived, never
hand-maintained.
Status: Phase A (interrogative loop). eazy-ba now conducts structured BA interviews before writing anything — every requirement traces back to a decision you made.
Install
Add it to Claude Code with one command — no global install needed:
claude mcp add eazy-ba -- npx -y eazy-baThat's it. npx fetches and runs the latest version on demand.
Register it as a stdio MCP server:
{
"mcpServers": {
"eazy-ba": {
"command": "npx",
"args": ["-y", "eazy-ba"]
}
}
}Related MCP server: Lifecycle MCP Server
The docs structure
Running ba_init scaffolds:
docs/ba/
├── _index.md # status dashboard
├── _config.yml # docs root + id conventions
├── 01-vision/ # vision.md, glossary.md
├── 02-stakeholders/personas/ # PER-001-*.md
├── 03-requirements/
│ ├── functional/ # FR-001-*.md
│ └── non-functional/ # NFR-001-*.md
├── 04-use-cases/ # UC-001-*.md
├── 05-stories/ # US-001-*.md (story + Gherkin acceptance criteria)
├── 06-analysis/ # traceability, gap-report, risks, assumptions
└── 07-changelog/ # requirement change historyStable IDs (FR-001, US-001, PER-001, …) are the backbone; cross-links live
in frontmatter (implements, satisfies, refines).
How it works — the interrogation loop
eazy-ba behaves like a Business Analyst: it asks before it writes, and never assumes.
ba_session_start— begin discovery (new project) or stabilize (tighten an existing one).ba_assess— returns the questions to ask you. It writes nothing.You answer;
ba_record_answerssaves each answer as a traceable decision (DEC-###).ba_apply— turns those decisions into documents. Every document cites the decisions behind it; nothing is written without a recorded answer.Repeat until
ba_statusreports stable (no open questions, no gaps).
Every requirement, story, and acceptance criterion traces back to a decision you made.
Tools
Tool | Purpose |
| Scaffold the |
| Start or resume a BA session ( |
| Analyze current state; return prioritized questions to ask the user. Creates nothing. |
| Save the user's answers as traceable decisions ( |
| Materialize/update documents from recorded decisions. Rejects artifacts with no |
| Report open questions, gaps, pending decisions, and overall stability. |
| Fetch one artifact by ID. |
| List/filter artifacts by type, status, priority, or tag. |
Each artifact carries MoSCoW priority (must / should / could / wont) and a
status (draft → reviewed → approved → implemented / obsolete).
Configuration
docs/ba/_config.yml:
docsRoot: docs/ba # relative to the project root, or an absolute path
idStart: 1 # first numeric IDRoadmap
Phase 2 — Analysis: deterministic structural gap detection + shipped BA checklists, requirement quality linting, traceability matrix generation, change impact analysis.
Phase 3 — Smoothers: intake from brain dumps, adaptive elicitation interviews, codebase grounding, and Mermaid visualizations.
Development
npm install
npm test # vitest, TDD throughout
npm run build # tsc -> dist/License
Available Tools
12 toolsba_applyB
Materialize/update documents from recorded decisions. Every artifact must cite derived_from decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| artifacts | Yes | ||
| projectRoot | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It mentions 'materialize/update' implying write operations but does not describe side effects, error conditions (e.g., what happens if derived_from is missing), permissions needed, or the outcome of successful execution. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the primary action and key constraint. It is concise without unnecessary words, achieving efficiency. A minor improvement could be adding structure for clarity.
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?
Given the tool's complexity (many required and optional nested parameters, no output schema), the description is far from complete. It fails to explain the artifact structure, the meaning of operation types, or expected output. The derived_from constraint alone is insufficient to guide correct invocation.
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 0%, so the description must compensate for lack of parameter documentation in text. The description only emphasizes the 'derived_from' constraint, ignoring other important fields like op, type, status, and nested structures. It adds minimal value beyond the raw 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?
Description clearly states the tool materializes/updates documents from recorded decisions, with a specific constraint that every artifact must cite derived_from decisions. This verb+resource+constraint makes the purpose unambiguous and distinguishes it from siblings like ba_assess or ba_get.
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 provides one usage constraint (must cite derived_from) but does not offer guidance on when to use this tool vs alternatives like ba_finalize or ba_plan. There is no explicit when-to-use or when-not-to-use context, leaving the agent to infer from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ba_assessB
Analyze current state and return the questions to ask the user. Writes no BA documents (it only updates session state).
| Name | Required | Description | Default |
|---|---|---|---|
| projectRoot | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states no documents are written, but lacks details on prerequisites, side effects, or whether it's safe to call multiple times.
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 action, zero 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?
Adequate for a simple tool but lacks details on return format and the nature of 'analyze current state', given no output schema and multiple 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 coverage is 0%, and description provides no explanation for the sole parameter 'projectRoot', leaving the agent to infer its purpose.
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?
Description clearly states the tool analyzes current state and returns questions, distinguishing it from sibling tools by specifying it writes no BA documents.
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?
While it mentions it only updates session state and doesn't write documents, it doesn't explicitly guide when to use this tool versus alternatives like ba_ground, ba_impact, or ba_init.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ba_finalizeA
Promote every draft BA document (persona/fr/nfr/use-case/story/glossary/tech-surface) to status 'reviewed' in one batch — the clean 'here are your docs' step. Idempotent and repeatable: a second call with nothing in draft is a no-op, and it promotes again after a change loop re-opens work. Only changes status; never touches backing. Returns what was promoted.
| Name | Required | Description | Default |
|---|---|---|---|
| projectRoot | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool only changes status, is idempotent (second call is no-op), never touches backing, and returns what was promoted. It lacks details on permissions, error conditions, or the output format, but covers core behavioral traits.
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 with no wasted words. First sentence states the action, second explains idempotency, third clarifies scope and output. Efficient and 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?
Adequate for a simple tool with one parameter and no output schema, but missing parameter documentation and explicit output format. With no annotations, the description could be more complete about what 'returns what was promoted' means.
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% and the description does not mention the sole required parameter 'projectRoot'. The description fails to add any semantic meaning to this parameter, leaving a significant gap for the agent.
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 clearly states the verb (promote), resource (draft BA documents), and scope (all types listed: persona, fr, nfr, use-case, story, glossary, tech-surface). It implicitly distinguishes from siblings by being the only batch finalization tool.
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 frames it as 'the clean here are your docs step' and explains idempotency and repeatability after change loops. It provides clear context but does not explicitly state when not to use or name alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ba_getC
Get one artifact by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| projectRoot | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only operation, side effects, or required permissions. The term 'Get' implies reading but is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence), but it is under-specified rather than genuinely concise. It fails to provide necessary context, making it less useful despite its brevity.
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?
Given the simplicity of the tool (2 parameters, no output schema), the description is insufficient. It does not explain what an artifact is, the expected return value, or any constraints on the parameters, leaving the agent with significant gaps.
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 schema description coverage at 0%, the description must add meaning to the parameters, but it only mentions 'by id' without explaining the 'id' or 'projectRoot' parameters. The parameters' roles and formats are completely ambiguous.
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 'Get one artifact by id' clearly states a specific verb ('Get') and resource ('artifact'), and it distinguishes from sibling tools like 'ba_list' which likely retrieves multiple 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?
No guidance is provided on when to use this tool versus alternatives such as 'ba_list' for listing artifacts or 'ba_assess' for assessment. The description lacks context about prerequisites or appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ba_groundA
Ground flow (ground session only): record code observations the host agent read. Each is { fact_kind, claim, anchors }. Auto-accepts ONLY existence facts the server can re-verify (entity-exists | dependency-present) whose anchors resolve on disk and sit inside the session read scope — recorded as confirmed/code-verified. Everything else (route/middleware/config-key, anything mislabeled, out-of-scope or unresolvable anchors) is recorded as an inferred+open observation that the user must confirm. Idempotent by (anchors+claim).
| Name | Required | Description | Default |
|---|---|---|---|
| projectRoot | Yes | ||
| observations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes full responsibility for behavioral transparency. It explains the auto-acceptance logic based on fact_kind and anchor resolvability, and mentions idempotency. However, it does not cover potential side effects, error states, or prerequisites like having an active ground session, which would enhance completeness.
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 description is concise and well-structured, using a bullet-like format to explain the input structure and conditional logic. It packs a lot of information without redundancy, though it could be slightly broken into separate sentences for clarity.
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?
Given the tool's complexity (2 parameters, nested observations, no output schema, no annotations), the description covers the essential behavioral aspects: auto-acceptance criteria, idempotency, and observation classification. It does not describe the return value or explicitly tie to the broader session workflow, but it is largely sufficient for an AI agent to use the tool 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?
The input schema has 0% description coverage, so the description must add meaning. It effectively explains the semantics of the 'observations' parameter, including the auto-acceptance behavior for different fact_kind values and the role of anchors. However, 'projectRoot' is not described, though its purpose might be inferred.
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 clearly states the tool's purpose: to record code observations during a ground session. It specifies the input format (fact_kind, claim, anchors) and distinguishes between auto-accepted existence facts and inferred observations, providing a complete understanding of 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 description mentions 'ground session only', which implies a specific usage context. However, it does not explicitly state when to use this tool versus its siblings (e.g., ba_assess, ba_impact), nor does it provide guidance on when not to use it. The usage context is implied but not fully elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ba_impactA
For a mid-project change: report blast radius, conflicts, severity, consequences, and change questions for the given target ids. Creates nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | ||
| projectRoot | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses non-destructive nature ('Creates nothing') and lists report components, but lacks details on authentication, rate limits, or output format.
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, no wasted words; every sentence adds essential meaning.
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?
Tool has 2 params, no output schema, no annotations; description explains purpose and inputs but lacks output structure or return format, leaving gaps for agent invocation.
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 has 2 params with 0% coverage; description links 'target ids' to 'targets' param but does not explain 'projectRoot' (path or ID?), so only partial value added beyond 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?
The description uses a specific verb ('report') and resource ('blast radius, conflicts, severity, consequences, and change questions'), and clearly distinguishes from sibling tools by stating 'For a mid-project change' and 'Creates nothing.'
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 specifies use case ('mid-project change') which implies when to use, but does not explicitly state when not to use or list alternative tools, though it is clear enough for the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ba_initD
Scaffold the docs/ba BA docs tree.
| Name | Required | Description | Default |
|---|---|---|---|
| projectRoot | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It merely says 'Scaffold the docs/ba BA docs tree' without explaining what is created, whether it is destructive, or any permissions needed. The description fails to provide essential behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one phrase), but this conciseness sacrifices clarity and completeness. While it is short, it does not earn its place as it provides insufficient information.
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?
Given the simple input schema (one param) and no output schema, the description fails to explain return values, side effects, or prerequisites. The tool is inadequately documented for an AI agent to use 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?
The sole parameter 'projectRoot' is not described in the schema or the description. Schema description coverage is 0%, and the description adds no meaning. The agent receives no help understanding this parameter.
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 'Scaffold the docs/ba BA docs tree' which indicates a verb ('scaffold') and a resource ('BA docs tree'). However, the meaning of 'BA docs tree' is unclear and does not differentiate from siblings like ba_get or ba_plan. The purpose is vaguely conveyed.
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 is provided on when to use this tool versus alternatives such as ba_apply or ba_get. There is no mention of prerequisites, context, or 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.
ba_listC
List artifacts filtered by type/status/priority/tag.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| type | No | ||
| status | No | ||
| priority | No | ||
| projectRoot | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It mentions filtering but does not confirm read-only nature, pagination behavior, ordering, or rate limits. The description is too minimal for safe invocation.
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 8-word sentence conveys the core function efficiently. No wasted words 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 a list tool with 5 parameters and no output schema, the description lacks crucial details: return format, pagination, ordering, or whether it lists all matching artifacts. It does not compensate for missing 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 description coverage is 0%. The description lists filter fields by name but adds no additional meaning about formats, allowed values, or constraints beyond the parameter names themselves.
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 clearly states the verb 'list' and the object 'artifacts', and specifies filter fields (type, status, priority, tag). It distinguishes from sibling tools like ba_get (likely single artifact retrieval) by implying aggregation, but does not explicitly differentiate.
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 tool versus alternatives (e.g., ba_get for a single artifact, ba_apply for mutations). No prerequisites or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ba_planA
Declare or retire agent/user coverage topics (the visible, steerable coverage plan on top of the floor). Declaring is idempotent; retiring stops a topic from gating stability. Returns the current open plan.
| Name | Required | Description | Default |
|---|---|---|---|
| operations | Yes | ||
| projectRoot | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that declaring is idempotent and retiring stops a topic from gating stability, and that the tool returns the current open plan. However, with no annotations, it lacks details on side effects, authorization needs, or what happens to the topics beyond these statements.
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 description is concise, with two sentences that effectively convey purpose and key behavioral traits. No redundant or unnecessary information is present.
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?
Given the complexity of the input schema (nested array with anyOf), no output schema, and no annotations, the description is incomplete. It does not explain key terms like 'coverage topics', 'floor', or 'gating stability', nor does it clarify the expected structure of the return value.
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?
The description does not explain the parameters 'projectRoot' or 'operations'. While it mentions 'declare or retire', this maps to the 'op' field but provides no details on the input schema structure or how to construct the operations array. With 0% schema description coverage, the description fails to add value for parameter understanding.
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 clearly states the tool's purpose: declaring or retiring agent/user coverage topics. It explains the two operations (declare and retire) and distinguishes the resource as 'the visible, steerable coverage plan on top of the floor'. This specificity differentiates it from sibling tools.
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 usage context (managing a coverage plan) but does not explicitly state when to use this tool over alternatives or when not to use it. No sibling comparisons or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ba_record_answersC
Record the user's answers as traceable decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| bulk | No | ||
| items | Yes | ||
| projectRoot | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits but only mentions 'traceable decisions,' implying persistence. It lacks details on side effects, permissions, or whether it overwrites existing data. The 'reject' resolution suggests possible destructive behavior but is not explained.
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 description is a single short sentence, which is concise but lacks necessary detail. It is not overly verbose, but the trade-off is insufficient information for effective tool selection.
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?
Given the complexity of the input schema with nested objects, enums, and multiple required fields, the description is woefully incomplete. There is no explanation of the overall context, such as the multi-round process hinted at by 'asked_round' enum values, nor any relation to sibling 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 0% and the description does not explain any parameter. The two required parameters 'projectRoot' and 'items' are not described, nor are optional parameters like 'bulk' or fields within 'items' such as 'question' and 'answer'.
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 uses a specific verb 'Record' and identifies the resource as 'user's answers as traceable decisions,' making it clear what the tool does. However, it does not differentiate from siblings like 'ba_get' or 'ba_list' which might also deal with answers, but the purpose is generally 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 guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or scenarios where this tool is appropriate or not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ba_session_startA
Start or resume a BA session (mode: discovery | stabilize | change | ground). For ground mode, pass readScope: the user-supplied paths/globs (relative to projectRoot) the BA may read; it is persisted to the session and bounds what ba_ground can auto-accept.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| readDeny | No | ||
| readScope | No | ||
| projectRoot | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that readScope is persisted to the session and bounds ba_ground's auto-accept, providing some behavioral insight. However, it does not mention auth requirements, destructiveness, or side effects for other modes.
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 description is two sentences, concise, and front-loaded with the primary action. Every sentence adds value without extraneous information.
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?
Given 4 parameters, no output schema, and no annotations, the description lacks completeness. It does not explain return values, errors, session resumption, or the 'readDeny' parameter. For a central session management tool, more detail is needed.
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 description must compensate. It explains 'mode' by listing enum values and explains 'readScope' for ground mode. However, 'readDeny' and 'projectRoot' are not described. 'projectRoot' is required but omitted, reducing clarity.
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 clearly states the tool starts or resumes a BA session, lists the four modes, and distinguishes the ground mode's readScope usage. This differentiates it from sibling tools like ba_ground, ba_init, etc., which are likely actions within a session.
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 gives specific guidance for ground mode (pass readScope) but does not explicitly explain when to use this tool vs siblings, or when to start vs resume. Usage context is implied but not clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ba_statusB
Report open questions, gaps, pending decisions, the open coverage plan, and stability.
| Name | Required | Description | Default |
|---|---|---|---|
| projectRoot | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states it 'reports' but does not clarify if it is read-only, safe, or has side effects. Minimal behavioral disclosure.
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?
Single sentence with no wasted words, front-loaded with key items. Could benefit from slight expansion but remains efficient.
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 provided; description lists outputs vaguely but lacks structure or format details, making it incomplete for effective use.
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 0%, and description does not mention the single required parameter 'projectRoot' or add any meaning beyond its existence.
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?
Description uses specific verb 'Report' and lists distinct aspects (open questions, gaps, pending decisions, open coverage plan, stability), clearly differentiating from siblings like ba_get or ba_list.
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 explicit guidance on when to use versus alternatives, but context implies it's for overview. Lacks exclusions or alternative tool mentions.
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. Dates show when Glama detected each change.
12 tool updates
v0.4.1- First observed
ba_apply - First observed
ba_assess - First observed
ba_finalize - First observed
ba_get - First observed
ba_ground - First observed
ba_impact - First observed
ba_init - First observed
ba_list - First observed
ba_plan - First observed
ba_record_answers - First observed
ba_session_start - First observed
ba_status
TDQS
Each tool has a distinct purpose: e.g., ba_assess queries state, ba_record_answers stores user decisions, ba_impact analyzes change effects. No two tools overlap in functionality, making selection unambiguous.
All tools follow a consistent 'ba_verb_noun' pattern with snake_case (e.g., ba_session_start, ba_record_answers). No mixing of conventions or inconsistent verb styles.
With 12 tools covering multiple BA modes (discovery, stabilize, change, ground), the count is well-scoped. Each tool serves a clear step in the workflow without bloat or missing essentials.
The set covers the full BA lifecycle: session management, assessment, decision recording, artifact materialization, finalization, querying, planning, and impact analysis. Minor gap: no explicit tool for direct manual artifact creation, but the workflow via decisions and finalization covers it.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Live Entalpa requirements, stories, stakeholders, interfaces, and project traceability.
Write product documentation to share with your whole team, including testable specifications.
Research portfolio management — organize projects and track research artifacts.
Track stories, organize sprints, and manage project workflows across your team
Related MCP Servers
- AlicenseBqualityCmaintenanceManages backlog items and todos with status tracking, priorities, and dependencies. Stores work items as human-readable markdown files with automatic versioning.7MIT
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive software lifecycle management with structured tracking of requirements, tasks, and architecture decisions through an SQLite database with full traceability and automated state validation.38MIT
- AlicenseNot gradedqualityBmaintenanceEnables multi-project workspaces to share structured notes, API contracts, and handoff messages via a local SQLite database, with versioning and read tracking.GPL 3.0
- FlicenseAqualityDmaintenanceEnables management of software requirements in compliance with IEC 62304 Class C medical device standards, including requirement creation, versioning, traceability matrix generation, and risk control integration.101-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/God1n/eazy-ba'
If you have feedback or need assistance with the MCP directory API, please join our Discord server