Notion
Se integra con la API de Notion para gestionar la lista de tareas personales
Documentación
Integración MCP de Notion
Un servidor simple de Model Context Protocol (MCP) que se integra con la API de Notion para gestionar mi lista personal de tareas pendientes a través de Claude. Esta es una implementación básica adaptada específicamente para mi configuración minimalista de lista de tareas en Notion.
Nota importante
Este es un proyecto personal diseñado para un caso de uso muy específico: mi lista simple de tareas de Notion que tiene solo tres propiedades:
- Tarea (título)
- Cuándo (select con solo dos opciones: "hoy" o "después")
- Casilla de verificación (marca si está completada)
Base de datos de ejemplo de Notion
Aunque puedes usar esto como punto de partida para tu propia integración con Notion, probablemente necesitarás modificar el código para que coincida con la estructura y los requisitos específicos de tu base de datos.
Características
- Agregar nuevos elementos de tareas pendientes
- Ver todas las tareas pendientes
- Ver las tareas de hoy
- Marcar una tarea como completada
Requisitos previos
- Python 3.10 o superior
- Una cuenta de Notion
- Una integración de Notion (clave de API)
- Una base de datos de Notion que coincida con la estructura exacta descrita anteriormente (o disposición para modificar el código según tu estructura)
Configuración
- Clona el repositorio:
git clone https://github.com/yourusername/notion-mcp.git
cd notion-mcp
- Configura el entorno de Python:
python -m venv .venv
source .venv/bin/activate # On Windows use: .venv\Scripts\activate
uv pip install -e .
-
Crea una integración de Notion:
- Ve a https://www.notion.so/my-integrations
- Crea una nueva integración
- Copia la clave de API
-
Comparte tu base de datos con la integración:
- Abre tu base de datos de tareas en Notion
- Haz clic en el menú "..." → "Agregar conexiones"
- Selecciona tu integración
-
Crea un archivo
.env:
NOTION_API_KEY=your-api-key-here
NOTION_DATABASE_ID=your-database-id-here
- Configura Claude Desktop:
{
"mcpServers": {
"notion-todo": {
"command": "/path/to/your/.venv/bin/python",
"args": ["-m", "notion_mcp"],
"cwd": "/path/to/notion-mcp"
}
}
}
Ejecutar el servidor
El servidor se puede ejecutar de dos maneras:
- Directamente desde la línea de comandos:
# From the project directory with virtual environment activated
python -m notion_mcp
- Automáticamente a través de Claude Desktop (recomendado):
- El servidor se iniciará cuando Claude se abra si está configurado correctamente en
claude_desktop_config.json - No se necesita gestión manual del servidor
- El servidor se detiene cuando Claude se cierra
Nota: Cuando se ejecuta directamente, el servidor no mostrará ninguna salida a menos que haya un error; esto es normal, ya que está esperando comandos MCP.
Uso
Comandos básicos a través de Claude:
- "Muéstrame todas mis tareas pendientes"
- "¿Qué hay en mi lista para hoy?"
- "Agrega una tarea para hoy: revisar correos"
- "Agrega una tarea para después: revisar proyecto"
Limitaciones
- Solo funciona con una estructura específica de base de datos de Notion
- Sin soporte para esquemas de base de datos complejos
- Limitado a la programación de tareas "hoy" o "después"
- Sin soporte para propiedades adicionales o campos personalizados
- Manejo básico de errores
- Sin funciones avanzadas como tareas recurrentes, prioridades o etiquetas
Personalización
Si deseas usar esto con una estructura de base de datos diferente, necesitarás modificar el archivo server.py, particularmente:
- La función
create_todo()para que coincida con las propiedades de tu base de datos - El formato de tareas en
call_tool()para manejar tu estructura de datos - El esquema de entrada en
list_tools()si deseas diferentes opciones
Estructura del proyecto
notion_mcp/
├── pyproject.toml
├── README.md
├── .env # Not included in repo
└── src/
└── notion_mcp/
├── __init__.py
├── __main__.py
└── server.py # Main implementation
Licencia
Licencia MIT: úsalo bajo tu propio riesgo
Agradecimientos
- Construido para funcionar con Claude Desktop
- Utiliza la API de Notion