Skip to main content
Glama

Dart MCP Server

by egyleader

Servidor Dart MCP

Un servidor distribuible de Protocolo de Contexto de Modelo (MCP) que expone los comandos del SDK de Dart para el desarrollo basado en IA. Este servidor conecta los asistentes de programación de IA con los flujos de trabajo de desarrollo de Dart/Flutter mediante la implementación del Protocolo de Contexto de Modelo (MCP).

Características

Este servidor MCP proporciona acceso sin inconvenientes a los siguientes comandos del SDK de Dart:

DominioDescripción
dart-analyzeAnalizar el código Dart en busca de errores, advertencias y pelusas
dart-compileCompilar Dart en varios formatos (exe, instantáneas AOT/JIT, JavaScript)
dart-createCrear nuevos proyectos de Dart a partir de plantillas
dart-docGenerar documentación de API para proyectos de Dart
dart-fixAplicar correcciones automáticas al código fuente de Dart
dart-formatFormatear el código fuente de Dart según las pautas de estilo
dart-infoMostrar información de diagnóstico sobre las herramientas Dart instaladas
dart-packageTrabajar con paquetes (obtener, agregar, actualizar, obsoletos, etc.)
dart-runEjecute programas Dart con soporte para pasar argumentos
dart-testEjecutar pruebas con soporte para opciones de filtrado y generación de informes

Beneficios clave

  • Manejo inteligente de rutas : resuelve automáticamente rutas relativas a rutas absolutas, lo que garantiza que los comandos funcionen correctamente independientemente del directorio de trabajo
  • Detección automática de proyectos : identifica proyectos de Dart/Flutter en ubicaciones comunes, como directorios de inicio y espacios de trabajo.
  • Compatibilidad multiplataforma : funciona en macOS, Linux y Windows
  • Configuración cero : funciona de inmediato con valores predeterminados razonables
  • Integración con MCP : compatible con cualquier cliente MCP, incluidos Windsurf, Cline y otras implementaciones del Protocolo de contexto de modelo

Prerrequisitos

  • Node.js : 18.x o superior
  • Dart SDK : 3.0 o superior instalado y disponible en su PATH

Instalación

Instalación mediante herrería

Para instalar Dart MCP Server para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install @egyleader/dart-mcp --client claude

Usando npx (recomendado)

El servidor se puede ejecutar directamente sin instalación usando npx:

npx @egyleader/dart-mcp-server

Instalación global

Para un acceso más fácil, puede instalar el servidor globalmente:

npm install -g @egyleader/dart-mcp-server

Luego ejecútalo usando:

dart-mcp-server

De la fuente

# Clone the repository git clone https://github.com/egyleader/dart-mcp-server.git cd dart-mcp-server # Install dependencies npm install # Build the project npm run build # Run the server node dist/index.js

Integración con clientes MCP

Configuración de IDE de Windsurf/Codeium

Para utilizar este servidor MCP con Windsurf o Codeium IDE, agregue lo siguiente a su archivo mcp_config.json (normalmente ubicado en ~/.codeium/windsurf/mcp_config.json ):

{ "mcpServers": { "dart": { "command": "npx", "args": [ "-y", "@egyleader/dart-mcp-server" ] } } }

Variables de entorno

  • DART_MCP_VERBOSE : Establezca cualquier valor para habilitar el registro detallado para la depuración

Ejemplos de uso de la herramienta MCP

A continuación, se muestran ejemplos de cómo usar las herramientas MCP proporcionadas por el servidor. Estos ejemplos muestran los parámetros que se pueden pasar a cada herramienta.

dardo-analizar

Analizar el código Dart en busca de errores, advertencias y pelusas:

{ "path": "lib/main.dart", "options": ["--fatal-infos", "--fatal-warnings"] }

compilación de dardos

Compilar código Dart en varios formatos:

{ "path": "lib/main.dart", "format": "exe", "output": "build/app", "options": ["--verbose"] }

Formatos compatibles: exe , aot-snapshot , jit-snapshot , kernel , js

dart-create

Crear un nuevo proyecto de Dart a partir de una plantilla:

{ "projectName": "my_awesome_app", "template": "console", "output": "projects/my_awesome_app", "options": ["--force"] }

