timetree-mcp
TimeTree MCP
TimeTree MCP es un servidor no oficial del Model Context Protocol que accede a los calendarios de TimeTree a través de HTTPS. Por defecto usa un cliente directo de Python, sin abrir un navegador; el transporte por navegador solo se conserva como respaldo de compatibilidad. Las cookies de sesión y el token CSRF viven únicamente en la memoria del proceso MCP.
Importante: La Connect App/API oficial de TimeTree ha sido descontinuada. Este proyecto usa endpoints no públicos de TimeTree Web; pueden fallar cuando el servicio cambie de versión. Evalúa el riesgo por ti mismo y cumple con los términos y políticas de TimeTree.
Funciones
Lee calendars, events, memos, comments, labels y members.
Crea, actualiza y elimina events y memos.
Añade, actualiza y elimina comentarios de eventos.
Actualiza las etiquetas del calendario mediante una operación merge.
Monitoriza los cambios del calendario en segundo plano y envía notificaciones MCP.
Todas las operaciones de escritura exigen pasar
confirm: trueexplícitamente.No pone las credenciales en los argumentos de las herramientas MCP; la sesión autenticada solo se guarda en memoria.
Related MCP server: TimeTree MCP Server
Requisitos
Python 3.10 o superior.
Cuenta de TimeTree.
macOS para poder usar el helper de Keychain; en otras plataformas se pueden usar variables de entorno o archivo de contraseña.
Instalación
git clone <repository-url>
cd timetree-mcp
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --editable .El runtime solo usa la biblioteca estándar de Python. Tras la instalación se ofrecen los comandos timetree-mcp y timetree-credentials.
Usar el NPM wrapper
El wrapper de NPM requiere Node.js 18+ y Python 3.10+. Inicia el servidor MCP Python incluido en el paquete y reenvía la entrada/salida estándar del MCP:
npx --yes timetree-mcpTambién se puede instalar de forma global:
npm install --global timetree-mcp
timetree-mcpConfigurar credenciales
En macOS se recomienda usar Keychain. Al configurarla, la contraseña se introduce oculta en el terminal; no pasa al historial del shell, a los argumentos de MCP ni al código fuente:
./scripts/setup_timetree_keychain.sh
timetree-credentials statusEl MCP lee automáticamente el email/password de Keychain. El status solo comprueba que existan, no devuelve los valores. Para eliminar los dos elementos de Keychain:
timetree-credentials clearSi no se usa Keychain, también pueden usarse variables de entorno:
export TIMETREE_EMAIL='your-email@example.com'
export TIMETREE_PASSWORD='your-password'Es preferible usar un archivo de contraseña con permisos 600:
chmod 600 /absolute/path/to/timetree-password
export TIMETREE_EMAIL='your-email@example.com'
export TIMETREE_PASSWORD_FILE='/absolute/path/to/timetree-password'Registro en Codex
Reemplaza /absolute/path/to/timetree-mcp por la ruta de tu checkout. Si ya existe un servidor llamado timetree, elimínalo antes de volver a añadirlo:
codex mcp remove timetree
codex mcp add timetree \
--env TIMETREE_EMAIL=your-email@example.com \
--env TIMETREE_PASSWORD_FILE=/absolute/path/to/timetree-password \
-- python3 /absolute/path/to/timetree-mcp/src/timetree_mcp/server.pyNo pongas la contraseña real en el historial del shell, en los argumentos de las herramientas MCP, en el README ni en el código fuente.
Si se registra con el NPM wrapper, cambia el comando del servidor a:
codex mcp add timetree \
--env TIMETREE_EMAIL=your-email@example.com \
--env TIMETREE_PASSWORD_FILE=/absolute/path/to/timetree-password \
-- npx --yes timetree-mcpHerramientas MCP
Inicio de sesión y lectura
timetree_login,timetree_logout,timetree_statustimetree_keychain_statustimetree_list_calendars,timetree_list_events,timetree_list_memostimetree_list_event_commentstimetree_get_calendar_labels,timetree_get_calendar_members,timetree_get_calendar_virtual_members
Escritura
timetree_create_event,timetree_update_event,timetree_delete_eventtimetree_create_memo,timetree_update_memo,timetree_delete_memotimetree_add_event_comment,timetree_update_event_comment,timetree_delete_event_commenttimetree_update_calendar_labels
Las fechas pueden pasarse como cadenas ISO-8601 o milisegundos Unix. Todas las operaciones de escritura exigen confirm: true explícito. El endpoint de invitar/eliminar miembros no está verificado, por lo que no se incluyó a propósito.
Si algunos calendarios antiguos devuelven -425 en el endpoint de sincronización de TimeTree, las consultas de events omitirán ese calendario y lo informarán en el campo skipped_calendars, sin que el resto de calendarios legibles falle por completo.
Monitorización en segundo plano
timetree_start_monitor: inicia un polling en segundo plano con un intervalo de 30 a 3600 segundos.timetree_monitor_status: muestra el estado de la monitorización, el último polling, los errores y el número de notificaciones.timetree_stop_monitor: detiene la monitorización.
El primer polling solo establece una línea base. A partir de ahí, cuando detecta añadidos, cambios o eliminaciones, el servidor envía la notificación MCP notifications/message. La monitorización depende del proceso MCP y se detiene cuando el cliente termina.
Estructura del proyecto
src/timetree_mcp/ Python package 與 MCP server
bin/ NPM wrapper launcher
scripts/ 本機設定輔助腳本
tests/ standard-library unittest 測試
test/ NPM wrapper 測試
.github/workflows/ci.yml Continuous integrationPruebas
python3 -m unittest discover -s tests -v
npm testEl antiguo transporte ego-browser se conserva en src/timetree_mcp/browser.py como respaldo de compatibilidad, pero el servidor no lo carga por defecto.
Licencia
Este proyecto se distribuye bajo la MIT License.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables creating and managing Google Calendar events through OAuth 2.0 authentication, supporting event details like title, time, location, description, and attendees.6
- AlicenseAqualityAmaintenanceUnofficial MCP server for accessing and managing TimeTree calendar data, including events, memos, and comments, with secure email/password authentication.1811MIT
- FlicenseAqualityCmaintenanceUnofficial MCP server for accessing and managing TimeTree calendar data, supporting events, memos, and comments via email/password authentication.6
- AlicenseNot gradedqualityDmaintenanceEnables calendar management through Google Calendar API with OAuth2 authentication, multi-account support, and features like event creation, availability checking, and attendee management.MIT
Related MCP Connectors
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Publish public calendars and events others subscribe to: RSVPs, feeds and add-to-calendar links.
Connect your Oura Ring account securely in minutes. Enable authorized access to your sleep, activi…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ap311036/timetree-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server