Skip to main content
Glama

AiStarterMCP — Senior Dev in a Box

An MCP server that acts as a senior-developer mentor for people just starting out with AI coding tools (Claude Code, Codex, Cursor, opencode, etc). Instead of jumping straight into code, it walks the human through a structured process before anything gets built:

  1. Classify — experience level, then which AI tool they're using.

  2. Interview — one question at a time about the project idea.

  3. Scope → Architecture → Database schema → Roadmap — each stage gives a draft suggestion first, then locks in the human-confirmed decision before moving on.

The server enforces the order and remembers every decision (so a long project doesn't suffer from context amnesia). The actual reasoning — turning answers into a scope, picking a stack, designing a schema — is done by the calling AI agent together with the human; the server's heuristics are just a starting draft to react to.

Install & register

Published on npm as aistarter-mcp — no clone or build needed, just Node.js. npx downloads and runs it on the fly.

Register with Claude Code:

claude mcp add aistarter -- npx -y aistarter-mcp

Register with Codex CLI (add to ~/.codex/config.toml):

[mcp_servers.aistarter]
command = "npx"
args = ["-y", "aistarter-mcp"]

Register with Cursor (.cursor/mcp.json or global MCP settings):

{
  "mcpServers": {
    "aistarter": { "command": "npx", "args": ["-y", "aistarter-mcp"] }
  }
}

Register with opencode (opencode.json, project-level or ~/.config/opencode/opencode.json for global):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "aistarter": {
      "type": "local",
      "command": ["npx", "-y", "aistarter-mcp"],
      "enabled": true
    }
  }
}

Building from source instead

git clone <this repo>
cd aistarter-mcp
npm install
npm run build
claude mcp add aistarter -- node "/absolute/path/to/aistarter-mcp/dist/index.js"

Related MCP server: AI Develop Assistant

Tools

Tool

Purpose

start_session

Classify the user (experience level + AI tool) and get the first interview question.

answer_question

Submit an answer, get the next question.

get_session

Inspect a session's full state at any point.

list_sessions

Find a session again without remembering its id.

evaluate_project_scope

Draft/finalize the project scope.

propose_architecture

Draft/finalize the tech stack.

generate_database_schema

Draft/finalize a baseline schema + security notes.

generate_roadmap

Draft/finalize a sprint-by-sprint roadmap.

scaffold_project_docs

Write PROJECT.md, ENVIRONMENT.md, PROGRESS.md, BUGS_AND_FIXES.md into a target project folder, filled in from the finished session.

check_drift

Compare a project's actual package.json/PROGRESS.md against the finalized scope/architecture and flag mismatches. Call this periodically during implementation.

Each pipeline tool (scope/architecture/schema/roadmap) works the same way: call it without finalize to get a heuristic draft, review/adjust it with the human, then call it again with finalize: true and the corrected data to lock it in and move to the next stage. Calling a stage before the previous one is finalized returns a clear error instead of silently proceeding.

Session data is stored locally at ~/.aistarter-mcp/sessions/<id>.json.

Starting to implement

Once a session's roadmap is finalized (stage: "done"), call scaffold_project_docs with the session id and the folder you're about to build the project in. It writes four files there:

  • PROJECT.md — the plan: one-liner, scope, architecture, data model. Reference material, not meant to be edited during implementation.

  • ENVIRONMENT.md — the chosen stack plus a setup checklist (heuristically derived from the architecture text) and a table to fill in as env vars get added.

  • PROGRESS.md — the roadmap's sprints as a checkbox list. This is the file to check items off in as work actually happens.

  • BUGS_AND_FIXES.md — an empty log, ready to append real bugs (symptom/root cause/fix) to as they come up.

By default it won't overwrite any of these 4 files if they already exist in target_dir (pass overwrite: true to force it) — so re-running it after you've started editing PROGRESS.md by hand is safe.

Staying on track while implementing

Call check_drift (same session_id + target_dir) any time during implementation — not just once. It reads PROGRESS.md and package.json from target_dir and flags:

  • A library installed that contradicts the scope (e.g. a payment SDK when scope said no payments needed) — possible scope creep.

  • A piece of the planned architecture that isn't in package.json yet — informational if you just haven't gotten there, worth a second look if you have.

  • A must_have_feature from scope that doesn't appear to be covered by any roadmap sprint in PROGRESS.md.

Like the pipeline tools' drafts, these are heuristic signals to react to, not verdicts — review each finding rather than trusting it blindly.

