SharePoint MCP Server
Navegar e interactuar con sitios y documentos de Microsoft SharePoint.
Documentación
SharePoint MCP Server
Un servidor de Model Context Protocol para navegar e interactuar con sitios y documentos de Microsoft SharePoint.
Este servidor MCP basado en TypeScript proporciona una integración completa de SharePoint a través de Microsoft Graph API, lo que permite:
- Recursos: Accede a sitios de SharePoint como recursos MCP con metadatos estructurados
- Herramientas: Busca archivos, lista sitios, explora bibliotecas de documentos y recupera contenido de archivos
- Autenticación: Flujo seguro de credenciales de cliente OAuth2 con gestión automática de tokens
Características
Recursos
- Lista los sitios de SharePoint accesibles para la aplicación
- Accede a la información de sitios individuales mediante URIs
sharepoint://site/{siteId} - Metadatos de sitio en formato JSON con nombres para mostrar y URLs web
Herramientas
search_files
Busca archivos y documentos en SharePoint mediante la API de búsqueda de Microsoft Graph
- Parámetros:
query(obligatorio): Cadena de consulta de búsquedalimit(opcional): Número máximo de resultados a devolver (por defecto: 10)
list_sites
Lista los sitios de SharePoint accesibles para la aplicación
- Parámetros:
search(opcional): Filtra sitios por nombre para mostrar
get_site_info
Obtiene información detallada sobre un sitio de SharePoint específico
- Parámetros:
siteUrl(obligatorio): URL del sitio de SharePoint (p. ej., https://tenant.sharepoint.com/sites/sitename)
list_site_drives
Lista las bibliotecas de documentos (unidades) en un sitio de SharePoint
- Parámetros:
siteUrl(obligatorio): URL del sitio de SharePoint
list_drive_items
Lista archivos y carpetas en una biblioteca de documentos de SharePoint
- Parámetros:
siteUrl(obligatorio): URL del sitio de SharePointdriveId(opcional): ID de unidad específico (usa la unidad predeterminada si no se especifica)folderPath(opcional): Ruta de carpeta para listar elementos (por defecto: raíz)
get_file_content
Obtiene el contenido de un archivo específico de SharePoint (solo archivos de texto)
- Parámetros:
siteUrl(obligatorio): URL del sitio de SharePointfilePath(obligatorio): Ruta al archivodriveId(opcional): ID de unidad específico (usa la unidad predeterminada si no se especifica)
Requisitos previos
Registro de aplicación en Azure
- Registra una aplicación en Azure Active Directory
- Configura los permisos de API:
- Microsoft Graph:
Sites.Read.All(permiso de aplicación) - Microsoft Graph:
Files.Read.All(permiso de aplicación)
- Microsoft Graph:
- Concede el consentimiento del administrador para los permisos
- Crea un secreto de cliente
Variables de entorno
Establece las siguientes variables de entorno:
SHAREPOINT_URL=https://yourtenant.sharepoint.com
TENANT_ID=your-azure-tenant-id
CLIENT_ID=your-azure-app-client-id
CLIENT_SECRET=your-azure-app-client-secret
Desarrollo
Instala las dependencias:
npm install
Compila el servidor:
npm run build
Para desarrollo con recompilación automática:
npm run watch
Pruebas
Prueba el servidor usando el Inspector de MCP:
npm run inspector
El Inspector proporciona una interfaz web para probar todas las herramientas y recursos disponibles.
Instalación
Configuración de Claude Desktop
Añade el servidor a tu configuración de Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"sharepoint-mcp-server": {
"command": "node",
"args": ["/path/to/sharepoint-mcp-server/build/index.js"],
"env": {
"SHAREPOINT_URL": "https://yourtenant.sharepoint.com",
"TENANT_ID": "your-azure-tenant-id",
"CLIENT_ID": "your-azure-app-client-id",
"CLIENT_SECRET": "your-azure-app-client-secret"
}
}
}
}
Instalación global
También puedes instalar el servidor globalmente:
npm install -g .
Luego úsalo directamente:
sharepoint-mcp-server
Arquitectura
El servidor implementa una arquitectura orientada a servicios con una clara separación de responsabilidades:
- Capa de autenticación: Gestiona la obtención y renovación de tokens OAuth2
- Cliente de Graph API: Gestiona las solicitudes HTTP a Microsoft Graph API
- Manejadores de herramientas: Procesan las solicitudes de herramientas MCP y formatean las respuestas
- Manejadores de recursos: Gestionan los recursos y metadatos de los sitios de SharePoint
- Manejo de errores: Gestión integral de errores con códigos de error MCP adecuados
Consideraciones de seguridad
- Utiliza el flujo de credenciales de cliente OAuth2 para una autenticación segura
- Los tokens se renuevan automáticamente antes de su expiración
- Todas las solicitudes de API usan HTTPS
- Los secretos de cliente deben almacenarse de forma segura y nunca enviarse al control de versiones
- Los permisos de aplicación requieren consentimiento del administrador en Azure AD
Solución de problemas
Problemas comunes
- Errores de autenticación: Verifica el registro de la aplicación en Azure y los permisos
- Acceso al sitio: Asegúrate de que la aplicación tenga los permisos adecuados de SharePoint
- Problemas de red: Comprueba la configuración del firewall para el acceso a Microsoft Graph API
Modo de depuración
Establece la variable de entorno para un registro detallado:
DEBUG=sharepoint-mcp-server
Contribuciones
- Sigue las mejores prácticas de TypeScript
- Mantén un manejo integral de errores
- Añade pruebas para nuevas funcionalidades
- Actualiza la documentación para cambios en la API
Licencia
Este proyecto está licenciado bajo la Mozilla Public License 2.0. Consulta el archivo LICENCIA para más detalles.
Contribuciones
¡Agradecemos las contribuciones! Por favor, sigue estas pautas:
Para empezar
- Haz un fork del repositorio
- Crea una rama de características (
git checkout -b feature/amazing-feature) - Realiza tus cambios
- Añade pruebas para nuevas funcionalidades
- Asegúrate de que todas las pruebas pasen (
npm test) - Confirma tus cambios (
git commit -m 'Add amazing feature') - Sube la rama (
git push origin feature/amazing-feature) - Abre una solicitud de extracción
Pautas de desarrollo
- Sigue las mejores prácticas de TypeScript y mantén la seguridad de tipos
- Implementa un manejo integral de errores con códigos de error MCP adecuados
- Añade comentarios JSDoc para todos los métodos y clases públicos
- Mantén la arquitectura orientada a servicios con una clara separación de responsabilidades
- Sigue los principios SOLID y mantén las funciones enfocadas y comprobables
- Actualiza la documentación para cualquier cambio en la API
Estilo de código
- Usa el modo estricto de TypeScript
- Sigue el formato de código y las convenciones de nomenclatura existentes
- Elimina importaciones y variables no utilizadas
- Usa nombres descriptivos para variables y funciones
- Prefiere la composición sobre la herencia
Pruebas
- Añade pruebas unitarias para nuevas funcionalidades
- Prueba condiciones de error y casos límite
- Asegúrate de que la suite de pruebas básica pase
- Prueba con entornos reales de SharePoint cuando sea posible
Documentación
- Actualiza README.md para nuevas características o cambios de configuración
- Añade comentarios JSDoc para nuevas APIs públicas
- Incluye ejemplos para funcionalidades complejas
- Actualiza el registro de cambios para cambios significativos
Registro de cambios
[0.1.0] - Versión inicial
- Integración básica de SharePoint mediante Microsoft Graph API
- Soporte para búsqueda de archivos en SharePoint
- Capacidades de listado y navegación de sitios
- Acceso a bibliotecas de documentos y recuperación de contenido de archivos
- Autenticación OAuth2 con credenciales de cliente
- Soporte de recursos MCP para sitios de SharePoint
- Manejo integral de errores y registro
Soporte
Si encuentras problemas o tienes preguntas:
- Consulta la sección de solución de problemas en este README
- Busca en los problemas existentes de GitHub
- Crea un nuevo problema con información detallada sobre tu caso
- Incluye registros y configuración relevantes (sin información sensible)
Agradecimientos
- Construido con el SDK de Model Context Protocol
- Utiliza Microsoft Graph API para la integración con SharePoint
- Inspirado en la comunidad y el ecosistema de MCP