AmazingMCP — MCP Server for .NET / C# Codebases

Un servidor MCP que brinda a los agentes de IA una comprensión profunda de bases de código C# a través de Roslyn: búsqueda de tipos, gráficos de dependencias, análisis de uso y resúmenes de arquitectura, todo desde una compilación en vivo en memoria.

Documentación

AmazingMCP — Servidor MCP para bases de código .NET / C#

NuGet License: MIT .NET 10

Un servidor MCP que brinda a los agentes de IA un conocimiento profundo de las bases de código C# mediante Roslyn: búsqueda de tipos, grafos de dependencias, análisis de usos y vistas generales de arquitectura, todo a partir de una compilación en memoria en vivo.

Instalación

dotnet tool install -g HoldMyCoolantMeatbag.AmazingMCP

Requiere el SDK de .NET 10.

Herramientas MCP

HerramientaDescripción
query_symbolBusca tipos, miembros (métodos, propiedades, campos), métodos de extensión, constantes y valores de enumeración en la solución y los paquetes NuGet
get_type_detailsInformación completa del tipo: propiedades, métodos, tipos base, tipos anidados (incluidos los de NuGet)
query_usagesEncuentra todos los usos de un tipo en la solución: llamadas a métodos, llamadas a constructores, lectura y escritura de propiedades/campos, argumentos y restricciones genéricas, tipos de retorno, tipos de parámetros, herencia, nameof, typeof, is/as. Admite filtrado por predicado y control del alcance del escaneo
read_cs_file_digestPunto de entrada eficiente en tokens para archivos .cs grandes (cientos o miles de líneas): devuelve un esquema estructural (tipos y miembros con números de línea, sin implementaciones). Úsalo primero y luego obtén solo los miembros que necesites con read_large_cs_file
read_large_cs_fileLee implementaciones de miembros específicos de un archivo .cs mediante filtro por nombre: úsalo después de read_cs_file_digest para cargar solo lo relevante en lugar del archivo completo
decompile_typeDescompila cualquier tipo de un ensamblado NuGet a código fuente C#: no se requieren herramientas externas, ILSpy está integrado
code_lensResuelve tipos totalmente calificados para cualquier rango de líneas en un archivo .cs: variables locales, tipos de campos/propiedades, firmas de llamadas a métodos, creaciones de objetos y declaraciones, todo desde el modelo semántico de Roslyn
get_project_designMapa de arquitectura de alto nivel: grupos de abstracciones por espacio de nombres y dependencias entre grupos
get_project_design_detailsVista detallada de abstracciones e implementaciones para espacios de nombres especificados (admite el comodín *)

Características

  • Un servidor, cualquier número de soluciones — inícialo una vez y apúntalo a cualquier proyecto por llamada, sin necesidad de reiniciar al cambiar entre soluciones.
  • Compilación en memoria en vivo — abre .sln/.slnx mediante MSBuild Workspaces y compila todos los proyectos en memoria. Todas las herramientas se ejecutan contra un modelo semántico real de Roslyn, no mediante búsqueda de texto.
  • Caché incremental — el espacio de trabajo se almacena en caché con observadores de archivos. Los cambios en .cs activan una recompilación incremental; los cambios en .csproj/.sln invalidan toda la caché. La primera llamada por solución es lenta; las llamadas posteriores son instantáneas.
  • Consciente de NuGet — los tipos de NuGet se resuelven por completo y se pueden buscar junto con los tipos de origen. query_symbol, get_type_details y decompile_type funcionan en cualquier paquete referenciado.

Uso

AmazingMCP <options>

# example:
AmazingMCP --urls=http://localhost:7777 --Symbol:QueryOutputLineLimit=50 --ReadCs:ReadOutputMaxLength=50000

# see all options:
AmazingMCP --help

El servidor se inicia en http://localhost:7777 de forma predeterminada.

Opciones de línea de comandos

OpciónPredeterminadoDescripción
--urlshttp://localhost:7777URL de escucha
--Symbol:QueryOutputLineLimit100Máximo de líneas de salida para query_symbol
--ReadCs:ReadOutputMaxLength20000Máximo de caracteres de salida para read_large_cs_file
--ProjectDesign:DetailsOutputMaxLength30000Máximo de caracteres de salida para get_project_design_details
--ProjectDesign:DetailsXmlDocSummaryMaxLength2000Máximo de caracteres de resumen de documentación XML en get_project_design_details
--QueryUsages:QueryMatchLimit200Máximo de coincidencias de uso para query_usages
--Diagnostics:IncludeExceptionDetailsfalseIncluir detalles completos de excepciones en las respuestas de error de las herramientas (para diagnóstico)
--HttpServerTransport:IdleTimeout7.00:00:00Tiempo de espera de inactividad de la sesión MCP: cuánto tiempo se mantiene viva una sesión sin actividad (p. ej., 7.00:00:00 para 7 días, 2:00:00 para 2 horas)
--DisabledTools(ninguno)Lista separada por comas de nombres de herramientas para deshabilitar (p. ej., code_lens,get_project_design)

Configuración del cliente MCP

Añádelo a la configuración de tu cliente MCP (Claude Desktop, JetBrains AI, Kiro, etc.):

{
  "mcpServers": {
    "AmazingMCP": {
      "type": "http",
      "url": "http://localhost:7777"
    }
  }
}

Luego inicia el servidor manualmente en tu terminal:

AmazingMCP --urls=http://localhost:7777 <other options>

O añade una entrada de lanzador para que el cliente inicie el servidor automáticamente:

{
  "mcpServers": {
    "AmazingMCP": {
      "type": "http",
      "url": "http://localhost:7777"
    },
    "AmazingMCP Launcher": {
      "command": "AmazingMCP",
      "args": ["--urls=http://localhost:7777"]
    }
  }
}

Documentación

Contribuciones

Se aceptan PRs e issues. Por favor, abre un issue antes de enviar un cambio grande.

git clone https://github.com/remleo/AmazingMCP
cd AmazingMCP
dotnet build
dotnet test

Licencia

MIT