Skip to main content
Glama
nstok-id

NSTOK AI Software Factory MCP Server

Official
by nstok-id

NSTOK AI Software Factory MCP Server (TypeScript)

TypeScript Model Context Protocol License: MIT

An enterprise-grade Model Context Protocol (MCP) server implemented in TypeScript that powers the NSTOK AI Software Factory. It allows reasoning agents (such as Codex, Antigravity, or Claude) to construct production-ready NSTOK applications directly from PRDs by discovering and reusing existing ecosystem capabilities, UI components, database models, and templates.


šŸŽÆ Core Architectural Philosophy

SEARCH → REUSE → ADAPT → CREATE

The system strictly enforces the principle: Never generate code from scratch if an existing asset can satisfy or be adapted to the requirement.

  1. Reuse First: Prioritize existing business features (Nstok-feature-*), UI components (Nstok-ui), and database models (Nstok-db).

  2. Template First: Applications start from Nstok-app-template; features start from Nstok-feature-template.

  3. Knowledge Before Code: Understand architecture, dependencies, and patterns before mutating code.

  4. Plan Before Mutation: Analyze → Plan → Approve → Implement → Validate.

  5. Closed Knowledge Loop: Every newly generated application or feature enriches the central Knowledge Graph (Nstok-knowledge-master).


Related MCP server: Code-MCP

šŸ—ļø High-Level Architecture

                  ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
                  │         CODEX         │
                  │   User / PRD / Task   │
                  ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
                              │ MCP (Stdio / SSE)
                              ā–¼
             ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
             │        NSTOK MCP SERVER         │
             │                                 │
             │  • PRD Analysis                 │
             │  • Knowledge Graph & Vector     │
             │  • Feature & UI Discovery       │
             │  • Template Orchestrator        │
             │  • Architecture Validator       │
             │  • Sandboxed Git Management     │
             ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
                              │
       ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
       │                      │                      │
       ā–¼                      ā–¼                      ā–¼
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”       ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”       ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│  Knowledge   │       │ Repositories │       │  Job Runner  │
│    Master    │       │  Ecosystem   │       │   (Worker)   │
│              │       │              │       │              │
│ Graph + RAG  │       │ UI, DB, Apps │       │ Test / Lint  │
│  & Metadata  │       │ & Features   │       │  Typecheck   │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜       ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜       ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜

šŸ“¦ Project Structure

nstok-mcp/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts                      # CLI entrypoint (Stdio transport)
│   ā”œā”€ā”€ server.ts                     # MCP server instance & tool registration
│   │
│   ā”œā”€ā”€ config/
│   │   └── environment.ts            # Environment variables, security allowlists, timeouts
│   │
│   ā”œā”€ā”€ domain/                       # Core domain models & graph types
│   │   ā”œā”€ā”€ app.ts                    # Application entity
│   │   ā”œā”€ā”€ feature.ts                # Feature & capability interfaces
│   │   ā”œā”€ā”€ component.ts              # UI component definitions
│   │   ā”œā”€ā”€ database.ts               # DB entities & relations
│   │   ā”œā”€ā”€ repository.ts             # Repository metadata & graph relationships
│   │   ā”œā”€ā”€ plan.ts                   # Structured AppPlan & FeaturePlan schemas
│   │   └── graph.ts                  # Graph nodes, edges & traversal results
│   │
│   ā”œā”€ā”€ services/                     # Business logic layers
│   │   ā”œā”€ā”€ knowledge.service.ts      # Hybrid search & graph traversal engine
│   │   ā”œā”€ā”€ repository.service.ts     # Sandboxed workspace operations & template cloning
│   │   ā”œā”€ā”€ generation.service.ts     # PRD analysis & Reuse Decision Engine
│   │   ā”œā”€ā”€ git.service.ts            # Git branching, commit, diff & PR workflow
│   │   ā”œā”€ā”€ validation.service.ts     # Architecture validator (UI-001, DB-001) & jobs
│   │   └── audit.service.ts          # Audit logging for tracking operations
│   │
│   ā”œā”€ā”€ tools/                        # MCP Tool definitions
│   │   ā”œā”€ā”€ knowledge/                # search_knowledge, find_features, find_ui_components, etc.
│   │   ā”œā”€ā”€ generation/               # analyze_prd, create_app_plan, create_app, etc.
│   │   ā”œā”€ā”€ repository/               # read_file, write_file, search_repo_code, git ops
│   │   └── validation/               # validate_architecture, run_tests, update_knowledge
│   │
│   └── data/
│       └── seed.ts                   # Pre-seeded NSTOK ecosystem metadata & graph
│
ā”œā”€ā”€ tests/
│   ā”œā”€ā”€ knowledge.test.ts             # Discovery & graph traversal tests
│   ā”œā”€ā”€ generation.test.ts            # PRD analysis & planning tests
│   ā”œā”€ā”€ validation.test.ts            # Architecture validation tests
│   └── server.test.ts                # Server instantiation & tool registration tests
│
ā”œā”€ā”€ package.json
ā”œā”€ā”€ tsconfig.json
└── README.md

šŸ› ļø Tool Catalog

1. Discovery & Knowledge Tools

Tool

Description

search_knowledge

Hybrid keyword and semantic search across knowledge assets, features, UI, and DB entities.

find_features

Discover reusable business features (Nstok-feature-a, b, c, etc.) matching capabilities.

find_ui_components

Find reusable design system components in Nstok-ui (DataTable, ProductTable, SearchInput, Button, etc.).

find_db_entities

Search database schemas and entity definitions in Nstok-db (Product, Inventory, Sale, User, etc.).

find_existing_patterns

Search established architectural patterns, code conventions, and guidelines in NSTOK.

get_project_context

Retrieve full repository metadata, contained assets, and graph edges for any NSTOK repo.

get_feature_context

Deep-dive feature context (routes, UI/DB dependencies, and graph traversal).

get_app_context

Retrieve full composition details and graph relations for an application.

2. Planning Tools

Tool

Description

analyze_prd

Analyze raw PRD text, extract required capabilities, match reusable vs missing assets, and calculate reuse score.

create_app_plan

Generate a structured application implementation plan following SEARCH → REUSE → ADAPT → CREATE.

create_feature_plan

Generate a structured feature development plan scaffolded from Nstok-feature-template.

3. Generation & Template Tools

Tool

Description

clone_app_template

Clone Nstok-app-template baseline into a new application workspace.

clone_feature_template

Clone Nstok-feature-template baseline into a new feature module.

add_feature_to_app

Link and integrate an existing or new feature module into an application.

create_app

End-to-end scaffolding orchestrator: clones template, wires reused features, creates missing features, and outputs app composition.

create_feature

Scaffold a new feature module from template when missing capabilities are required.

