Notion MCP Server
Un servidor MCP para interactuar con tu espacio de trabajo de Notion, que permite a los LLMs gestionar páginas y bases de datos.
Documentación
Notion MCP Server
Un servidor de Model Context Protocol para la integración con Notion, que permite a Claude y otros LLMs interactuar con tu espacio de trabajo de Notion.
Características
- Buscar en Notion: Busca en todo tu espacio de trabajo de Notion
- Obtener página: Recupera el contenido de una página específica de Notion
- Crear página: Crea nuevas páginas en tu espacio de trabajo de Notion
- Actualizar página: Actualiza páginas existentes con nuevo contenido o títulos
- Crear base de datos: Crea nuevas bases de datos con propiedades personalizadas
- Consultar base de datos: Consulta bases de datos con filtros y ordenamiento
- Actualizar entrada de base de datos: Actualiza propiedades de entradas de base de datos
- Crear fila en base de datos: Agrega nuevas filas a bases de datos existentes con propiedades personalizadas
Configuración
-
Clona este repositorio
-
Instala las dependencias
npm install -
Configura tu clave de API de Notion
- Crea una integración en el portal de desarrolladores de Notion
- Copia tu clave de API
- Puedes:
- Editar el archivo
.envy reemplazaryour_notion_api_key_herecon tu clave de API real, o - Pasarla directamente en la configuración de Claude for Desktop (recomendado, ver más abajo)
- Editar el archivo
-
Compila el servidor
npm run build -
Ejecuta el servidor
npm start
Configuración con Claude for Desktop
-
Instala Claude for Desktop (si aún no está instalado)
-
Abre la configuración de tu aplicación Claude for Desktop:
- En macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Crea el archivo si no existe
- En macOS:
-
Agrega el servidor de Notion a tu configuración:
{ "mcpServers": { "notion": { "command": "node", "args": [ "/Users/shaheerahmad/Documents/notion-mcp-server/dist/index.js", "--notion-api-key=YOUR_ACTUAL_API_KEY_HERE" ] } } }Reemplaza:
/Users/shaheerahmad/Documents/notion-mcp-servercon la ruta completa a tu directorio del proyectoYOUR_ACTUAL_API_KEY_HEREcon tu clave de API de Notion real
-
Reinicia Claude for Desktop
Uso del servidor
Una vez conectado a Claude for Desktop, puedes usar el servidor pidiéndole a Claude cosas como:
- "Busca notas de reuniones en mi espacio de trabajo de Notion"
- "Obtén el contenido de mi página de planificación de proyectos" (necesitarás el ID de la página)
- "Crea una nueva página en Notion con una lista de tareas"
- "Actualiza mi página de Notion con ID 1aaada269d1b8003adceda69cf7bcd97 con el contenido 'Aquí hay algo de contenido nuevo para agregar a la página.'"
- "Crea una nueva base de datos en mi página de Notion con ID 1aaada269d1b8003adceda69cf7bcd97"
- "Consulta mi base de datos de Notion con ID 1aaada269d1b8003adceda69cf7bcd97 para elementos con estado 'Completado'"
Claude usará automáticamente las herramientas apropiadas según tu solicitud.
Ejemplos de uso de herramientas
Buscar en Notion
Search for "meeting notes" in my Notion workspace
Obtener contenido de página
Get the content of my Notion page with ID 1aaada269d1b8003adceda69cf7bcd97
Crear una nueva página
Create a new page in Notion with title "Weekly Report" and content "This week we accomplished the following tasks..."
Actualizar una página existente
Update my Notion page with ID 1aaada269d1b8003adceda69cf7bcd97 with content "Adding this new information to the page."
También puedes actualizar el título:
Update my Notion page with ID 1aaada269d1b8003adceda69cf7bcd97 with title "New Title" and content "New content to add."
Crear una nueva base de datos
Create a new database in my Notion page with ID 1aaada269d1b8003adceda69cf7bcd97 with title "Task Tracker" and properties {
"Task Name": { "title": {} },
"Status": {
"select": {
"options": [
{ "name": "Not Started", "color": "red" },
{ "name": "In Progress", "color": "yellow" },
{ "name": "Completed", "color": "green" }
]
}
},
"Priority": {
"select": {
"options": [
{ "name": "Low", "color": "blue" },
{ "name": "Medium", "color": "yellow" },
{ "name": "High", "color": "red" }
]
}
},
"Due Date": { "date": {} }
}
Consultar una base de datos
Query my Notion database with ID 1aaada269d1b8003adceda69cf7bcd97 with filter {
"property": "Status",
"select": {
"equals": "Completed"
}
}
También puedes agregar ordenamiento:
Query my Notion database with ID 1aaada269d1b8003adceda69cf7bcd97 with sort {
"property": "Due Date",
"direction": "ascending"
}
Actualizar entrada de base de datos
Actualiza las propiedades de una entrada de base de datos existente (página dentro de una base de datos).
{
"tool_name": "update-database-entry",
"tool_params": {
"pageId": "page_id_of_database_entry",
"properties": {
"Status": {
"select": {
"name": "Completed"
}
},
"Priority": {
"select": {
"name": "High"
}
},
"Due Date": {
"date": {
"start": "2023-12-31"
}
}
}
}
}
El parámetro properties debe coincidir con la estructura esperada por la API de Notion para los tipos de propiedad específicos en tu base de datos. Diferentes tipos de propiedad (texto, selección, fecha, etc.) requieren formatos diferentes.
Crear fila en base de datos
Agrega una nueva fila a una base de datos existente con propiedades personalizadas.
{
"tool_name": "create-database-row",
"tool_params": {
"databaseId": "your_database_id_here",
"properties": {
"Name": {
"title": [
{
"text": {
"content": "New Task"
}
}
]
},
"Status": {
"select": {
"name": "Not Started"
}
},
"Priority": {
"select": {
"name": "Medium"
}
},
"Due Date": {
"date": {
"start": "2023-12-15"
}
},
"Notes": {
"rich_text": [
{
"text": {
"content": "This is a new task created via the API"
}
}
]
}
}
}
}
El parámetro properties debe incluir todas las propiedades requeridas para la base de datos y seguir la estructura de la API de Notion para cada tipo de propiedad.
Solución de problemas
-
Si las herramientas no aparecen, revisa los registros de Claude for Desktop:
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log -
Asegúrate de que tu clave de API de Notion esté configurada correctamente y que tu integración tenga acceso a las páginas con las que deseas interactuar.
-
Si ves errores de "Unexpected token" en los registros, es probable que las declaraciones console.log estén interfiriendo con el protocolo MCP. Esta versión del servidor se ha actualizado para evitar esos problemas.
Mejoras futuras
- Agregar capacidades de consulta de bases de datos
- Implementar mejor formato de contenido
- Agregar soporte para más tipos de bloques