DocC MCP
Expone archivos de documentación de Apple DocC a agentes de IA, permitiendo acceso en tiempo real a la documentación de Swift.
Documentación
docc-mcp
Un servidor de Model Context Protocol (MCP) que expone archivos de documentación de Apple DocC a agentes de IA, permitiendo acceso en tiempo real a documentación de Swift sin necesidad de datos de entrenamiento ni ventanas de contexto masivas.
Características
- 🔍 Búsqueda de documentación: Encuentra símbolos, tipos y funciones en todos los archivos DocC
- 📖 Detalles de símbolos: Obtén información detallada sobre símbolos específicos de Swift
- 📄 Acceso a artículos: Obtén información detallada sobre tutoriales y artículos
- 🗂️ Explorar archivos: Navega interactivamente por las estructuras de archivos DocC
- ⚡ Acceso en tiempo real: Consulta documentación actual sin datos obsoletos
- 🎯 Búsqueda filtrada: Busca por tipo de símbolo (clase, estructura, enumeración, protocolo, etc.)
Instalación
npm install
npm run build
Uso
Como servidor MCP
Añade a la configuración de tu cliente MCP:
{
"mcpServers": {
"docc": {
"command": "node",
"args": [
"/path/to/docc-mcp/dist/index.js",
"--archive-path", "/path/to/your/docc/archives",
"--archive-path", "~/Documents/Xcode/DerivedData"
]
}
}
}
Opciones de configuración
Configura las rutas de los archivos usando el argumento --archive-path:
Directorio de un solo archivo:
{
"mcpServers": {
"docc": {
"command": "node",
"args": [
"/path/to/docc-mcp/dist/index.js",
"--archive-path", "/Users/yourname/docc-archives"
]
}
}
}
Múltiples directorios de archivos:
{
"mcpServers": {
"docc": {
"command": "node",
"args": [
"/path/to/docc-mcp/dist/index.js",
"--archive-path", "/Users/yourname/Project1/docs",
"--archive-path", "/Users/yourname/Project2/docs",
"--archive-path", "~/Documents/Xcode/DerivedData"
]
}
}
}
Usando documentación generada por Xcode:
{
"mcpServers": {
"docc": {
"command": "node",
"args": [
"/path/to/docc-mcp/dist/index.js",
"--archive-path", "~/Library/Developer/Xcode/DerivedData/YourApp-*/Build/Products/Debug/YourApp.doccarchive"
]
}
}
}
Nota: Debe especificarse al menos un --archive-path. El servidor saldrá con un error si no se proporcionan rutas de archivos.
Ubicaciones comunes de archivos DocC
Documentación generada por Xcode:
~/Library/Developer/Xcode/DerivedData/YourApp-*/Build/Products/Debug*/Documentation/~/Library/Developer/Xcode/DerivedData/YourApp-*/Build/Products/Release*/Documentation/
Swift Package Manager:
.build/plugins/Swift-DocC/outputs/YourPackage.doccarchive
Compilaciones manuales de DocC:
docs/(si organizas los archivos en una carpeta de documentación)- Directorio raíz del proyecto donde ejecutas
swift package generate-documentation
Múltiples proyectos:
{
"args": [
"/path/to/docc-mcp/dist/index.js",
"--archive-path", "~/MySwiftPackage1/docs",
"--archive-path", "~/MySwiftPackage2/.build/plugins/Swift-DocC/outputs",
"--archive-path", "~/Library/Developer/Xcode/DerivedData"
]
}
Herramientas disponibles
1. list_archives
Lista todos los archivos DocC disponibles con metadatos.
{
"name": "list_archives"
}
2. search_docc
Busca en la documentación DocC.
{
"name": "search_docc",
"arguments": {
"query": "SwiftSyntax",
"archive": "SwiftSyntax",
"type": "struct"
}
}
3. get_symbol
Obtén información detallada sobre un símbolo específico.
{
"name": "get_symbol",
"arguments": {
"symbolId": "documentation/swiftsyntax/tokensyntax",
"archive": "SwiftSyntax"
}
}
4. get_article
Obtén información detallada sobre un artículo o tutorial específico.
{
"name": "get_article",
"arguments": {
"articleId": "meetcomposablearchitecture",
"archive": "ComposableArchitecture"
}
}
5. browse_archive
Explora la estructura de un archivo DocC.
{
"name": "browse_archive",
"arguments": {
"archive": "SwiftSyntax",
"path": "documentation/swiftsyntax"
}
}
Estructura de archivos
El servidor espera archivos DocC en los directorios especificados por --archive-path:
Pruebas
Ejecuta el script de prueba para validar la funcionalidad:
node test-server.js
Esto:
- Listará todos los archivos disponibles
- Probará la funcionalidad de búsqueda
- Explorará las estructuras de los archivos
- Validará la recuperación de símbolos
Consultas de ejemplo
Encuentra todos los componentes de navegación de SwiftUI:
{
"name": "search_docc",
"arguments": {
"query": "navigation",
"type": "struct"
}
}
Obtén detalles sobre TokenSyntax:
{
"name": "get_symbol",
"arguments": {
"symbolId": "documentation/swiftsyntax/tokensyntax",
"archive": "SwiftSyntax"
}
}
Explora los tipos de SwiftSyntax:
{
"name": "browse_archive",
"arguments": {
"archive": "SwiftSyntax",
"path": "documentation/swiftsyntax"
}
}
Rendimiento
- Caché: Los archivos y símbolos se almacenan en caché para acceso rápido repetido
- Límites de búsqueda: Resultados limitados a 50 por consulta por rendimiento
- Carga diferida: Los archivos se cargan bajo demanda
- Límites de archivos: Búsqueda limitada a 100 archivos por archivo DocC por rendimiento
Integración con DocC
Este servidor funciona con archivos DocC estándar. Para generar archivos compatibles:
# Using Swift-DocC
swift package generate-documentation --target MyLibrary
# Using Xcode
# Product → Build Documentation
Funciones DocC compatibles
- ✅ Metadatos de símbolos (título, tipo, rol, plataformas)
- ✅ Jerarquía de documentación
- ✅ Referencias y relaciones de símbolos
- ✅ Declaraciones de código con resaltado de sintaxis
- ✅ Texto de resumen/abstracto
- ✅ Información de disponibilidad de plataformas
- ✅ Organización de módulos
Licencia
Licencia MIT