4. Repository & Git Tools

Tool

Description

read_file

Safely read file content within an NSTOK repository with audit logging.

write_file

Safely write or update a file within an NSTOK repository with audit logging.

search_repo_code

Search for code snippets and symbols within an NSTOK repository.

git_status

Get git status, active branch, and modified files for a repository.

git_diff

Inspect git diff before committing changes.

create_branch

Create a feature branch (feature/ai/<task>) adhering to NSTOK git workflow.

create_commit

Create a structured commit with conventional commit message.

create_pull_request

Propose a Pull Request to main branch for human review and approval.

5. Validation & Knowledge Loop Tools

Tool

Description

validate_architecture

Enforce architecture rules: UI-001 (no duplicate UI), DB-001 (Nstok-db access), ARCH-001, DEP-001.

run_tests

Run unit and integration test suites in an isolated environment.

run_lint

Run linting and static analysis on a repository.

run_build

Run project build and TypeScript compilation.

update_knowledge

Feed newly generated application or feature metadata back into Nstok-knowledge-master.


⚔ Quickstart & Installation

Prerequisites

  • Node.js >= 18 (Tested on Node.js 24)

  • npm >= 9

1. Installation

git clone <repository_url> nstok-mcp
cd nstok-mcp
npm install

2. Build

npm run build

3. Run Tests

npm test

4. Run Development Server

npm run dev

šŸ”Œ Configuration for MCP Clients

Codex / Antigravity / Claude Desktop Configuration

Add the following snippet to your mcp_config.json or claude_desktop_config.json:

{
  "mcpServers": {
    "nstok-software-factory": {
      "command": "node",
      "args": ["<PATH_TO_NSTOK_MCP>/dist/index.js"],
      "env": {
        "NODE_ENV": "production",
        "ENABLE_AUDIT_LOG": "true"
      }
    }
  }
}

šŸ”„ Example End-to-End Workflow

When a developer requests:

"Codex, please build nstok-app-w based on this PRD: POS with authentication, product catalog, inventory, checkout, and daily sales report."

The MCP server coordinates the following pipeline:

1. analyze_prd("Nstok-app-w", PRD)
   ā”œā”€ā”€ Extracted: auth, product, inventory, checkout, payment, sales-report
   ā”œā”€ā”€ Reused: Nstok-feature-a, Nstok-feature-b, Nstok-feature-c, checkout-payment
   ā”œā”€ā”€ Missing: sales-report (Scaffold Nstok-feature-sales-report)
   └── Reuse Score: 80%

2. create_app_plan("Nstok-app-w", PRD)
   └── Generates structured implementation plan

3. create_branch("Nstok-app-w", "feature/ai/create-nstok-app-w")

4. create_app("Nstok-app-w", PRD)
   ā”œā”€ā”€ Clones Nstok-app-template
   ā”œā”€ā”€ Links reused features
   └── Scaffolds Nstok-feature-sales-report from Nstok-feature-template

5. validate_architecture("Nstok-app-w")
   └── Checks UI-001 (all UI from Nstok-ui) and DB-001 (all schema from Nstok-db)

6. run_tests("Nstok-app-w") & run_build("Nstok-app-w")

7. create_commit("Nstok-app-w", "feat: initial scaffolding for nstok-app-w")

8. create_pull_request("Nstok-app-w", "feat: nstok-app-w implementation", summary)

9. update_knowledge(...)
   └── Central graph updated so future apps can reuse Nstok-feature-sales-report!

šŸ”’ Security Model

  • Repository Allowlist: Enforces Nstok-* repository naming pattern.

  • Path Traversal Protection: All filesystem reads and writes are sandboxed to the active workspace.

  • Audit Trail: Every mutation (write_file, create_branch, create_commit, create_pull_request) is appended to audit.log.jsonl.

  • Command Allowlist: Strict restrictions on executable commands (node, npm, npx, git, tsc).


šŸ“„ License

MIT Ā© NSTOK Engineering

Available Tools

29 tools
add_feature_to_appB

Integrate and link an existing or newly created feature into an application workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
appNameYesTarget application repository name (e.g. "Nstok-app-w")
featureRepositoryYesFeature repository to integrate (e.g. "Nstok-feature-a", "Nstok-feature-c")

TDQS

B3.1/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 behavioral burden. It implies a mutation (integrating and linking a repository), but does not disclose side effects, whether it modifies repository structure or config, whether the operation is reversible or idempotent, or any permission requirements — significant gaps for a write-like operation.

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

Conciseness4/5

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

A single efficient sentence with no wasted words, front-loading the verb. It is appropriately sized, though it could arguably trade a few words for a prerequisite or side-effect note.

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?

For a mutation tool with no annotations and no output schema, the description leaves out prerequisites, side effects, and expected outcome. An agent knows what the tool does at a high level but not enough about the operational context to invoke it confidently.

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 100%, with both appName and featureRepository documented in the schema with examples, so the baseline is 3. The description adds no meaning beyond the schema, only reinforcing that the feature may be existing or new.

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

Purpose4/5

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

States a specific compound verb ('Integrate and link') and resource ('an existing or newly created feature into an application workspace'), which clearly distinguishes the action from siblings like create_feature or clone_feature_template. It is clear what the tool does, though it does not name a sibling to contrast against.

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 phrase 'existing or newly created feature' implies this is the linking step that follows feature creation, which gives some contextual usage signal. However, there is no explicit when-to-use guidance, no stated prerequisites (e.g., the app and feature repositories must already exist), and no mention of alternatives such as create_feature.

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

analyze_prdB

Analyze a PRD text, extract required capabilities, match reusable vs missing assets, and compute reuse score.

ParametersJSON Schema
NameRequiredDescriptionDefault
prdYesProduct Requirement Document (PRD) text or feature list
appNameYesTarget application name (e.g. "nstok-app-w")

TDQS

B3.2/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 behavioral burden. It doesn't disclose whether the analysis is read-only, whether results are persisted to the knowledge base, whether it invokes other tools internally, or any permission/latency characteristics. For a compound four-stage pipeline tool, the behavioral surface is essentially undocumented.

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

Conciseness4/5

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

A single front-loaded sentence with the verb first and no filler. It is dense but every clause maps to a real capability; only the run-on enumeration keeps it from being ideal.

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?

With no output schema and no annotations, the description should explain more about what the agent gets back and how to act on it. Listing the computed artifacts (capabilities, matched/missing assets, reuse score) gives partial return-value intuition, but the workflow placement and result semantics remain thin.

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 100% and there are only 2 params, so the schema already documents both. The description mentions 'PRD text' and asset matching but adds no format, syntax, or size constraints beyond what the schema provides. Baseline 3 applies.

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 names a specific verb ('Analyze') and resource ('PRD text'), then enumerates the sub-operations: extract capabilities, match reusable vs missing assets, compute reuse score. This is far more informative than a tautology. However, it never distinguishes itself from siblings like find_existing_patterns or validate_architecture, which plausibly overlap in the 'reuse analysis' space.

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?

