Skip to main content
Glama
TechQuanta

init-app-mcp

by TechQuanta

init-app-mcp

Python 3.10+ MCP License: MIT

An independent FastMCP server that helps MCP-compatible AI clients understand the init-app CLI and construct valid commands from a user's project needs.

init-app-mcp does not import, install, or execute init-app. It owns a versioned capability catalog and returns metadata, recommendations, and command arguments only. The client or its user decides whether and where to run the returned command.

What it does

  • Explains the init-app command contract and valid flags.

  • Lists supported web and specialized project blueprints.

  • Converts plain-English requirements into relevant, supported flag choices.

  • Validates confirmed choices and returns the exact command arguments.

  • Never creates files, starts processes, or runs shell commands.

Related MCP server: Ramoira MCP Server

Requirements

  • Python 3.10 or later

  • MCP Python SDK v1 (mcp>=1,<2), which provides FastMCP

Installation

Install from a clone:

git clone https://github.com/ashmeet07/init-app-mcp.git
cd init-app-mcp
python -m pip install .

For development:

python -m pip install -e ".[dev]"
python -m pytest

MCP client configuration

Configure an MCP client to use stdio transport:

{
  "mcpServers": {
    "init-app": {
      "command": "init-app-mcp"
    }
  }
}

If your client requires an absolute Python executable, use:

{
  "mcpServers": {
    "init-app": {
      "command": "/absolute/path/to/python",
      "args": ["-m", "init_app_mcp.server"]
    }
  }
}

Manual diagnostics

The default command starts a stdio MCP server, so it expects JSON-RPC messages from an MCP client such as VS Code. Do not press Enter after starting it in a terminal; a blank line is not a valid MCP request.

Use these commands to inspect the installed server manually instead:

.\.venv\Scripts\init-app-mcp.exe --list-tools
.\.venv\Scripts\init-app-mcp.exe --metadata

To run a local HTTP MCP endpoint for manual client testing, use:

.\.venv\Scripts\init-app-mcp.exe --transport streamable-http --port 8001

It listens on http://127.0.0.1:8001/mcp. Choose another available port if needed. Keep that terminal open while your MCP client is connected. Press Ctrl+C to stop it.

Tools

Tool

Purpose

get_init_app_command_metadata

Returns the CLI contract, flag definitions, allowed values, and recommended workflow.

list_project_blueprints

Lists all web and specialized project blueprints supported by the catalog.

recommend_init_app_flags

Maps a user's natural-language requirements to suggested flags, reasoning, and follow-up questions.

build_init_app_command

Validates user-confirmed options and returns portable init-app command arguments.

  1. Call get_init_app_command_metadata to learn the command schema.

  2. Call recommend_init_app_flags with the user's request.

  3. Show the suggested flags and answer any follow-up questions with the user.

  4. Call build_init_app_command using the confirmed values.

  5. Present the final command for the user to run.

Example user request:

I need a production REST API with PostgreSQL, Docker, and Kubernetes.

The recommendation tool suggests a selection similar to:

{
  "framework": "fastapi",
  "strategy": "production",
  "database": "postgresql",
  "server": "gunicorn",
  "venv": true
}

After the project name and output directory are confirmed, call build_init_app_command. It returns arguments equivalent to:

init-app billing-api --framework fastapi --type production --db postgresql --venv y --server gunicorn --output-dir ./projects

Development

python -m pytest
python -m py_compile src/init_app_mcp/server.py src/init_app_mcp/service.py src/init_app_mcp/catalog.py

Continuous integration runs this validation on Python 3.10 through 3.13 for every pull request to main.

The project uses a source layout. Its capability catalog lives in src/init_app_mcp/catalog.py; update that catalog and its tests whenever init-app adds or changes CLI capabilities.

Safety model

This package is intentionally advisory. It does not access a user's project directory, execute init-app, write files, or invoke a shell. A compatible client must obtain user confirmation before running any recommended command.

Release checklist

Before releasing a catalog update:

  1. Compare src/init_app_mcp/catalog.py with the supported init-app CLI.

  2. Update catalog tests for every new or changed flag or blueprint.

  3. Run the development checks above and inspect --list-tools.

  4. Open a pull request from feat to main and let CI pass before merging.

License

Distributed under the MIT License.

Available Tools

4 tools
build_init_app_commandB

Final step: validate confirmed user selections and return an init-app command without running it.

ParametersJSON Schema
NameRequiredDescriptionDefault
drfNo
venvNo
serverNo
databaseNosqlite
strategyNostandard
frameworkNofastapi
output_dirNo
project_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It does disclose a key trait: the command is returned but not executed, which implies no system mutation. However, it does not explain what 'validate' entails, whether invalid selections produce errors, or any side effects beyond command construction.

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 compact sentence with no filler. Key details are front-loaded: 'Final step', 'validate', 'return', and 'without running it' all appear early and each phrase earns its place.

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 8 parameters万余 and no annotations, the description provides only a high-level role. It omits parameter semantics, usage context relative to siblings, and validation behavior. The presence of an output schema reduces the need to explain return values, but the remaining gaps are significant.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no parameter-level meaning beyond saying 'confirmed user selections'. With 8 parameters and only the schema titles/defaults available, the description fails to compensate for the lack of parameter documentation.

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 action ('validate', 'return') and a clear resource ('init-app command'), and clarifies that it does not run the command. It distinguishes itself from siblings by framing this as the 'final step' in the workflow, though it does not explicitly name alternatives.

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 'Final step' and 'confirmed user selections' imply this tool should be used after other steps such as recommendation or metadata gathering. However, there is no explicit when-to-use versus when-not-to-use guidance, nor any mention of sibling tools like recommend_init_app_flags.

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

