Skip to main content
Glama

ai2dev-mcp

An MCP server that a frontend can talk to in order to design software projects the same way AI2DEV does: draft a design document with an LLM, refine it based on feedback, answer follow-up questions, and finally hand the finished document to the AI2DEV API to create the project.

Tools exposed

Tool

What it does

generate_design_document

Calls the LLM to draft a structured markdown design document from a project name, requirements, and optional audience/constraints.

refine_design_document

Calls the LLM to revise an existing design document based on feedback, keeping its structure.

ask_question

Calls the LLM to answer any question, optionally grounded in supplied context (e.g. the current design document).

create_ai2dev_project

Calls the AI2DEV API to create a project from a finalized design document.

Related MCP server: Lockstep Core

Setup

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env  # fill in ANTHROPIC_API_KEY and AI2DEV_API_KEY

Required environment variables:

  • ANTHROPIC_API_KEY — used by the LLM tools (design doc generation/refinement, Q&A).

  • ANTHROPIC_MODEL — defaults to claude-opus-4-8.

  • AI2DEV_API_BASE_URL — base URL of the AI2DEV API (defaults to a placeholder; set to your real endpoint).

  • AI2DEV_API_KEY — bearer token for the AI2DEV API.

Running

As a stdio MCP server (what most MCP clients/frontends expect):

python -m ai2dev_mcp.server
# or, after `pip install -e .`
ai2dev-mcp-server

For local interactive testing with the MCP Inspector:

mcp dev src/ai2dev_mcp/server.py

Connecting a frontend / MCP client

Point your MCP client at the command above and pass the environment variables through its env config, e.g. for a JSON-based MCP client config:

{
  "mcpServers": {
    "ai2dev-design": {
      "command": "ai2dev-mcp-server",
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-...",
        "AI2DEV_API_BASE_URL": "https://api.ai2dev.example.com",
        "AI2DEV_API_KEY": "..."
      }
    }
  }
}

Tests

pytest

Project layout

src/ai2dev_mcp/
  config.py        # env-driven settings
  llm.py            # Anthropic-backed design doc generation/refinement/Q&A
  ai2dev_client.py  # HTTP client for the AI2DEV project-creation API
  server.py         # FastMCP server wiring the tools together
tests/
  test_server.py

Available Tools

4 tools
ask_questionB

Answer a free-form question, optionally grounded in supplied context (e.g. a design doc).

Args: question: The user's question. context: Optional supporting context, such as a design document.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNo
questionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description lacks details about behavioral traits such as external dependencies, logging, or limitations, leaving the agent with minimal behavioral insight.

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?

The description is concise, with a clear first sentence stating the purpose, though the args list somewhat duplicates the schema. It is well-structured but could be slightly more streamlined.

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 presence of an output schema, the description adequately covers the core function, but lacks behavioral context and usage guidelines, making it minimally complete for a tool with no annotations.

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 0% schema description coverage, the description adds some meaning by defining 'question' and 'context' with examples, but does not fully compensate for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states 'Answer a free-form question' and mentions optional grounding in context, which distinguishes it from siblings focused on creating or refining design documents.

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 for asking questions with optional context, but does not explicitly specify when to use this tool versus alternatives or provide exclusions.

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

create_ai2dev_projectB

Create a new project in AI2DEV from a finalized design document.

Args: project_name: Name for the new AI2DEV project. design_document: The finalized design document content. description: Optional short project description.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNo
project_nameYes
design_documentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 the full burden of behavioral disclosure. It only states it creates a project but provides no details about side effects, prerequisites (beyond 'finalized'), authorization needs, or error conditions.

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 very concise with two sentences and a compact list of arguments. No unnecessary words or repetition, making it easy to read quickly.

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 0% schema description coverage and no annotations, the description is somewhat complete for basic use but lacks workflow context (e.g., ordering with siblings like generate_design_document) and behavioral details expected for a creation 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?

The description adds brief parameter explanations (e.g., 'Name for the new AI2DEV project' for project_name) which provide meaning beyond the schema's empty descriptions, but these are minimal and could be more informative (e.g., format expectations for design_document).

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

Purpose5/5

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

The description clearly states the verb 'Create' and the resource 'a new project in AI2DEV from a finalized design document', which is specific and distinguishes it from sibling tools like generate_design_document and refine_design_document.

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 provides no explicit guidance on when to use this tool versus its siblings. It implies using it after a finalized design document, but does not state when not to use it or mention alternatives.

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

generate_design_documentA

Generate a software design document from a project description using an LLM.

Args: project_name: Name of the software project. requirements: Free-form description of what the project should do. target_audience: Optional description of who the software is for. constraints: Optional technical or business constraints to respect.

ParametersJSON Schema
NameRequiredDescriptionDefault
constraintsNo
project_nameYes
requirementsYes
target_audienceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided. The description mentions use of an LLM but does not explicitly state whether the tool is read-only, idempotent, or has side effects. The purpose implies a generation with no mutations, but additional behavioral context is missing.

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 concise sentence followed by a clear list of parameter descriptions. No unnecessary words, front-loaded with purpose.

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?

Covers all parameters and purpose. Output schema exists, so return value explanation is not required. Could optionally mention output format or next steps, but is adequate.

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

Parameters4/5

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

Schema has 0% description coverage; the description provides meaningful explanations for each parameter (e.g., 'Free-form description of what the project should do' for requirements), adding value beyond the schema property titles.

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

Purpose5/5

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

The description clearly states the verb 'generate' and the resource 'design document', distinguishing it from siblings like 'refine_design_document' and 'ask_question'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., refine_design_document). Does not mention prerequisites or context.

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

refine_design_documentA

Revise an existing design document based on feedback, preserving its structure.

Args: design_document: The current design document (markdown). feedback: Requested changes or additional context to incorporate.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedbackYes
design_documentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It mentions 'preserving its structure' but does not disclose side effects, idempotency, permissions, error conditions, or whether the tool mutates data or returns a new version. Minimal transparency 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?

The description is concise: one sentence for purpose plus two lines for arguments. Every sentence adds value, and the structure is front-loaded with the main action.

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 an output schema exists (not shown), the description doesn't need to detail return values. However, it could mention that the tool returns a revised document. For a simple tool, the description is largely complete, but missing some context about the output.

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

Parameters4/5

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

Schema coverage is 0% but the description adds meaning for both parameters: design_document is described as 'current design document (markdown)' and feedback as 'requested changes or additional context'. This clarifies the expected format and purpose beyond schema titles.

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

Purpose5/5

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

The description clearly states the verb 'Revise', the resource 'existing design document', and the condition 'based on feedback, preserving its structure'. It distinguishes the tool from sibling 'generate_design_document' which creates new documents.

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 vs alternatives like 'generate_design_document' or 'ask_question'. It does not state prerequisites or exclusions, leaving the agent to infer usage context.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv0.1.0
    • First observedask_question
    • First observedcreate_ai2dev_project
    • First observedgenerate_design_document
    • First observedrefine_design_document

TDQS

A3.5/5.0
Disambiguation4/5

Most tools target distinct phases (design doc generation, refinement, project creation), but 'ask_question' is generic and could be confused with other tools if used for design-related queries, though its purpose is broader.

Naming Consistency3/5

Three tools follow a clear verb_noun pattern (generate_design_document, refine_design_document, create_ai2dev_project), but 'ask_question' breaks the pattern and does not reference the domain, causing minor inconsistency.

Tool Count5/5

With 4 tools covering the core design-to-project workflow plus a general Q&A, the count is well-scoped and feels neither too sparse nor overwhelming.

Completeness3/5

The core flow (generate doc, refine doc, create project) is covered, but missing operations like listing, updating, or deleting projects create notable gaps for a complete lifecycle.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dorthyuser/mcp-trial-python'

If you have feedback or need assistance with the MCP directory API, please join our Discord server