No explicit when-to-use or when-not-to-use guidance, and no named alternatives. The implied workflow (analyze a PRD before planning) is inferable, but the agent receives no routing instructions relative to the many find_*/create_* siblings.

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

clone_app_templateB

Clone the standard baseline Nstok-app-template to initialize a new application workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
appNameYesTarget application repository name (e.g. "Nstok-app-w")
templateNameNoBase template nameNstok-app-template

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden. It does not say whether the clone creates a remote repo, whether it overwrites or fails on an existing appName, what permissions are required, or whether the operation is 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?

A single sentence with no waste, and the object of the action is front-loaded so an agent can parse the intent immediately.

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?

For a workspace-creating mutation with no annotations and no output schema, one sentence is thin: the agent learns nothing about failure modes, collisions on appName, or what the call returns (e.g. a repo URL or app identifier) that it would need to proceed.

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 100% (both appName and templateName are documented with examples and a default), so the schema does the heavy lifting and the baseline is 3. The description adds no syntax, naming-constraint, or default-override guidance beyond what the schema already states.

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

Purpose4/5

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

States a specific verb ('Clone') plus the exact resource ('standard baseline Nstok-app-template') and the outcome ('initialize a new application workspace'). It is distinguishable from clone_feature_template by naming the app-level template, 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.

Usage Guidelines3/5

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

The trailing clause 'to initialize a new application workspace' implies the scenario in which to use it, but there is no explicit when-to-use, no prerequisite (e.g. must an app plan exist first), and no routing to alternatives like clone_feature_template or create_app.

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

clone_feature_templateC

Clone the standard Nstok-feature-template to initialize a new feature repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesShort summary of what this feature does
featureNameYesTarget feature repository name (e.g. "Nstok-feature-sales-report")
templateNameNoBase feature templateNstok-feature-template

TDQS

C2.9/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 behavioral burden. It says nothing about side effects, permissions, whether cloning is idempotent or fails on an existing name, or what artifact gets created and where. For a mutating scaffolding tool this is a notable gap.

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

Conciseness4/5

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

A single front-loaded sentence with no filler and the key resource named early. It is efficient, though too brief to count as fully optimized given the tool's complexity.

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?

For a mutation tool with zero annotations and no output schema, the description supplies only the one-line purpose. Missing are prerequisites, resulting artifact, name collisions, and error behavior — all of which matter for correctly invoking a scaffolding operation.

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 100%, so all three parameters (featureName, description, templateName with its default) are already documented in the schema. The description adds no format, naming-convention, or default-override detail beyond that, which is the expected baseline.

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 specific verb (clone) and resource (the Nstok-feature-template) plus the outcome (initialize a new feature repository). It is clear, but does not differentiate itself from siblings such as create_feature or clone_app_template, which perform adjacent scaffolding work.

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?

There is no guidance on when to use this instead of create_feature, create_feature_plan, or clone_app_template, nor any prerequisite or ordering information (e.g. whether an app must already exist). The agent must infer the workflow.

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

create_appC

Orchestrate end-to-end application generation from PRD, prioritizing feature reuse and template baselines.

ParametersJSON Schema
NameRequiredDescriptionDefault
prdYesPRD text containing features and capabilities
nameYesApplication name (e.g. "nstok-app-w")
templateNoApp template repository name (defaults to Nstok-app-template)

TDQS

C2.9/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 of behavioral disclosure. It does not state permissions required, side effects, reversibility, what gets created or modified in the repository, or whether the operation is long-running or rate-limited.

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

Conciseness4/5

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

A single front-loaded sentence with no filler or repetition. It is appropriately sized at a high level, though the terseness leaves no room for the structured guidance a complex orchestration tool may need.

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?

This is a high-complexity orchestration tool with no annotations and no output schema, yet the description does not cover prerequisites, execution flow, expected outcomes, or how it interacts with siblings like create_app_plan and clone_app_template. It is too thin for the tool's responsibility.

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 100%, so each parameter is already documented in the schema. The description mentions PRD and template baselines but adds no syntax, format, or behavioral meaning beyond what the schema provides, making the baseline 3 appropriate.

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

Purpose4/5

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

States a specific verb (orchestrate/generate) and resource (application from PRD), with mention of feature reuse and template baselines. However, it does not clearly distinguish this tool from siblings such as create_app_plan or clone_app_template.

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 explicit guidance on when to use this tool versus create_app_plan, create_feature_plan, or clone_app_template. The 'from PRD' phrasing implies a prerequisite but provides no when/when-not conditions or alternatives.

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

create_app_planC

Generate a structured application implementation plan following the SEARCH -> REUSE -> ADAPT -> CREATE principle.

ParametersJSON Schema
NameRequiredDescriptionDefault
prdYesPRD specifications or requirements
appNameYesTarget application name (e.g. "nstok-app-w")
templateNoCustom baseline template (defaults to Nstok-app-template)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It hints at a structured output and a methodology, but does not describe permissions, side effects, whether the plan is persisted, or what the response contains.

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, front-loaded sentence with no wasted words. It states the tool's purpose immediately and keeps the supporting methodology brief.

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?

There are no annotations and no output schema, so the description should explain more about usage context, expected output, and side effects. For a plan-generation tool that likely interacts with many sibling search, analysis, and creation tools, the definition is too terse to be complete.

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 100%, so the schema already documents all three parameters. The description adds no parameter-level semantics, which is acceptable under the high-coverage baseline, but it also provides no extra meaning beyond the schema.

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 and resource: generating a structured application implementation plan. It distinguishes itself from the sibling create_feature_plan by specifying an application-level plan, although it does not explicitly name that sibling or other related tools.

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?

It says what to generate but gives no guidance on when to use this tool versus alternatives such as analyze_prd, create_feature_plan, or create_app. There are no prerequisites, exclusions, or contextual triggers mentioned.

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

create_branchC

Create a new feature branch (e.g. feature/ai/create-nstok-app-w) following NSTOK git workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
branchNameYesNew branch name (e.g. "feature/ai/create-nstok-app-w")
repositoryYesRepository name

TDQS

C2.9/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. 'Create' implies a mutation, but it's silent on whether the branch is pushed to remote, what base branch it forks from, whether the name is validated, or whether failures are recoverable. Significant gaps 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.

Conciseness4/5

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

A single sentence with zero waste, and the naming convention is front-loaded. Efficient, though minimal.

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?