Nota sobre el nombre del proyecto y la salida:

  • Si solo se proporciona projectName , se utiliza como el nombre del directorio donde se crea el proyecto.
  • Si se proporciona output , se utiliza como el directorio donde se crea el proyecto.
  • El nombre real del paquete/proyecto en Dart se deriva del nombre del directorio final mediante la CLI de Dart.

Plantillas compatibles: console , package , server-shelf , web

dart-doc

Generar documentación de API para un proyecto de Dart:

{ "path": ".", "output": "doc", "options": ["--exclude", "lib/generated"] }

arreglo de dardos

Aplicar correcciones automáticas al código fuente de Dart:

{ "path": "lib", "apply": true, "options": ["--pedantic"] }

formato dardo

Formatear el código fuente de Dart según las pautas de estilo:

{ "paths": ["lib/main.dart", "lib/models"], "setExitIfChanged": true, "options": ["--line-length=100"] }

información de dardos

Mostrar información de diagnóstico sobre las herramientas Dart instaladas:

{ "options": ["--verbose"] }

paquete dart

Trabajar con paquetes (comandos pub):

{ "command": "get", "workingDir": ".", "args": ["--offline"] }

Comandos admitidos: get , upgrade , outdated , add , remove , publish , deps , downgrade , cache , run , global

carrera de dardos

Ejecute programas Dart con soporte para pasar argumentos:

{ "script": "bin/server.dart", "workingDir": ".", "args": ["--port=8080", "--mode=production"] }

prueba de dardos

Ejecute pruebas con soporte para opciones de filtrado y generación de informes:

{ "path": "test", "workingDir": ".", "options": ["--name=login", "--platform=chrome"] }

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

Referencia de la API de herramientas

dardo-analizar

Analizar el código de Dart en un directorio o archivo.