get_init_app_command_metadataA

First step: return init-app command metadata, flags, values, and workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/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 of behavioral disclosure. It states the tool returns metadata, flags, values, and workflow, clearly indicating a read-only operation. However, it does not disclose any potential edge cases, dependencies, or side effects, though the absence of parameters makes such details less critical. The description is functional but not rich in 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?

The description is a single sentence that front-loads the key workflow label ('First step') and then enumerates the exact content returned. Every word contributes to the agent's understanding, and there is no wasted text.

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

Completeness4/5

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

Given the tool has no parameters and an output schema exists, the description provides sufficient context: it labels the tool as the initial step and lists the outputs (metadata, flags, values, workflow). It does not explain the workflow itself, but that is likely part of the output schema, so the description need not be more detailed. The minimal complexity makes this complete enough.

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

Parameters4/5

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

The input schema has no properties, so parameter semantics are trivially complete. The rubric assigns a baseline of 4 for zero-parameter tools, and the description does not need to add parameter meaning. It appropriately avoids discussing parameters that do not exist.

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: 'return init-app command metadata, flags, values, and workflow.' It is specific about what the tool does and identifies the init-app command as its subject. However, it does not directly name sibling tools or highlight how it differs from them, so it stops short of the highest clarity level.

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 opens with 'First step,' which implies a recommended position in a workflow but gives no explicit guidance on when to choose this tool over siblings like build_init_app_command or recommend_init_app_flags. There are no stated alternatives or exclusions, leaving the agent to infer usage from the label 'First step.'

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

list_project_blueprintsA

List every web and specialized project type supported by init-app.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. Saying 'List every' conveys exhaustive, unfiltered enumeration and the verb 'List' implies a read-only operation; this is sufficient for a zero-parameter list tool, though it does not mention performance or output-size caveats.

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, no filler, front-loaded verb and object. Every word earns its place.

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

Completeness4/5

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

Given the zero-parameter schema and presence of an output schema, the description is nearly complete for calling the tool correctly. It could add one phrase about when to use it within the init-app flow, but no critical operational detail is missing.

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

Parameters4/5

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

There are no parameters, and schema coverage is 100%, so there is nothing for the description to add. The baseline for a no-parameter tool is 4.

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

Purpose5/5

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

The description uses a specific verb ('List') and names a concrete resource ('every web and specialized project type supported by init-app'). This clearly distinguishes the tool from siblings that fetch metadata, recommend flags, or build commands.

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 purpose implies when to use it: whenever an agent needs the complete set of supported project types. However, it does not explicitly state when to prefer one sibling over another or mention any exclusions or alternative conditions.

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

recommend_init_app_flagsB

Second step: derive supported init-app flags and clarification questions from a user query.

ParametersJSON Schema
NameRequiredDescriptionDefault
requirementsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 behavioral disclosure burden. It conveys that the tool derives supported flags and may surface clarification questions, indicating a non-destructive analysis/computation operation. It does not explicitly state read-only behavior, determinism, or how ambiguity is handled, but the core behavior is visible.

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 one short sentence with no filler, and the workflow position is front-loaded. It communicates the essential purpose without wasting tokens.

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 an output schema, so return values do not need elaboration, and there is only one parameter. However, the description lacks pipeline context (what the first step is and how this output feeds build_init_app_command), and the requirement semantics are left vague.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain the 'requirements' parameter. It only equates it with a 'user query,' which adds minimal meaning beyond the parameter name; it does not describe expected string format, level of detail, or how the query should be constructed.

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 ('derive') and outputs ('supported init-app flags and clarification questions') from a 'user query', making the tool's function identifiable. It also signals a workflow stage ('Second step'), which helps distinguish it from build_init_app_command, though it does not explicitly contrast with 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 only usage guidance is 'Second step,' which implies this belongs in a broader pipeline and gives some sense of when to call it. It does not state when to prefer this over get_init_app_command_metadata, list_project_blueprints, or build_init_app_command, nor does it provide exclusions or alternatives.

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. 4 tool updatesv0.1.0
    • First observedbuild_init_app_command
    • First observedget_init_app_command_metadata
    • First observedlist_project_blueprints
    • First observedrecommend_init_app_flags

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation4/5

Each tool has a distinct role in the workflow: metadata retrieval, blueprint listing, flag recommendation, and command construction. The descriptions clearly separate responsibilities, though 'recommend_init_app_flags' and 'build_init_app_command' could overlap slightly in purpose, but context disambiguates them.

Naming Consistency4/5

All tools follow a verb_object pattern (get, list, recommend, build). The only deviation is 'list_project_blueprints' missing the 'init_app' domain qualifier that the other three share, which is a minor inconsistency in naming scope rather than syntax.

Tool Count5/5

Four tools is an ideal size for a focused init-command helper. Each tool serves a clear step in the process without redundancy or unnecessary surface area, making the set well-scoped and easy to navigate.

Completeness4/5

The workflow is explicitly covered from metadata through blueprint listing, flag recommendation, and final command construction. The only notable gap is that there is no tool to actually execute the command, but this appears intentional for a command-builder server, so completeness is high for its stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Dynamically exposes CLI/bash commands as MCP tools and creates structured AI prompt templates through simple YAML configuration files, enabling users to transform any command-line tool into an MCP-compatible interface without writing code.
    20
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Exposes the Ramoira brand schema specification as MCP tools and resources, enabling LLMs to generate, validate, or reason about brand schemas without the CLI.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to call any CLI tool by scanning its help output and serving it as an MCP server.
    1
    GPL 3.0