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#
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
| Herramienta | Descripción |
|---|---|
query_symbol | Busca 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_details | Información completa del tipo: propiedades, métodos, tipos base, tipos anidados (incluidos los de NuGet) |
query_usages | Encuentra 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_digest | Punto 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_file | Lee 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_type | Descompila cualquier tipo de un ensamblado NuGet a código fuente C#: no se requieren herramientas externas, ILSpy está integrado |
code_lens | Resuelve 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_design | Mapa de arquitectura de alto nivel: grupos de abstracciones por espacio de nombres y dependencias entre grupos |
get_project_design_details | Vista 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/.slnxmediante 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
.csactivan una recompilación incremental; los cambios en.csproj/.slninvalidan 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_detailsydecompile_typefuncionan 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ón | Predeterminado | Descripción |
|---|---|---|
--urls | http://localhost:7777 | URL de escucha |
--Symbol:QueryOutputLineLimit | 100 | Máximo de líneas de salida para query_symbol |
--ReadCs:ReadOutputMaxLength | 20000 | Máximo de caracteres de salida para read_large_cs_file |
--ProjectDesign:DetailsOutputMaxLength | 30000 | Máximo de caracteres de salida para get_project_design_details |
--ProjectDesign:DetailsXmlDocSummaryMaxLength | 2000 | Máximo de caracteres de resumen de documentación XML en get_project_design_details |
--QueryUsages:QueryMatchLimit | 200 | Máximo de coincidencias de uso para query_usages |
--Diagnostics:IncludeExceptionDetails | false | Incluir detalles completos de excepciones en las respuestas de error de las herramientas (para diagnóstico) |
--HttpServerTransport:IdleTimeout | 7.00:00:00 | Tiempo 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
- Changelog
- QuerySymbol — búsqueda de tipos y miembros
- QueryUsages — búsqueda de usos
- CodeLens — resolución de tipos para un fragmento de código
- FileStructure — lectura de archivos eficiente en tokens
- DecompileType — descompilación de ensamblados NuGet
- ProjectDesign — herramienta de vista general de arquitectura
- DependencyMap — mapa de dependencias
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