{ path?: string; // Directory or file to analyze options?: string[]; // Additional options for the dart analyze command }

Ejemplo:

{ path: "lib", options: ["--fatal-infos", "--fatal-warnings"] }

compilación de dardos

Compilar Dart en varios formatos.

{ format: 'exe' | 'aot-snapshot' | 'jit-snapshot' | 'kernel' | 'js'; // Output format path: string; // Path to the Dart file to compile output?: string; // Output file path options?: string[]; // Additional compilation options }

Ejemplo:

{ format: "exe", path: "bin/main.dart", output: "bin/app" }

dart-create

Crea un nuevo proyecto de Dart.

{ template: 'console' | 'package' | 'server-shelf' | 'web'; // Project template projectName: string; // Name of the project to create output?: string; // Directory where to create the project options?: string[]; // Additional project creation options }

Nota:

  • Si se proporciona output , el proyecto se creará en ese directorio.
  • Si solo se proporciona projectName , se utilizará como nombre del directorio.
  • El nombre real del paquete Dart se deriva del nombre del directorio final.

Ejemplo:

{ template: "package", projectName: "my_dart_library", output: "projects/my_dart_library" }

dart-doc

Generar documentación de API para proyectos de Dart.

{ path?: string; // Directory containing the Dart package to document output?: string; // Output directory for the generated documentation options?: string[]; // Additional documentation options }

Ejemplo:

{ path: ".", output: "doc/api" }

arreglo de dardos

Aplicar correcciones automatizadas al código fuente de Dart.

{ path?: string; // Directory or file to apply fixes to apply?: boolean; // Whether to apply the suggested fixes (default: true) options?: string[]; // Additional fix options }

Ejemplo:

{ path: "lib", apply: true, options: ["--pedantic"] }

formato dardo

Formatear idiomáticamente el código fuente de Dart.

{ paths: string[]; // Files or directories to format setExitIfChanged?: boolean; // Return exit code 1 if there are formatting changes (default: false) options?: string[]; // Additional format options }

Ejemplo:

{ paths: ["lib", "test"], setExitIfChanged: true, options: ["--line-length=80"] }

información de dardos

Mostrar información de diagnóstico sobre las herramientas instaladas.

{ options?: string[]; // Additional info options }

Ejemplo:

{ options: ["--verbose"] }

paquete dart

Trabajar con paquetes (comandos pub).

{ command: 'get' | 'upgrade' | 'outdated' | 'add' | 'remove' | 'publish' | 'deps' | 'downgrade' | 'cache' | 'run' | 'global'; // Pub subcommand args?: string[]; // Arguments for the pub subcommand workingDir?: string; // Working directory for the command }

Ejemplos:

// Add a package { command: "add", args: ["rxdart"], workingDir: "my_project" } // Get dependencies { command: "get", workingDir: "my_project" }

carrera de dardos

Ejecutar un programa Dart.

{ script: string; // Path to the Dart script to run args?: string[]; // Arguments to pass to the script workingDir?: string; // Working directory for the command }

Ejemplo:

{ script: "bin/main.dart", args: ["--verbose"], workingDir: "my_project" }

prueba de dardos

Ejecutar pruebas para un proyecto.

{ path?: string; // Path to the test file or directory options?: string[]; // Additional test options workingDir?: string; // Working directory for the command }

Ejemplo:

{ path: "test", options: ["--coverage", "--name=auth"], workingDir: "my_project" }

Desarrollo

# Watch mode for development pnpm run dev # Build for production pnpm run build

Manejo de errores

El servidor implementa un manejo integral de errores:

  • Los errores de ejecución de comandos se capturan y se formatean adecuadamente
  • Los problemas de resolución de ruta se informan con diagnósticos detallados
  • Manejo de tiempos de espera para operaciones de larga duración
  • Propagación adecuada del código de salida de los comandos Dart

Contribuyendo

Consulte CONTRIBUTING.md para obtener pautas de contribución detalladas.

Nuestro formato de confirmación es el siguiente:

<type>[optional scope]: [JIRA-123(optional)] <description>

Ejemplo:

feat(tools): [DART-456] add support for dart test tags

Licencia

Instituto Tecnológico de Massachusetts (MIT)

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

Un servidor distribuible de Protocolo de Contexto de Modelo (MCP) que expone los comandos del SDK de Dart para el desarrollo basado en IA. Este servidor conecta los asistentes de programación de IA con los flujos de trabajo de desarrollo de Dart/Flutter mediante la implementación del Protocolo de Contexto de Modelo (MCP).

  1. Características
    1. Beneficios clave
  2. Prerrequisitos
    1. Instalación
      1. Instalación mediante herrería
      2. Usando npx (recomendado)
      3. Instalación global
      4. De la fuente
    2. Integración con clientes MCP
      1. Configuración de IDE de Windsurf/Codeium
      2. Variables de entorno
    3. Ejemplos de uso de la herramienta MCP
      1. dardo-analizar
      2. compilación de dardos
      3. dart-create
      4. dart-doc
      5. arreglo de dardos
      6. formato dardo
      7. información de dardos
      8. paquete dart
      9. carrera de dardos
      10. prueba de dardos
    4. Licencia
      1. Contribuyendo
        1. Referencia de la API de herramientas
          1. dardo-analizar
          2. compilación de dardos
          3. dart-create
          4. dart-doc
          5. arreglo de dardos
          6. formato dardo
          7. información de dardos
          8. paquete dart
          9. carrera de dardos
          10. prueba de dardos
        2. Desarrollo
          1. Manejo de errores
            1. Contribuyendo
              1. Licencia

                Related MCP Servers

                • A
                  security
                  A
                  license
                  A
                  quality
                  A Dart-based MCP server implementation that enables AI-assisted task management, document handling, and workspace organization through standardized tools and seamless Dart integration.
                  Last updated -
                  10
                  978
                  3
                  JavaScript
                  MIT License
                  • Linux
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  A Model Context Protocol (MCP) server that wraps the dbt CLI tool, enabling AI coding agents to interact with dbt projects through standardized MCP tools. Developed by Mammoth Growth.
                  Last updated -
                  15
                  Python
                  MIT License
                  • Linux
                  • Apple
                • A
                  security
                  A
                  license
                  A
                  quality
                  An official AI Model Context Protocol server that enables AI assistants to interact with Dart project management by creating/managing tasks and documents through prompts and tools.
                  Last updated -
                  15
                  978
                  109
                  TypeScript
                  MIT License
                  • Linux
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  A Model Context Protocol (MCP) server that implements AI-First Development framework principles, allowing LLMs to interact with context-first documentation tools and workflows for preserving knowledge and intent alongside code.
                  Last updated -
                  332
                  Python
                  AGPL 3.0

                View all related MCP servers

                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/egyleader/dart-mcp'

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