better-notion-mcp

Servidor MCP de Notion priorizando Markdown con 9 herramientas compuestas, 39 acciones y ~77% de reducción de tokens mediante documentación por niveles.

Documentación

Better Notion MCP

mcp-name: io.github.n24q02m/better-notion-mcp

Notion con Markdown primero para agentes de IA -- páginas, bases de datos, bloques y comentarios en una sola llamada.

CI codecov npm Docker License: Apache-2.0

TypeScript Node.js Notion semantic-release Renovate

Proyectos hermanos de n24q02m (clic para expandir)
ProyectoEsloganEtiqueta
agent-chat-pluginAgentes de IA pares chatean en una carpeta compartida — sin relevo humano, sin orquestador, tra...Herramientas
better-code-review-graphGrafo de conocimiento para revisiones de código eficientes en tokens -- búsqueda semántica y llam...MCP
better-driveSincronización bidireccional de Google Drive con filtro .driveignore — motor rclone, bandeja de WindowsHerramientas
better-email-mcpCorreo IMAP/SMTP para agentes de IA -- leer, enviar, organizar carpetas y gestionar archivos adj...MCP
better-godot-mcpServidor MCP compuesto para Godot Engine -- 17 herramientas compuestas para desarrollo asistido por IA...MCP
better-notion-mcpNotion con Markdown primero para agentes de IA -- páginas, bases de datos, bloques y comentarios...MCP
better-semantic-releaseBifurcación directa de python-semantic-release con protecciones de seguridad de lanzamiento integradas (orp...Herramientas
better-telegram-mcpTelegram para agentes de IA -- mensajes, chats, medios y contactos en ambos bo...MCP
better-workspace-mcpServidor MCP de Google Workspace (Docs/Drive/Calendar/Gmail/Sheets/Slides/Tasks/Ch...MCP
claude-pluginsMercado de plugins de Claude Code para los servidores MCP de n24q02m -- instalar búsqueda web...Mercado
imagine-mcpComprensión y generación de imágenes y videos para agentes de IA -- a través de Gemini, Op...MCP
jules-task-archiverExtensión de Chrome para operaciones masivas en tareas de Jules mediante la API batchexecute -- a...Herramientas
mcp-coreBase compartida para construir servidores MCP -- transporte HTTP Streamable, OAut...MCP
mnemo-mcpMemoria persistente de IA con búsqueda híbrida y sincronización integrada. Abierta, gratuita, ilimit...MCP
qwen3-embedIncrustación y reordenamiento de texto Qwen3 ligero mediante ONNX Runtime y GGUFBiblioteca
skretSecretos sin servidor.CLI
tacetUna cascada neuro-simbólica autodestilante que amortiza el costo de LLM en conocimiento...Herramientas
web-corePaquete de infraestructura web compartida para búsqueda, raspado, seguridad HTTP y almacenamiento...Biblioteca
wet-mcpServidor MCP de código abierto para agentes de IA: búsqueda web, extracción de contenido y bibli...MCP

Tabla de contenidos

Better Notion MCP server

Características

  • Markdown adentro, Markdown afuera -- contenido legible en lugar de bloques JSON crudos
  • 8 herramientas compuestas, 39 acciones -- una llamada en lugar de encadenar 2+ endpoints atómicos de Notion (además de config, help y una herramienta de configuración de relevo)
  • Paginación automática y operaciones masivas -- sin manejo manual de cursores ni bucles
  • Optimización de tokens por niveles -- reducción de ~77% mediante descripciones comprimidas + herramienta help bajo demanda
  • Transporte dual -- stdio local (token de integración) o HTTP remoto (OAuth 2.1, sin token que pegar)

Instalación

Ejecuta con npx (Node.js >= 24) y un token de integración de Notion desde https://www.notion.so/my-integrations (comienza con ntn_):

// MCP client config (e.g. .mcp.json / Claude Code / Cursor)
{
  "mcpServers": {
    "better-notion-mcp": {
      "command": "npx",
      "args": ["--yes", "@n24q02m/better-notion-mcp@latest"],
      "env": { "NOTION_TOKEN": "ntn_your_token_here" }
    }
  }
}

O ejecuta la imagen Docker publicada (stdio):

docker run --rm -i -e NOTION_TOKEN=ntn_your_token_here n24q02m/better-notion-mcp:latest

Consulta la sección Documentación para la configuración por cliente (Claude Code, Codex, Gemini CLI, Cursor, Windsurf) y el modo HTTP/OAuth.

CLI

Instalar el paquete expone un binario better-notion-mcp (ejecútalo con npx o después de una instalación global). No tiene subcomandos -- ejecutarlo inicia el servidor MCP y habla el protocolo por stdin/stdout, por lo que normalmente lo lanza un cliente MCP en lugar de hacerlo manualmente.

# Start the stdio server (default transport; requires NOTION_TOKEN)
NOTION_TOKEN=ntn_your_token_here npx --yes @n24q02m/better-notion-mcp@latest

# Start the remote HTTP server (OAuth 2.1) instead of stdio
npx --yes @n24q02m/better-notion-mcp@latest --http
Argumento / envEfecto
(ninguno)transporte stdio (predeterminado); requiere NOTION_TOKEN
--httptransporte HTTP con OAuth 2.1 (equivalente a TRANSPORT_MODE=http / MCP_TRANSPORT=http)

Consulta Configuración para la referencia completa de variables de entorno.

Remoto (modo HTTP)

Desplegado con el transporte HTTP, el servidor es un endpoint remoto protegido por OAuth 2.1 -- sin token de integración que pegar. Apunta un cliente MCP que admita servidores HTTP remotos al host donde lo desplegaste:

// MCP client config -- remote HTTP (OAuth 2.1)
{
  "mcpServers": {
    "better-notion-mcp": {
      "type": "http",
      "url": "https://<your-host>/mcp"
    }
  }
}

En la primera conexión, el cliente abre la pantalla de consentimiento OAuth de Notion; los tokens de acceso por usuario se mantienen solo en el proceso (consulta Modelo de confianza). Para levantar una instancia de este tipo, consulta Autoalojamiento (modo remoto) y Desplegar en Cloudflare.

Smithery

El repositorio incluye una configuración smithery.yaml para Smithery. Smithery lanza el servidor a través de stdio (npx -y @n24q02m/better-notion-mcp) y no requiere configuración en la instalación -- proporciona tus credenciales de Notion en tiempo de ejecución mediante el flujo de configuración propio del servidor (variable de entorno NOTION_TOKEN, o el formulario de relevo; consulta Configuración).

Estado

2026-05-02 -- Actualización de estabilización de arquitectura

Los últimos meses vieron una agitación significativa en torno al manejo de credenciales y el patrón de auto-inicio del puente demonio. Esto causó carreras entre procesos, spam de pestañas del navegador y una experiencia de configuración inconsistente entre plugins. La arquitectura ahora es estable: 2 modos limpios (stdio + HTTP), sin capa de puente demonio, sin auto-inicio desde stdio.

Disculpas por el período de inestabilidad. Si encontraste problemas con versiones anteriores, actualiza a la última versión y sigue la Guía de configuración actual -- la mayoría de los trucos anteriores ya no son necesarios.

Plugins relacionados del mismo autor:

Todos los plugins comparten la misma arquitectura -- instala una vez, el patrón se transfiere.

Documentación

Documentación completa en mcp.n24q02m.com/servers/better-notion-mcp/:

Instalar con agente de IA -- pega esto a tu agente de codificación de IA:

Instala el servidor MCP better-notion-mcp siguiendo los pasos en https://raw.githubusercontent.com/n24q02m/claude-plugins/main/plugins/better-notion-mcp/setup-with-agent.md

Herramientas

Ocho herramientas compuestas de Notion (39 acciones) más tres herramientas de infraestructura (config, config__open_relay, help):

HerramientaAccionesDescripción
pagescreate, get, get_property, update, move, archive, restore, duplicateCrear, leer, actualizar y organizar páginas
databasescreate, get, query, create_page, update_page, delete_page, create_data_source, update_data_source, update_database, list_templatesCRUD de bases de datos y gestión de páginas dentro de bases de datos
blocksget, children, append, update, deleteLeer y manipular contenido de bloques
userslist, get, me, from_workspaceListar y recuperar información de usuarios
workspaceinfo, searchMetadatos del espacio de trabajo y búsqueda entre espacios
commentslist, get, createComentarios de páginas y respuestas de discusión
content_convertmarkdown-to-blocks, blocks-to-markdownConvertir entre Markdown y bloques de Notion (usa un parámetro direction)
file_uploadscreate, send, complete, retrieve, listSubir archivos a Notion (de una o varias partes)
configstatus, setup_status, setup_start, setup_reset, setup_complete, set, cache_clearInspeccionar y gestionar el estado de credenciales y el ciclo de vida de configuración
config__open_relay-Abrir el formulario de configuración de relevo en el navegador y devolver la URL de relevo + estado de credenciales
help-Obtener documentación completa para cualquier herramienta compuesta (parámetro tool_name)

Recursos MCP

URIDescripción
notion://docs/pagesReferencia de operaciones de páginas
notion://docs/databasesReferencia de operaciones de bases de datos
notion://docs/blocksReferencia de operaciones de bloques
notion://docs/usersReferencia de operaciones de usuarios
notion://docs/workspaceReferencia de operaciones del espacio de trabajo
notion://docs/commentsReferencia de operaciones de comentarios
notion://docs/content_convertReferencia de conversión de contenido
notion://docs/file_uploadsReferencia de subida de archivos

Configuración

VariableRequeridaPredeterminadoDescripción
NOTION_TOKENSí (stdio)-Token de integración de Notion
TRANSPORT_MODE / MCP_TRANSPORTNostdioEstablece cualquiera a http para modo remoto (o pasa --http)
PUBLIC_URLNo (http)-URL pública del servidor para enlaces de redirección OAuth
NOTION_OAUTH_CLIENT_IDSí (http)-ID de cliente de integración pública de Notion (o bandera CLI --oauth-client-id=<id>, que anula la variable de entorno)
NOTION_OAUTH_CLIENT_SECRETSí (http)-Secreto de cliente de integración pública de Notion (o bandera CLI --oauth-client-secret=<secret>, que anula la variable de entorno)
MCP_AUTH_DISABLENo (http)-Establecer a 1 para omitir la verificación de JWT Bearer cuando esté detrás de una puerta de enlace de autenticación externa
PORTNo0 (asignado por el SO)Puerto del servidor; establece explícitamente (p. ej. 8080) para fijar un puerto
HOSTNo-Dirección de enlace (modo http)

Autoalojamiento (modo remoto)

Puedes autoalojar el servidor remoto con tu propia aplicación OAuth de Notion.

Requisitos previos:

  1. Crea una Integración pública en https://www.notion.so/my-integrations
  2. Establece la URI de redirección a https://your-domain.com/callback
  3. Anota tu client_id y client_secret
docker run -p 8080:8080 \
  -e TRANSPORT_MODE=http \
  -e PORT=8080 \
  -e PUBLIC_URL=https://your-domain.com \
  -e NOTION_OAUTH_CLIENT_ID=your-client-id \
  -e NOTION_OAUTH_CLIENT_SECRET=your-client-secret \
  n24q02m/better-notion-mcp:latest

Desplegar en Cloudflare

Deploy to Cloudflare

Ejecuta tu propio better-notion-mcp multiusuario sin servidor en Cloudflare (Worker + Container + KV). Requisitos previos: una cuenta de Cloudflare en el plan Workers de pago — necesario para Containers (el nivel gratuito de Cloudflare no incluye Containers) — y la CLI wrangler.

  1. git clone https://github.com/n24q02m/better-notion-mcp && cd better-notion-mcp
  2. wrangler login
  3. Aprovisiona el namespace de KV y pega su id en wrangler.jsonc:
    wrangler kv namespace create better-notion-kv
    
  4. Configura los secretos:
    wrangler secret put CREDENTIAL_SECRET
    wrangler secret put NOTION_OAUTH_CLIENT_ID
    wrangler secret put NOTION_OAUTH_CLIENT_SECRET
    
    CREDENTIAL_SECRET es OBLIGATORIO: deriva una clave de firma OAuth determinista para que la identidad del usuario sobreviva a la recreación del contenedor.
  5. Sube la imagen http al registro gestionado por CF y despliega:
    wrangler containers push better-notion-mcp:beta
    wrangler deploy
    
  6. Completa el flujo OAuth de Notion en el navegador en tu dominio de Worker.

Los tokens de acceso de Notion por usuario se cifran en KV (MCP_STORAGE_BACKEND=cf-kv), por lo que sobreviven al scale-to-zero. NO configures MCP_AUTH_DISABLE en un despliegue compartido/público: colapsa a todos los usuarios en un único bucket de tokens.

Comparación

Cómo se posiciona better-notion-mcp frente a sus competidores directos en cada pilar:

Capacidadbetter-notion-mcpmakenotion/notion-mcp-serversuekou/mcp-notion-serverawkoy/notion-mcp-server
Markdown entrada/salidaSí (ida y vuelta en páginas + bloques)No (JSON crudo de Notion)parcial (experimental, append + conversión opcional)Sí (ida y vuelta + GFM)
Diseño de herramientas compuestasSí (8 herramientas compuestas, 39 acciones)No (22 herramientas mapeadas a endpoints)parcial (herramientas simplificadas + JSON crudo)Sí (2 herramientas de despacho, 35+ operaciones)
Subida de archivos a NotionSí (file_uploads, una + varias partes)NoNoSí (upload_file, una + varias partes)
ComentariosSí (comments: list/get/create)
Transporte HTTP remoto + OAuth 2.1Sí (multi-usuario por JWT-sub)parcial (HTTP + token bearer, sin OAuth)No (solo token stdio)No (solo token stdio)
AutoalojableSí (Docker, app OAuth propia)
LicenciaApache-2.0?MITMIT

Seguridad

  • OAuth 2.1 + PKCE S256 -- Autorización segura con code challenge
  • Límite de peticiones -- 120 req/min/IP en transporte HTTP
  • Vinculación del propietario de sesión -- comprobación de IP + TTL para vinculaciones de token pendientes
  • Seguridad ante null -- Maneja peculiaridades de la API de Notion (comments.list 404, rich_text indefinido)

Compilar desde el código fuente

git clone https://github.com/n24q02m/better-notion-mcp.git
cd better-notion-mcp
bun install
bun run dev

Modelo de confianza

Este plugin implementa TC-NearZK (en memoria, efímero). Consulta la referencia del modelo de confianza para la clasificación completa.

ModoAlmacenamientoCifrado¿Quién puede leer tus datos?
HTTP n24q02m-hosted (predeterminado)En memoria Map<sub, OAuthToken>Solo en procesoProceso del servidor (se borra al reiniciar)
HTTP autoalojadoIgual que el alojadoIgualSolo tú (admin = usuario)
stdio (local)config.enc en el directorio de configuración del SO (%APPDATA%\mcp\Config\config.enc en Windows, ~/.config/mcp/config.enc en Linux/macOS)AES-GCM, clave vinculada a la máquinaSolo tu usuario del SO

Licencia

Apache-2.0 -- Consulta LICENSE.