Viewing your sessions (UI)

A small local, read-only web viewer lists every session you've interviewed through and lets you drill into one to see the full interview, scope, architecture, schema, and roadmap:

npx -y aistarter-mcp-ui

Opens http://127.0.0.1:4870 (binds to localhost only) and tries to launch your browser automatically. Override the port with UI_PORT=4871 npx -y aistarter-mcp-ui. (Building from source: npm run ui instead.)

The UI is available in English, Thai, Chinese, Japanese, Indonesian, Vietnamese, and Russian — it auto-detects your browser's language on first visit, and there's a language switcher at the top of the page (persisted via cookie). Note this only translates the UI's own labels/headings; your actual interview answers, scope, architecture, etc. are shown exactly as you entered them, in whatever language that was.

Available Tools

10 tools
answer_questionSubmit an interview answerA

Record the human's answer to the current interview question and get the next one. Once all questions are answered, the session moves to the scoping stage.

ParametersJSON Schema
NameRequiredDescriptionDefault
answerYesThe human's answer, in their own words.
session_idYes
question_idYesThe id of the question being answered.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and it does a solid job: it discloses the primary side effect (recording the answer) and the state transition (next question or scoping stage). It does not cover edge behaviors like overwriting previous answers, idempotency, or validation failures, so it stops short of 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The main action is front-loaded, the consequence is stated, and the terminal transition is included. Every clause earns its place.

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

Completeness4/5

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

For a single-step stateful tool with no output schema, the description covers the input action, the immediate next step, and the terminal condition. It omits error/validation behaviors and idempotency semantics, but those are secondary for a happy-path interview flow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, with answer and question_id already described. The description adds the 'current interview question' framing to question_id but does not elaborate on session_id or add syntax/format details beyond the schema, landing at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb, 'Record', and the resource, 'the human's answer to the current interview question'. It also defines the immediate result (getting the next question) and the terminal outcome (moving to scoping), which clearly distinguishes this from siblings like start_session or evaluate_project_scope.

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

Usage Guidelines4/5

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

The description situates the tool in the interview phase ('current interview question') and explains the transition to the scoping stage once all questions are answered. This provides clear usage context, though it does not explicitly state when not to use it or name alternative tools.

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

check_driftCheck drift from the planA

Compare a project's actual state (PROGRESS.md checkboxes and package.json dependencies in target_dir) against the finalized scope and architecture from a session. Flags installed libraries that contradict the scope (e.g. a payment library when scope said no payments), stack pieces from the architecture that aren't installed yet, and planned features that don't appear in any roadmap sprint. Call this periodically during implementation, not just once at the start.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
target_dirYesAbsolute path to the project directory to inspect (should contain PROGRESS.md and/or package.json).

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses what the tool checks, how it identifies drift, and that it 'flags' discrepancies rather than modifying anything. It does not describe the return format, but the behavioral intent is transparent and actionable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler. The core purpose is front-loaded, the drift categories are concrete, and the usage advice earns its place at the end.

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

Completeness4/5

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

Given no output schema and no annotations, the description provides enough for correct invocation: it identifies both required inputs, explains what is compared, and gives concrete drift examples. A return-value description would be nice but is not necessary for selecting or calling the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

target_dir is already described in the schema and the description reinforces it. session_id has no schema description and the description only refers to it indirectly as 'from a session,' so the agent must infer its meaning from sibling tool names. This is partial compensation for the 50% schema coverage gap, but not complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Compare a project's actual state... against the finalized scope and architecture from a session.' It names concrete evidence sources (PROGRESS.md checkboxes, package.json dependencies) and enumerates the three types of drift it flags, making it clearly distinguishable from sibling tools like evaluate_project_scope or get_session.

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

Usage Guidelines4/5

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

The description explicitly says when to use the tool: 'Call this periodically during implementation, not just once at the start.' It does not name alternative tools or provide when-not-to-use conditions, but the periodic implementation context is clear enough for an agent to select it appropriately.

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

evaluate_project_scopeEvaluate project scopeA

Draft or finalize the project's scope. Without finalize, returns a heuristic guess at the scope from the interview answers. With finalize: true and data, stores the human-confirmed scope and advances the session.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
finalizeNo
session_idYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does a decent job: it discloses that the tool can return a heuristic guess, can store data, and advances the session. It stops short of describing return shape, whether draft mode mutates state, or whether finalize overwrites an existing scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences with no filler. The draft/finalize distinction is front-loaded, and each clause adds a distinct behavioral fact.

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

Completeness2/5

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

The tool has nested parameters, no output schema, and no annotations, so the description alone must make it fully usable. It covers the core flow but omits practical details: what the heuristic guess returns, what data fields are expected for finalization, and how the session advancement affects subsequent tool calls.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 the parameter schema. It explains that finalize:true plus data triggers persistence, but it does not explain the meaning of the many nested data fields (one_liner, platforms, estimated_scale, etc.) or what session_id must look like. This leaves a large semantic gap for agents choosing how to populate the input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('project's scope') and gives a specific, dual-mode verb: 'Draft or finalize.' It clearly distinguishes itself from sibling lifecycle tools like propose_architecture and generate_roadmap by focusing on scope capture and confirmation.

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

Usage Guidelines4/5

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

The description gives clear context for use: use it to produce a draft heuristic from interview answers, then use it with finalize:true to persist the human-confirmed scope. It does not explicitly name alternatives or state when not to use the tool, but the mode-based guidance is sufficient for basic routing.

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

generate_database_schemaGenerate database schemaA

Draft or finalize a baseline database schema. Without finalize, returns starter collections/tables and a security-rules note picked from the scope. With finalize: true and data, stores the schema.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
finalizeNo
session_idYes

TDQS

A3.9/5.0
Behavior3/5

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 that finalize=false returns generated artifacts, finalize=true persists data, and data is a precondition for storing. However, it omits side-effect details, what 'stores' implies, potential error behavior, and whether the operation is destructive or reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the first establishes purpose, and the second lays out the two modes with the trigger condition. The information is front-loaded and every sentence earns its place.

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

Completeness3/5

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

The mode distinction is helpful, but with no output schema and no annotations, the description doesn't fully explain the return shape, how session_id is used, or what happens on failure. It is adequate for understanding the general call pattern but not complete enough for confident invocation in all cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds meaning to finalize (draft vs. store) and data (the payload needed for finalization). It doesn't clarify session_id's role or the expected structure inside data beyond 'collections/tables and security-rules note,' so it only partially compensates for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses 'Draft or finalize' to name the action and identifies the resource as a baseline database schema. It also differentiates the tool from siblings by describing concrete outputs (starter collections/tables and security-rules note) rather than architecture or roadmap artifacts.

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

Usage Guidelines4/5

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

It gives clear mode-based guidance: without finalize it returns a draft, while finalize: true with data stores the schema. It doesn't explicitly name sibling alternatives or exclusions, but the draft-vs-store distinction provides enough context for when to call it.

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

generate_roadmapGenerate roadmapA

Draft or finalize a sprint-by-sprint roadmap. Without finalize, returns a sprint breakdown sized to the feature set and experience level. With finalize: true and data, stores the roadmap and completes the session.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
finalizeNo
session_idYes

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It does disclose the most important side effects: finalizing stores the roadmap and completes the session. The phrase 'completes the session' is not fully elaborated, but the key behavioral traits are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: two sentences immediately convey the default behavior and the finalization path. Every clause earns its place with no redundant wording.

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

Completeness3/5

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

The tool has nested objects and no output schema, so more return-value detail would help. The description explains what draft mode returns at a high level, but it does not describe the return format, prerequisites like an existing session, or what happens when finalize is true without sufficient data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate for parameter meaning. It adds real meaning to finalize by explaining the conditional behavior, but it does not describe data shape or session_id semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Draft or finalize a sprint-by-sprint roadmap.' It also distinguishes two modes, so an agent can tell drafting from finalizing and understand the tool's unique role among siblings.

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

Usage Guidelines4/5

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

The description gives clear conditional usage guidance: without finalize it drafts a breakdown; with finalize: true and data it stores the roadmap. It does not explicitly name sibling alternatives or exclusions, but the mode-based guidance is strong enough to steer invocation.

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

get_sessionGet session detailsB

Fetch the full state of a session: classification, interview answers, and any decisions made so far.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are present, so the description carries the behavioral disclosure burden. 'Fetch' implies a read operation and the description lists the returned state categories. However, it does not state that the operation is side-effect-free, how missing or invalid sessions behave, or whether any state is modified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence conveys the action, scope, and return content with no wasted words. It is easy to scan and directly useful.

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

Completeness3/5

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

The description names the major categories of returned data, which helps in the absence of an output schema. Still, it omits error behavior, explicit read-only assurance, and any indication of how the nested interview answers or decisions are shaped. Acceptable for a simple getter, but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter, session_id, but the schema provides no description and schema coverage is 0%. The tool description mentions 'a session' but never explains that session_id identifies the target session, where to obtain it, or any format expectations. The description does not compensate for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description immediately states a specific verb ('Fetch') and a specific resource ('full state of a session'), then clarifies the contents: classification, interview answers, and decisions. This clearly distinguishes it from sibling tools like list_sessions or start_session.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives such as list_sessions or answer_question. The retrieval intent is implied, but there is no explicit statement of use cases, exclusions, or which sibling to prefer for other needs.

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

list_sessionsList sessionsA

List every saved session (most recently updated first), so a session can be found again without remembering its id.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses useful traits: the tool returns all saved sessions, orders them by most recent update, and is read-only in nature (implied by 'List'). It does not mention pagination or output format, but for a zero-parameter list operation the key behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core action ('List every saved session'), then adds ordering and purpose. Every word earns its place with no redundancy or vague filler.

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

Completeness4/5

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

For a simple zero-parameter tool with no output schema, the description sufficiently covers what the tool does, the ordering, and the motivating use case. It does not explicitly describe the returned fields, but that is a minor gap given the low complexity and clear sibling context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters and schema description coverage is 100%, so there is no parameter meaning to add. Per the baseline for zero-parameter tools, a score of 4 is appropriate because the description does not need to compensate for any parameter documentation gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('List every saved session') plus an ordering qualifier ('most recently updated first') and a clear user goal ('so a session can be found again without remembering its id'). This distinguishes it from siblings like get_session, which presumably requires an id, and start_session, which creates a new session.

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

Usage Guidelines4/5

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

The description gives clear contextual guidance: use this when you need to locate a session without knowing its id. It does not explicitly name alternatives or state when not to use it, but the 'without remembering its id' phrasing strongly implies that get_session is the alternative when an id is known.

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

propose_architecturePropose architectureA

Draft or finalize the tech stack. Without finalize, returns a rule-based suggestion (frontend/backend/database/hosting + rationale) based on the finalized scope and the human's experience level. With finalize: true and data, stores the chosen stack.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
finalizeNo
session_idYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it delivers: it discloses that suggestions are rule-based (not LLM-generated), that finalize triggers a state-changing store operation, and that behavior depends on prior state ('finalized scope' and 'human's experience level'). It does not detail whether storing overwrites an existing stack, but the dual-mode read/write behavior is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler: the core purpose is front-loaded in sentence one, and the two conditional behaviors fill out the rest. Every sentence adds distinct value, and the conditional structure mirrors the tool's actual branching logic.

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

Completeness4/5

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

For a dual-mode tool with no annotations and no output schema, the description covers a lot: return content of the suggestion mode, the write behavior of finalize mode, and the prerequisites (finalized scope, experience level). The main omissions are the precise semantics of the store operation (overwrite vs append) and the role of session_id, both of which an agent could reasonably infer but are not stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains finalize's semantic effect (store vs suggest) and enumerates the data object's contents ('frontend/backend/database/hosting + rationale'), mapping cleanly onto the schema's properties. session_id is only implied via the session context, leaving a minor gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb-resource pair ('Draft or finalize the tech stack') and then specifies the exact deliverable: frontend/backend/database/hosting + rationale. The two modes (suggest vs store) are both named, making the tool's scope unambiguous. It stops short of explicitly naming sibling tools like generate_database_schema, so differentiation is contextual rather than direct.

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

Usage Guidelines3/5

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

The internal branch selection is explicit and useful: omit finalize to get a suggestion, pass finalize: true with data to store. This gives the agent clear invocation logic. However, there is no guidance on when to choose this tool over conceptually adjacent siblings (evaluate_project_scope, generate_database_schema, generate_roadmap), so cross-tool routing is left to inference.

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

scaffold_project_docsScaffold project tracking docsA

Write PROJECT.md, ENVIRONMENT.md, PROGRESS.md, and BUGS_AND_FIXES.md into a target project directory, filled in from a finished session's scope/architecture/schema/roadmap. Call this once, right after generate_roadmap finalizes, at the point where the human is about to start actually implementing the project.

ParametersJSON Schema
NameRequiredDescriptionDefault
overwriteNoIf true, overwrite any of the 4 files that already exist. Default false (existing files are left untouched).
session_idYes
target_dirYesAbsolute path to the project directory the docs should be written into. Created if it doesn't exist.

TDQS

A3.7/5.0
Behavior2/5

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 only states it writes files, but does not disclose overwrite behavior, side effects, error conditions, or whether the operation is reversible. The 'overwrite' flag in the schema is not mentioned in the description, leaving the agent unaware of potential file replacement unless it inspects 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero fluff. The core action and output files are front-loaded, followed by exact timing. Every word earns its place.

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

Completeness4/5

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

For a three-parameter tool with no output schema, the description provides the essential 'when and what'. The schema covers overwrite and target_dir behavior, so the agent can call it correctly. It lacks explicit failure/success signals or mention of the optional overwrite flag, but these are in the schema, making it sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% (overwrite and target_dir have descriptions, session_id does not). The description adds no parameter-level detail, leaving session_id completely unexplained and not compensating for the schema gap. Since coverage is moderate, the description should at least clarify what session_id refers to, but it doesn't.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action (write) and the exact resources (four named files) plus the data source (scope/architecture/schema/roadmap). This distinguishes it from all sibling tools, which are about sessions, planning, or questioning, making the tool's role obvious.

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

Usage Guidelines4/5

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

It explicitly says to call once 'right after generate_roadmap finalizes' and at the point implementation begins. This is precise temporal guidance. It doesn't mention when NOT to use it, but given the pipeline context and lack of similar alternatives among siblings, the guidance is sufficient.

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

start_sessionStart a Senior Dev in a Box sessionA

Begin a new guided project session. Classifies the user (experience level, then which AI coding tool they're using) and returns the first interview question. Call this before anything else.

ParametersJSON Schema
NameRequiredDescriptionDefault
ai_toolYesWhich AI coding tool/host the human is working in.
experience_levelYesThe human's coding experience: total-beginner, some-experience, or experienced.

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It discloses that the tool classifies the user by experience level and AI tool and returns the first interview question, but it does not clarify session persistence, duplicate-session handling, or other side effects of 'beginning' a session.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with purpose and ending with the operational instruction to call it first. There is no filler, redundancy, or unnecessary detail.

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

Completeness4/5

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

For a two-enum-parameter tool, the essential call sequence, classification behavior, and return value are all stated. It lacks output-shape or session side-effect details, but the tool's simplicity keeps this gap small.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are fully documented in the schema with enums and descriptions, so the baseline is 3. The description adds only a light behavioral mapping—parameters are used for classification—which does not materially enhance what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete action ('Begin a new guided project session') and adds exactly what it returns ('the first interview question'), making it clear what the tool does. The phrase 'Call this before anything else' also distinguishes it from session-retrieval, listing, and Q&A siblings.

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

Usage Guidelines4/5

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

Provides a strong ordering rule: 'Call this before anything else,' which tells an agent exactly when to invoke it. However, it does not explicitly name alternatives or state when not to use it, such as when continuing an existing session.

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.

  1. 10 tool updatesv0.1.2
    • First observedanswer_question
    • First observedcheck_drift
    • First observedevaluate_project_scope
    • First observedgenerate_database_schema
    • First observedgenerate_roadmap
    • First observedget_session
    • First observedlist_sessions
    • First observedpropose_architecture
    • First observedscaffold_project_docs
    • First observedstart_session

TDQS

A4.1/5.0

Scored across 10 tools

Disambiguation5/5

Each tool maps to a distinct step or artifact in the guided project workflow: session lifecycle, interview, scope, architecture, schema, roadmap, docs, and drift checking. The draft/finalize pattern repeats across four tools but each targets a different deliverable, so there is no real confusion.

Naming Consistency5/5

Tool names consistently follow a verb_noun pattern: start_session, answer_question, get_session, list_sessions, evaluate_project_scope, propose_architecture, generate_database_schema, generate_roadmap, scaffold_project_docs, check_drift. The two generate_ tools are parallel and unsurprising given they both produce artifacts.

Tool Count5/5

Ten tools is well-scoped for the guided project workflow the server covers. Each tool earns its place in the pipeline, and there is no obvious redundancy or bloat.

Completeness4/5

The server covers the full journey from initial classification through interview, scope, architecture, schema, roadmap, documentation scaffolding, and ongoing drift checking. The only notable gaps are lifecycle management conveniences like deleting or restarting a session, and there is no explicit tool for revising finalized artifacts after the session completes.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers