Personal MCP server providing tools for Google Calendar, Gmail, Drive, GitHub, and VSCode integration
The server provides 33 tools across Google Calendar, Drive, GitHub, Gmail, and VSCode integrations. Most tools have descriptions and visible schemas, placing it in the 'Fair' range. However, significant quality gaps emerge: descriptions are often generic translations (e.g., 'Lista proximos eventos del calendario principal'), many parameters lack descriptions or have minimal ones, output schemas are not formally documented, and error handling provides no recovery guidance. The code shows proper parameter typing in Python function signatures, but MCP schema documentation is sparse. Tool composition is reasonable (each tool does one thing), but chaining support is weak, many tools return bare IDs without context needed for follow-up calls. STDIO transport caps protocol readiness at 50, but definition quality issues independently drag the overall score down.
Crea un evento en el calendario primario.
Elimina un evento del calendario principal.
Exporta un evento como archivo .ics almacenado localmente.
Lista proximos eventos del calendario principal.
Actualiza campos de un evento existente.
Crea un archivo en Drive desde texto o desde un archivo local.
Missing output schema documentation. None of the 33 tools document their return type structure. The code shows what is returned (dicts, lists), but MCP schema definitions and agent-facing output descriptions are absent. This forces LLMs to guess at response structure and blocks tool chaining when IDs or nested fields are not evident.
Sparse parameter descriptions. Many parameters have minimal descriptions (under 20 chars), e.g., 'add_labels' in gmail_modify_message just says 'Label IDs to add' with no context on where to find label IDs or format. Generic parameter naming like 'path' (in vscode_open_file) without specifying absolute vs relative confuses LLM input.
No error recovery guidance. Tools lack error handling that tells LLMs what to do on failure. For example, calendar_upcoming returns nothing on auth failure, no message guiding the agent to check credentials or retry. Drive operations do not clarify whether a 'not found' error is retryable or terminal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 49 | - | v1 |
Elimina o envia a la papelera un archivo en Drive.
Descarga un archivo de Drive a una ruta local.
Busca archivos en Drive por texto y opcionalmente por mimeType.
Comparte un archivo de Drive generando enlace o agregando usuarios.
Actualiza el contenido o nombre de un archivo en Drive.
Sube un archivo nuevo o actualiza uno existente en un repositorio.
Crea una rama nueva a partir de otra referencia.
Crea un issue en repo 'owner/name'.
Crea un pull request nuevo.
Crea un release con tag y notas.
Lista pull requests abiertos de un repositorio.
Lista releases mas recientes de un repositorio.
Lista repos propios (nombre, privacidad, url).
Fusiona un pull request.
Obtiene el cuerpo (texto) de un correo por id.
Lista correos no leidos (INBOX).
Marca un correo como leido y opcionalmente lo archiva.
Anade o quita labels en un mensaje de Gmail.
Busca correos usando la sintaxis de Gmail.
Envia un correo simple con opcionales CC/BCC y adjuntos.
Ejecuta git status desde la CLI de VSCode (code --git).
Instala una extension de VSCode por id (publisher.ext).
Lista extensiones instaladas en VSCode.
Abre VSCode en una carpeta (equivale a: code -r <path>).
Abre un archivo especifico en VSCode (acepta :linea:columna).
Ejecuta un comando de VSCode (--command).
Busca texto en archivos usando ripgrep integrado de VSCode.
Weak tool chaining support. Many tools return minimal IDs without supporting context. For example, drive_search returns file IDs, but does not indicate whether those IDs work with drive_share_file or require additional lookup. github_create_pull_request returns a PR number, but not the repo owner for follow-up calls.
Generic descriptions without action guidance. Descriptions like 'Lista proximos eventos del calendario principal' (calendar_upcoming) and 'Busca archivos en Drive por texto' (drive_search) are bare-bones. They do not explain WHEN to use the tool vs alternatives, what the agent should do with results, or what happens on edge cases.
Missing destructive operation confirmation. Tools like calendar_delete_event, drive_delete_file, and github_merge_pull_request perform irreversible changes but have no dry-run or confirmation step. An LLM bug or prompt injection could delete calendars or repositories without warning.
No input validation or constraint documentation. Parameters like 'mime_type' in drive_create_file accept free-form strings with no enum. Parameters like 'role' in drive_share_file list defaults but not the full set of valid values (reader, commenter, writer, is editor valid?). LLMs guess and produce invalid input.
STDIO-only transport. The server uses STDIO exclusively, which makes it non-remotely-accessible and incompatible with hosted/cloud MCP clients. This is a hard architectural limitation affecting deployment flexibility.