For a mutation tool with no annotations and no output schema, the definition is under-specified. It omits base branch, remote behavior, and success/failure outcomes that an agent needs before invoking it correctly.

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 100% and both branchName and repository are documented in the schema, including the same example. The description adds no new syntax or format meaning beyond what the schema already provides, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource: 'Create a new feature branch' following the NSTOK git workflow. Distinguishable from siblings like create_commit and create_pull_request. Lacks explicit differentiation from other creation tools but the object (branch) is unambiguous.

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 when-to-use guidance, prerequisites, or alternatives. It doesn't say whether this branch is created locally or remotely, or where in a workflow it fits relative to create_commit/create_pull_request.

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

create_commitC

Create a structured git commit with a conventional commit message.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoSpecific files to commit
messageYesCommit message following conventional commits
repositoryYesRepository name

TDQS

C2.9/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 disclosure burden. It does not say whether the commit stages files, what happens when 'files' is omitted (all changes vs. already-staged), whether it pushes, or what authorization/remote state is required for a mutation that alters repository history.

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

Conciseness4/5

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

A single well-formed sentence that front-loads the action and is free of padding. It is efficient, though it is arguably too terse for the mutation it performs.

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?

For a history-mutating tool with no annotations and no output schema, the description omits critical context: staging behavior, the effect of the optional files array, and any post-commit side effects. An agent could call it but would be guessing at several behaviors.

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 100%, with all three parameters documented inline, so the baseline is 3. The description repeats the conventional-commit expectation already stated in the message parameter's schema description and adds no new semantics.

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 specific verb and resource ('Create a ... git commit') plus the expected message format, which is enough to distinguish it from read-only siblings like git_status and git_diff. It stops short of differentiating itself from adjacent write tools such as create_branch or create_pull_request.

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?

There is no explicit guidance on when to commit versus when to use create_branch or create_pull_request, nor any prerequisites (working tree state, staged changes, branch context). Usage is only implied by the verb.

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

create_featureB

Scaffold a new feature module from Nstok-feature-template when missing capabilities are required.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoFeature description
featureNameYesFeature name (e.g. "sales-report")
capabilitiesYesList of capabilities provided by this feature (e.g. ["daily-summary", "revenue-analytics"])

TDQS

B3.2/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 behavioral burden. It says the tool scaffolds a module from a template, but does not disclose what files or directories are created, whether it overwrites or fails on existing features, what permissions are required, or what side effects occur. This is a significant gap 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.

Conciseness5/5

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

A single sentence with zero waste. The purpose and usage condition are front-loaded and no clarifying detail is buried or repeated.

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?

Given a mutation tool with no annotations and no output schema, the description is too thin. It does not explain the return value, what destination or project the feature is created in, or how this operation interacts with sibling tools. An agent is left guessing about critical context for correct invocation.

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 100%, so the schema already documents all three parameters with examples. The description adds no additional meaning or constraints for those parameters, so the baseline of 3 applies.

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 specific verb (scaffold) and resource (feature module from Nstok-feature-template). It does not differentiate this tool from close siblings like clone_feature_template, create_feature_plan, or add_feature_to_app, so an agent cannot tell from the description alone which one to pick.

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 phrase 'when missing capabilities are required' gives a clear condition for use, but there is no explicit when-not guidance and no mention of alternatives. An agent must infer how this differs from siblings that also create or add features.

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

create_feature_planC

Generate a structured feature development plan scaffolded from Nstok-feature-template.

ParametersJSON Schema
NameRequiredDescriptionDefault
featureNameYesFeature name (e.g. "sales-report", "loyalty-points")
capabilitiesYesList of capabilities provided by this new feature

TDQS

C2.9/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 behavioral burden, and it discloses almost nothing: it does not say whether files are written to disk, where the plan is stored or returned, whether the template 'Nstok-feature-template' must exist, or whether the operation is reversible. The reference to an unexplained template name adds no usable context.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the verb and resource lead. It loses a point only because the template identifier is opaque jargon that consumes words without informing the agent.

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?

For a tool that produces a plan artifact with no output schema and no annotations, the description omits what the generated plan contains, where it goes, and what to do next. An agent cannot predict the result or the side effects from this definition.

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 100% with only 2 simple string/array parameters, so the schema already explains featureName and capabilities fully. The description adds no format, naming-convention, or capability-granularity guidance beyond what the schema provides, making the baseline 3 appropriate.

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

Purpose4/5

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

States a specific verb (Generate) and resource (structured feature development plan) and names the source template, so the agent knows what artifact it produces. It does not, however, distinguish itself from close siblings like create_app_plan or clone_feature_template, which an agent could easily confuse it with.

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?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives. The agent is left to infer that this belongs to the planning phase rather than the implementation phase covered by create_feature or add_feature_to_app.

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

create_pull_requestB

Propose a Pull Request to main branch for human review and approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesPR description detailing reused features, UI components, and validation status
titleYesPR Title (e.g. "feat: initial scaffolding for nstok-app-w")
repositoryYesRepository name
targetBranchNoTarget base branchmain

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses that the result is a proposal requiring human review/approval rather than an auto-merge, but omits permission requirements, failure conditions (e.g. missing branch), and what happens after submission.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the core action and scope come first. It is lean but arguably thin for the operation it performs.

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?

A mutating tool with no annotations and no output schema needs the description to convey outcome and side effects. Here it omits return values, error behavior, and auth needs, leaving meaningful gaps.

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 100%, so the schema already documents repository, title, body, and targetBranch. The description says 'main branch' but adds no syntax or format detail beyond the schema's default for targetBranch, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Propose a Pull Request') plus the target scope ('to main branch'), distinguishing it from siblings like create_commit or create_branch. It doesn't explicitly name an alternative, but the action is unique among the git-related siblings.

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 phrase 'for human review and approval' implies it is the terminal step after committing/branching, giving implied usage. However, it never states when to use this versus create_commit or create_branch, nor any prerequisites such as an existing branch.

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

find_db_entitiesC

