Labsco
thirdstrandstudio logo

MCP Yeoman Server

β˜… 1

from thirdstrandstudio

Search for and run Yeoman generator templates programmatically.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeAdvanced setup

MCP Yeoman Server

Third Strand Studio

smithery badge

A Model Context Protocol (MCP) server that provides integration with Yeoman generators, allowing AI agents to search for and run Yeoman templates programmatically.

<img width="832" alt="Cursor_CIuNzjl6ca" src="https://github.com/user-attachments/assets/d062eb45-320e-4f4a-8bfa-121bb522b8b7" />

Tools

This server implements the following MCP tools:

Template Search Methods

  1. yeoman_search_templates - Search for Yeoman templates on npm
    • Parameters:
      • query (string): Search keywords separated by commas
      • pageSize (number, optional): Number of results to return (default: 20)

Generator Methods

  1. yeoman_get_generator_options - Get the required options and arguments for a Yeoman generator

    • Parameters:
      • generatorName (string): Name of the generator (without 'generator-' prefix)
  2. yeoman_generate - Run a Yeoman generator

    • Parameters:
      • generatorName (string): Name of the generator (without 'generator-' prefix)
      • cwd (string): Working directory where the generator should run
      • appName (string): The name of the application to create
      • version (string): The version of the application to create
      • options (object, optional): Options to pass to the generator
      • args (array, optional): Additional positional arguments to pass to the generator

Command-line Arguments

The server supports the following command-line arguments:

  • --generator-dir <path>: Specify a persistent directory for installing Yeoman generators. By default, generators are installed in a temporary directory that is removed when the operation completes. Using a persistent directory can improve performance for repeated operations with the same generators.

Example:

{
  "mcpServers": {
    "yeoman": {
      "command": "node",
      "args": ["/path/to/mcp-yeoman/dist/index.js", "--generator-dir", "/path/to/generator-storage"]
    }
  }
}

Examples

Search for Templates

// Search for React-related templates
const templates = await callTool("yeoman_search_templates", {
  query: "react,typescript",
  pageSize: 10
});

Get Generator Options

// Get options for the React generator
const options = await callTool("yeoman_get_generator_options", {
  generatorName: "react"
});

Run a Generator

// Run the React generator
const result = await callTool("yeoman_generate", {
  generatorName: "react",
  cwd: "/path/to/project",
  appName: "my-react-app",
  version: "1.0.0",
  options: {
    typescript: true,
    sass: true
  }
});

Development

# Install dependencies
npm install

# Start the server in development mode
npm start

# Build the server
npm run build

Error Handling

The server includes comprehensive error handling:

  • Validation errors for invalid parameters
  • Interactive prompt detection and guidance for required options
  • Detailed error logging for debugging
  • Automatic cleanup of temporary directories (unless using --generator-dir)
  • Safe error propagation through MCP protocol