Search database schemas and entity definitions in Nstok-db (Product, Inventory, Sale, User, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch database entities by name, table name, or field name (e.g. "Product", "inventories", "sku")

TDQS

C2.9/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 behavioral burden. It never states that this is a read-only operation, nor does it describe result format, matching behavior (partial vs exact), result limits, or pagination. For a search tool with zero annotation coverage, that is a meaningful gap.

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

Conciseness4/5

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

A single efficient sentence with the resource and scope front-loaded and no filler. It is arguably terse for the amount of differentiation the agent needs, but nothing is wasted.

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?

With one optional parameter, no output schema, and no annotations, the description is minimally sufficient but leaves the agent guessing about return shape and how results differ from the other find_*/search_* tools. Adequate as a search stub, not complete.

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 100% with a single optional query parameter, so the schema already documents name/table/field matching and gives examples. The description adds the domain (Product, Inventory, Sale, User) but no syntax or matching 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.

Purpose4/5

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

States a specific verb (search) and resource (database schemas and entity definitions) scoped to the named Nstok-db system, with concrete examples (Product, Inventory, Sale, User). It does not, however, distinguish itself from sibling lookups like search_knowledge or find_existing_patterns, 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.

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance and no named alternative among the many find_* and search_* siblings. The agent must infer from the word 'search' alone that this targets schema/entity metadata rather than code, UI, or knowledge.

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

find_existing_patternsC

Search established architectural patterns, code conventions, and guidelines in NSTOK.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch pattern by keyword (e.g. "reuse", "template", "drizzle", "git")
categoryNoFilter by pattern category

TDQS

C2.9/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 disclosure burden, and it discloses almost nothing: no return shape, no result limits, no indication of whether it searches a repo, a knowledge base, or both, and no statement of what 'NSTOK' covers. 'Search' weakly implies a read-only operation, but that is the only behavioral signal.

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

Conciseness4/5

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

A single front-loaded sentence with no filler and the verb first. It is efficient, though arguably under-specified rather than deliberately tight.

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?

For a tool with no annotations and no output schema, the description leaves key questions unanswered: what counts as a 'pattern', how results are returned, and how this differs from search_knowledge. Two optional parameters mean invocation is not ambiguous, but the discovery context is thin.

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 100%, covering both 'query' (with examples like 'reuse', 'template', 'drizzle', 'git') and 'category', so the schema already does the heavy lifting. The description adds no query syntax, category values, or matching semantics beyond what the schema states, so the baseline 3 applies.

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 specific verb ('Search') and a concrete resource set ('established architectural patterns, code conventions, and guidelines') scoped to 'NSTOK'. An agent can tell it is a search/lookup tool for conventions. However, it does not distinguish itself from the sibling 'search_knowledge', which plausibly retrieves overlapping content, and 'NSTOK' is never defined.

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?

There is no guidance on when to use this versus search_knowledge, find_features, or find_db_entities, and no stated prerequisites or exclusions. The agent must infer timing 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.

find_featuresB

Discover reusable business features from the NSTOK ecosystem (e.g. Nstok-feature-a, b, c) matching capabilities or keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoKeyword to search within feature name, description, or capabilities
capabilitiesNoSpecific capabilities required (e.g. ["inventory", "stock-in"])

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full behavioral burden but only adds 'reusable' and 'NSTOK ecosystem' context. It doesn't state whether results are ranked, paginated, cached, or what the return shape looks like — important for a discovery tool.

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?

One front-loaded sentence with zero filler. The capability-matching scope is immediately clear.

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?

Adequate for a 2-param, 0-required discovery tool with no output schema, but leaves gaps: no indication of result format, ranking, or ecosystem scope boundaries. An agent can call it, but can't predict its output.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are documented in the schema. The description reiterates the matching concept but adds no syntax, format, or interaction details beyond what the schema already provides. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource ('Discover reusable business features from the NSTOK ecosystem'), giving concrete examples of feature names. However, it doesn't differentiate from siblings like find_existing_patterns or find_ui_components, which could appear to serve similar discovery purposes.

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 description implies usage ('matching capabilities or keywords') but offers no explicit when-to-use guidance or alternatives. An agent must infer that this searches features vs. other find_* tools 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.

find_ui_componentsB

Find reusable design system UI components in Nstok-ui (DataTable, ProductTable, SearchInput, Button, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch component by name, description, or prop name
categoryNoFilter by UI component category

TDQS

B3.3/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 implies a read-only search operation but does not disclose search behavior (e.g., fuzzy vs exact matching), whether results are paginated, or what the return format looks like. Examples of components add some context but fall short of behavioral transparency.

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 that states the purpose with zero wasted words. The examples are helpful and do not bloat the description.

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?

Given the tool's low complexity (2 optional params, no output schema), the description is adequate but leaves gaps: it does not indicate what the tool returns (e.g., list of components with names/descriptions) or how matching works. For a simple find tool, this is the minimum viable level.

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?

The schema has 100% description coverage for both parameters (query and category), so the baseline is 3. The description lists component examples that loosely relate to the query parameter but adds no syntax or format details beyond what the schema already provides.

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

Purpose4/5

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

States a specific verb (Find) and resource (reusable design system UI components in Nstok-ui), with concrete examples. It is clearly distinguishable from sibling tools like find_features or find_db_entities, though it does not explicitly name them.

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?

Usage is implied: use when you need to locate UI components. There is no explicit guidance on when to prefer this over search_knowledge or find_existing_patterns, nor any prerequisites or exclusions.

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

get_app_contextB

Get full application architecture and composition details for a generated or production app.

ParametersJSON Schema
NameRequiredDescriptionDefault
appNameYesApplication repository name (e.g. "Nstok-app-q", "Nstok-app-w")

TDQS

B3.2/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 behavioral burden. The word 'Get' implies a read, but it never states that the operation is read-only, mentions side effects, permission/auth requirements, rate limits, or whether results can be cached or are costly to fetch. For a context tool with zero annotation coverage, this is a notable gap.

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

Conciseness4/5

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

A single front-loaded sentence with no wasted words. It is efficient, though being one generic sentence it also contributes to the thin overall specification.

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?

No output schema exists, so the description should say more about what 'architecture and composition details' actually contains and how it should feed downstream planning tools. Combined with the absence of annotations, the definition is minimal but not misleading for a single-parameter read 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?

Schema description coverage is 100% and the single appName parameter is already documented with examples in the schema. The description adds no syntax, format, or sourcing guidance 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.

Purpose4/5

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

States a specific verb (Get) and resource (application architecture and composition details), and scopes it to 'generated or production app'. However, it does not distinguish itself from close siblings like get_project_context or get_feature_context, leaving the app/project boundary to inference.

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?

Usage is only implied by the phrase 'for a generated or production app'; there is no explicit when-to-use, no conditions selecting it over get_project_context/get_feature_context, and no prerequisites. Adequate but with clear routing gaps.

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

get_feature_contextA

Get deep-dive context for a specific feature, including capabilities, routes, UI/DB deps, and graph traversal.

ParametersJSON Schema
NameRequiredDescriptionDefault
featureIdYesID of the feature (e.g. "inventory-management", "auth-management")

TDQS

A3.5/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 burden. 'Get' plus a list of read-oriented artifacts (capabilities, routes, deps) implies a safe read operation, and it discloses the breadth of content returned, but it says nothing about traversal depth, cost, or limits. Adequate but not rich.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the content list is the useful part. Slightly dense with jargon ('graph traversal') that could have been unpacked without lengthening the sentence much.

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?

There is no output schema, so the description must indicate what comes back, and it does list the artifact categories. What remains missing is how deep the traversal goes and what the agent should do with the result, but for a single-parameter retrieval tool this is reasonably complete.

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?

Only one parameter and schema description coverage is 100%, with concrete example IDs in the schema, so the baseline is 3. The description adds no format or constraint detail about featureId beyond what the schema already supplies.

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?

Specific verb+resource: 'Get deep-dive context for a specific feature,' and it enumerates the returned content (capabilities, routes, UI/DB deps, graph traversal). It is distinguishable from siblings like find_features or search_knowledge, though it never names them to reinforce the distinction.

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?

Usage is only implied by the phrase 'for a specific feature,' which suggests it is the second step after locating a feature ID. There is no explicit when-to-use, when-not-to-use, or pointer to an alternative sibling such as find_features for discovery or get_app_context for broader scope.

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

get_project_contextC

Get full repository context, contained assets, and graph relationships for any NSTOK repo.

ParametersJSON Schema
NameRequiredDescriptionDefault
repositoryNameYesRepository name to inspect (e.g. "Nstok-ui", "Nstok-db", "Nstok-feature-a", "Nstok-app-q")

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden, and it discloses only that it returns assets and graph relationships. It does not state that it is read-only, whether it requires auth, how large the response may be, or what happens for an unknown repository name.

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

Conciseness4/5

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

One tightly written sentence with the resource front-loaded and no filler. It could be slightly sharper by naming the sibling tools it competes with, but nothing is wasted.

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?

For a single-parameter read tool this is close to adequate, and the description does hint at the returned content (context, assets, relationships). However, with no output schema and no annotations, the return shape and safety profile remain only partially specified.

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 100% and there is a single, required repositoryName parameter whose schema description already includes concrete examples. The prose adds no syntax or edge-case meaning 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.

Purpose4/5

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

The description names a specific verb ('Get') and resource ('repository context') and enumerates what it returns — contained assets and graph relationships — for any NSTOK repo. It is distinguishable from the app- and feature-scoped siblings by its repo-level scope, though it never explicitly contrasts itself with get_app_context or get_feature_context.

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?

There is no guidance on when to reach for this tool versus the very similar get_app_context, get_feature_context, or find_* siblings. The agent must infer that 'repo level' is the differentiator, and no prerequisites or exclusions are stated.

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

git_diffB

Inspect git diff in a repository before committing mutations.

ParametersJSON Schema
NameRequiredDescriptionDefault
stagedNoWhether to view staged diff only
repositoryYesRepository name

TDQS

B3.2/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 behavioral burden. It implies a read-only inspection, but does not state whether the operation is side-effect free, what the return format is, whether the working tree or a specific commit is diffed, or any safety/permission requirements.

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

Conciseness4/5

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

A single short sentence, front-loaded with the verb and resource. Nothing is wasted, though the trailing clause is doing more usage work than strict concision.

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?

With no annotations and no output schema, the description should compensate more than it does. It omits what the diff returns (e.g., whether it includes staged/unstaged by default), leaving a read-only inspection tool slightly under-specified for an agent to call confidently.

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 100%, so both 'staged' and 'repository' are already documented in the schema; baseline 3 applies. The description's context about inspecting before commits adds framing but no syntax or default-value detail beyond what the schema supplies.

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

Purpose4/5

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

States a specific verb ('Inspect') and resource ('git diff in a repository'), which is enough to separate it from siblings like git_status and create_commit. However, it never explicitly contrasts itself with git_status, which is the closest alternative, 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.

Usage Guidelines3/5

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

'before committing mutations' does imply a usage context (call this prior to create_commit), which is more than nothing. But there is no explicit when-to-use guidance, no exclusions, and no naming of the alternative git_status, so usage is only implied.

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

git_statusB

Get git status, active branch, and modified files for a repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
repositoryYesRepository name (e.g. "Nstok-app-w")

TDQS

B3.4/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 disclosure burden. The verb 'Get' implies a read-only operation with no side effects, which is meaningful, but it does not explicitly state that it is non-mutating or describe what happens on an invalid repository.

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 that names the action and its outputs with no filler. 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 simple one-parameter read tool, the description covers what the caller receives (status, branch, modified files), which compensates for the absence of an output schema. Only minor gaps remain around usage context.

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 100% and the single 'repository' parameter is documented there, so the schema already does the work. The description adds no syntax, format, or naming detail beyond what the schema provides, warranting the baseline 3.

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 specific verb ('Get') and enumerates what is retrieved: git status, active branch, and modified files. This distinguishes it reasonably from the sibling git_diff, which returns diffs rather than a status summary, 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.

Usage Guidelines2/5

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

There is no indication of when to use this tool versus alternatives such as git_diff, nor any prerequisites or exclusions. The agent must infer usage 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.

read_fileB

Safely read a file inside an NSTOK repository with audit logging and sandbox isolation.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path to file within the repository
repositoryYesRepository name (e.g. "Nstok-app-w", "Nstok-ui")

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, and it does add genuine context: audit logging and sandbox isolation tell the agent reads are logged and isolated. However, it omits error behavior, size/binary file handling, and permission requirements, leaving meaningful gaps for a file-access tool.

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

Conciseness4/5

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

A single front-loaded sentence with no filler or redundancy. It is efficient, though 'Safely' is a slightly vague qualifier that could have been spent on more concrete 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 simple two-parameter read tool with fully documented parameters and no output schema, the description covers the essentials and adds sandbox/audit context. It is close to complete, missing only edge-case behavior such as missing files or unreadable paths.

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 100%, with both 'path' and 'repository' documented in the schema itself, so the baseline is 3. The description adds no format, example, or constraint detail beyond what the schema already provides.

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

Purpose4/5

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

States a specific verb and resource ('read a file inside an NSTOK repository'), which is unambiguous. It does not name or distinguish itself from the obvious sibling write_file, but the verb-resource pairing is clear enough to identify the operation.

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?

The description gives no guidance on when to use this versus alternatives such as search_repo_code or write_file, nor any prerequisites beyond the implicit need for a repository and path. Usage is only implied by the tool name.

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

run_buildC

Run build and TypeScript type-checking for an application or feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
repositoryYesRepository name to run compilation and build for

TDQS

C2.9/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 behavioral burden. It does not disclose that the build may be long-running, that it produces artifacts or side effects, whether failures are reported as errors or exit codes, or what the agent receives on success vs failure.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. It is appropriately sized, though it is terse enough that it leaves gaps a slightly longer sentence could have closed.

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?

With no annotations, no output schema, and no return-value description, the agent has no idea what a successful or failed build yields (compiler errors? pass/fail flag?). For a verification tool in a repo of 30+ siblings, this is a notable gap.

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

Parameters3/5

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

Schema coverage is 100% and there is only one parameter, whose description already explains it takes a repository name. The description adds nothing beyond the schema and actually introduces a mild mismatch by referring to 'an application or feature' while the only parameter is 'repository'. Baseline 3 is appropriate.

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 gives a specific verb (run) and resource (build and TypeScript type-checking), which is more precise than the bare name. It implicitly differentiates from run_tests and run_lint by naming compilation/type-checking, but never explicitly states how it differs from those siblings.

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?

There is no guidance on when to invoke this versus run_tests or run_lint, no stated prerequisites (e.g. dependencies installed), and no note on whether it should be run before creating a PR. The agent must infer all routing logic 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.

run_lintC

Run linting and static analysis on an NSTOK repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
repositoryYesRepository name to run static analysis and linting for

TDQS

C2.9/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 behavioral burden, and it discloses almost nothing. It does not say whether linting is read-only or can auto-fix/rewrite files, whether it blocks or reports, what happens on failure, or whether the repository must exist locally. Only 'static analysis' hints at a non-mutating read, which is a thin signal.

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

Conciseness4/5

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

A single front-loaded sentence with no filler or redundancy. It is efficient, though so terse that conciseness edges toward under-specification rather than crisp completeness.

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?

For a one-parameter tool with full schema coverage and no output schema, the definition is minimally sufficient to invoke correctly. It is missing outcome context — what the tool produces, how diagnostics are surfaced, and whether failure is expected behavior — that an agent would want before committing to a lint run.

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?

With one parameter and 100% schema description coverage, the schema already documents 'repository' fully. The description adds only indirect value by naming the target ecosystem ('NSTOK repository'), which lightly clarifies what a valid repository value looks like, but adds no format or naming specifics.

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 concrete verb and resource ('Run linting and static analysis') on a clearly scoped target ('an NSTOK repository'), so an agent can tell what the tool does. It does not, however, distinguish itself from close siblings such as run_tests, run_build, or validate_architecture, which all occupy the same 'check the code' space.

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?

There is no when-to-use guidance, no preconditions (e.g. code must already be written or a branch checked out), and no mention of alternatives like run_tests or validate_architecture. The agent is left to infer that this tool is for pre-commit quality checks.

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

run_testsC

Run unit and integration test suites in an isolated environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
repositoryYesRepository name to run unit & integration tests for
testFilterNoOptional test pattern/filter to run specific test files

TDQS

C2.9/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 discloses one trait—execution in an 'isolated environment'—but says nothing about failure behavior, timeouts, resource limits, or whether tests can mutate state.

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

Conciseness4/5

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

A single efficient sentence with the key scope front-loaded. Nothing is wasted, though it is arguably terse for a test-runner with unstated return semantics.

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?

With no output schema and no annotations, the description should explain what a run returns (pass/fail, logs, how failures surface). It leaves the agent unable to predict the result shape for a tool whose entire value is its output.

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 100%, so both parameters (repository, testFilter) are already documented in the schema. The description adds no syntax, format, or default 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.

Purpose4/5

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

States a specific verb and resource ('Run unit and integration test suites'), and the scope narrows it versus generic build/lint tools. It doesn't explicitly name a sibling (e.g., run_lint, run_build), 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.

Usage Guidelines2/5

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 like run_lint or run_build. The agent must infer that this is the tool for verifying code correctness.

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

search_knowledgeC

Search across all NSTOK knowledge assets, features, UI components, DB entities, patterns, and repositories using hybrid search.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by asset type
queryYesSearch query text or keywords for knowledge assets, features, UI, or DB entities
repositoryNoFilter by repository name (e.g. Nstok-ui, Nstok-db)

TDQS

C2.9/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 behavioral burden. It discloses that search is 'hybrid' (a useful signal about semantic+keyword matching), but says nothing about result limits, pagination, ranking, or what a result object contains. For a search tool with zero annotation coverage this is a meaningful gap.

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

Conciseness4/5

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

A single front-loaded sentence with the verb-first structure and no filler. The enumeration of asset types is informative rather than wasteful, though 'all NSTOK knowledge assets' is slightly redundant with the list that follows.

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?

There is no output schema, so the description is the only source of return-value context, and it never describes what results look like (ranked matches? ids? snippets?). It is sufficient to trigger a call but incomplete for interpreting the response or understanding limits.

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 100%, so the schema already documents query, type, and repository. The description adds no syntax, format, or ranking details beyond what the schema provides, so baseline 3 is correct.

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

Purpose4/5

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

States a specific verb (search) and enumerates the resource scope (NSTOK knowledge assets, features, UI components, DB entities, patterns, repositories). The enumeration implicitly maps to the type-specific siblings (find_features, find_ui_components, etc.), but it never explicitly frames itself as the unified alternative to those tools, leaving the differentiation to inference.

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?

There is no explicit when-to-use, when-not-to-use, or identification of the find_features/find_ui_components/find_db_entities alternatives. 'Across all' hints at cross-type search but the agent must infer the selection criterion itself. No guidance on when a scoped find_* call would be preferable.

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

search_repo_codeC

Search for code snippets, symbol definitions, and text within an NSTOK repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesString to search for in files
extensionsNoFile extensions to include (e.g. [".ts", ".tsx"])
repositoryYesRepository name (e.g. "Nstok-app-w", "Nstok-ui")

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does not state that the operation is read-only (though implied), nor does it describe return format, pagination, search behavior, or any constraints—leaving the agent with minimal 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.

Conciseness5/5

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

A single, front-loaded sentence that states the core purpose with zero waste. It is appropriately sized for a search tool.

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?

For a search tool with no output schema and no annotations, the description is incomplete. It does not explain the return format, result ordering, or any behavioral aspects needed to interpret results, leaving significant gaps.

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 100%, so the schema already documents all three parameters with examples. The description adds no additional semantic detail about parameters (e.g., query syntax, repository naming conventions) beyond what the schema provides, fitting the baseline of 3.

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

Purpose4/5

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

States a specific verb 'Search' and the resource: code snippets, symbol definitions, and text within an NSTOK repository. However, it does not differentiate from sibling tools like search_knowledge or find_features, so an agent must infer when to prefer this tool.

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?

There is no guidance on when to use this tool versus alternatives such as search_knowledge, find_features, or find_ui_components. The description only states what it does, not when it is appropriate or what alternatives exist.

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

update_knowledgeC

Feed newly generated application or feature metadata back into Nstok-knowledge-master.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUnique identifier of the newly created entity (e.g. "sales-report", "Nstok-app-w")
nameYesHuman readable name of the asset
typeYesAsset type
dbEntitiesNoDB entities used by this asset
repositoryYesRepository containing the asset
descriptionYesOverview of what the asset does
capabilitiesNoList of capabilities provided
dependenciesNoDependencies used by this asset
uiComponentsNoUI components used by this asset
relationshipsNoGraph relationships to link

TDQS

C2.6/5.0
Behavior2/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 falls short. It never states whether this creates or overwrites an existing knowledge entry, whether it is idempotent on a repeated id, what permissions are needed, or what side effects graph relationships have. The name says "update" while the body says "feed newly generated ... metadata," leaving the create-vs-upsert semantics ambiguous.

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

Conciseness4/5

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

It is a single sentence with no filler and the target system is front-loaded. It is efficient, though terse enough that the brevity edges toward under-specification rather than crispness.

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?

For a 10-parameter mutation tool with 5 required fields, an enum-typed relationship edge structure, no output schema, and no annotations, one sentence is not enough. Missing are the create-vs-upsert semantics, what the relationship types mean when linking assets, and what a successful call returns.

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 100%, so each of the 10 parameters is already documented in the schema, which sets the baseline at 3. The description adds nothing about parameters, not even the existence of the relationships or dbEntities graph fields.

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

Purpose3/5

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

The description gives a loose verb phrase ("Feed ... back into") and a named resource ("Nstok-knowledge-master"), so the agent can infer it writes metadata into a knowledge base. However, it understates the scope: the schema supports six asset types (feature, ui_component, db_entity, application, repository, pattern) plus relationship edges, while the description only mentions "application or feature metadata." It also doesn't distinguish this from siblings like create_app or create_feature.

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?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as create_feature or add_feature_to_app, which mutate overlapping data. The single clause "newly generated" is the only usage cue and it is implicit at best.

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

validate_architectureC

Validate that code obeys NSTOK architectural rules (UI-001, DB-001, ARCH-001, DEP-001).

ParametersJSON Schema
NameRequiredDescriptionDefault
repositoryYesRepository name to validate (e.g. "Nstok-app-w")

TDQS

C2.9/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 discloses the rule families being checked but says nothing about whether the operation is read-only, whether it mutates or generates artifacts, what it returns, or how failures are reported.

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?

One sentence, front-loaded with the action and resource, with the rule identifiers parenthetically appended. Zero waste.

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?

This is a validation tool with no output schema and no annotations, so the description should explain what a result looks like (pass/fail, violation list, exit behavior). It omits that entirely, and also doesn't clarify the validation scope (whole repo vs. changed files).

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 100% and the single repository parameter is documented in the schema with an example value. The description adds no syntax, scope, or defaulting detail beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb ("Validate") and a specific resource (code against NSTOK architectural rules), and even names the rule families checked (UI-001, DB-001, ARCH-001, DEP-001). It does not differentiate itself from adjacent checking siblings such as run_lint or run_tests, so it falls 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.

Usage Guidelines2/5

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

There is no statement of when to invoke this versus run_lint, run_tests, or run_build, and no prerequisites or timing guidance. The agent must infer that this is a post-change compliance check.

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

write_fileB

Safely write or update a file inside an NSTOK repository with audit logging.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path to file within the repository
contentYesFull file content to write
overwriteNoWhether to overwrite if file already exists
repositoryYesRepository name (e.g. "Nstok-app-w", "Nstok-feature-sales-report")

TDQS

B3.2/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 burden. It adds two useful behaviors: 'safely' (implying guard rails) and 'audit logging' (a side effect not visible in schema). However, it does not disclose permissions required, what 'safely' means operationally, or reversal semantics for destructive overwrites.

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?

Single sentence, front-loaded with the verb and resource, with no filler.

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?

For a mutating file-write tool with no annotations and no output schema, the description omits critical context: required repository permissions, behavior on overwrite:false when the file exists, and what 'safely' guarantees. It leaves the agent unable to predict failure modes.

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

Parameters3/5

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

Schema coverage is 100% and documents all four parameters including 'overwrite' default true. The description adds no parameter-level detail beyond what the schema already provides.

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?

Clear verb+resource: 'write or update a file inside an NSTOK repository'. Distinguishes from read_file and create_* siblings by naming the write action and scoping to file operations, though it doesn't explicitly name an alternative for when not to use it.

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 indication of when to use this vs. alternatives (e.g., create_branch/create_commit for versioned changes, or read_file for reads). The agent must infer usage purely from the verb 'write'.

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. 29 tool updatesv1.0.0
    • First observedadd_feature_to_app
    • First observedanalyze_prd
    • First observedclone_app_template
    • First observedclone_feature_template
    • First observedcreate_app
    • First observedcreate_app_plan
    • First observedcreate_branch
    • First observedcreate_commit
    • First observedcreate_feature
    • First observedcreate_feature_plan
    • First observedcreate_pull_request
    • First observedfind_db_entities
    • First observedfind_existing_patterns
    • First observedfind_features
    • First observedfind_ui_components
    • First observedget_app_context
    • First observedget_feature_context
    • First observedget_project_context
    • First observedgit_diff
    • First observedgit_status
    • First observedread_file
    • First observedrun_build
    • First observedrun_lint
    • First observedrun_tests
    • First observedsearch_knowledge
    • First observedsearch_repo_code
    • First observedupdate_knowledge
    • First observedvalidate_architecture
    • First observedwrite_file

TDQS

C2.9/5.0

Scored across 29 tools

Disambiguation3/5

Several tools have overlapping purposes: search_knowledge, find_features, find_ui_components, find_db_entities, find_existing_patterns, and search_repo_code all perform search-like operations. Similarly, create_app_plan and create_feature_plan both generate plans. However, descriptions provide some distinction through specific resource types and workflows.

Naming Consistency4/5

Most tools follow a verb_noun pattern (e.g., search_knowledge, find_features, create_app_plan, clone_app_template). Minor deviations like get_project_context and run_tests are still readable and consistent with the pattern. Overall naming is predictable and consistent.

Tool Count2/5

With 29 tools, the set is heavy and may overwhelm an agent. The high count is somewhat justified by the complex domain of software generation and knowledge management, but several tools appear redundant (e.g., multiple find_ tools, multiple create_plan tools), suggesting over-scoping.

Completeness4/5

The surface covers search, planning, creation, file operations, git workflow, validation, testing, and knowledge updating, which is comprehensive for a software factory. Minor gaps might include direct code editing tools or more granular git operations (e.g., merge, delete branch), but core workflows appear covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers