better-notion-mcp

Servidor MCP Notion com foco em Markdown, com 9 ferramentas compostas, 39 ações e redução de ~77% de tokens por meio de documentação em camadas.

Documentação

ARQUIVADO EM 2026-09-13 — Este repositório não é mais mantido. Use a API oficial do Notion em vez deste servidor MCP. Instalações existentes continuam funcionando, mas não recebem atualizações ou suporte.

Better Notion MCP

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

Notion com foco em Markdown para agentes de IA — páginas, bancos de dados, blocos e comentários em uma única chamada.

Mode CI codecov npm Docker License: Apache-2.0

TypeScript Node.js Notion semantic-release Renovate

Projetos irmãos de n24q02m (clique para expandir)
ProjetoTaglineTag
agent-chat-pluginAgentes de IA pares conversam em uma pasta compartilhada — sem intermediário humano, sem orquestrador, fun...Ferramentas
better-code-review-graphGrafo de conhecimento para revisões de código eficientes em tokens — busca semântica e chamadas de...MCP
better-driveSincronização bidirecional do Google Drive com filtro .driveignore — mecanismo rclone, bandeja do WindowsFerramentas
better-email-mcpE-mail IMAP/SMTP para agentes de IA — ler, enviar, organizar pastas e gerenciar anex...MCP
better-godot-mcpServidor MCP composto para Godot Engine — 17 ferramentas compostas para jogos assistidos por I...MCP
better-notion-mcpNotion com foco em Markdown para agentes de IA — páginas, bancos de dados, blocos e comentários...MCP
better-semantic-releaseFork do python-semantic-release com proteções de segurança de release integradas (orp...)Ferramentas
better-telegram-mcpTelegram para agentes de IA — mensagens, chats, mídia e contatos em ambos os bo...MCP
better-workspace-mcpServidor MCP do Google Workspace (Docs/Drive/Calendar/Gmail/Sheets/Slides/Tasks/Ch...)MCP
claude-pluginsMarketplace de plugins do Claude Code para os servidores MCP da n24q02m — instale pesquisa we...Marketplace
imagine-mcpCompreensão e geração de imagem e vídeo para agentes de IA — entre Gemini, Op...MCP
jules-task-archiverExtensão do Chrome para operações em massa em tarefas do Jules via API batchexecute — a...Ferramentas
mcp-coreFundação compartilhada para construir servidores MCP — transporte HTTP Streamable, OAut...MCP
mnemo-mcpMemória persistente de IA com busca híbrida e sincronização incorporada. Aberto, gratuito, ilimit...MCP
qwen3-embedEmbedding e reclassificação de texto Qwen3 leve via ONNX Runtime e GGUFBiblioteca
skretSegredos sem o servidor.CLI
tacetUma cascata neuro-simbólica autodestilante que amortiza o custo de LLM em conhecimento...Ferramentas
web-corePacote de infraestrutura web compartilhada para busca, scraping, segurança HTTP e st...Biblioteca
wet-mcpServidor MCP de código aberto para agentes de IA: busca web, extração de conteúdo e lib...MCP

Sumário

Better Notion MCP server

Recursos

  • Markdown entra, Markdown sai — conteúdo legível por humanos em vez de blocos JSON brutos
  • 8 ferramentas compostas, 39 ações — uma única chamada em vez de encadear 2+ endpoints atômicos do Notion (além de config, help e uma ferramenta de configuração de relay)
  • Paginação automática e operações em massa — sem manipulação manual de cursor ou loops
  • Otimização de tokens em camadas — redução de ~77% via descrições compactadas + ferramenta help sob demanda
  • Transporte duplo — stdio local (token de integração) ou HTTP remoto (OAuth 2.1, sem token para colar)

Instalação

Execute com npx (Node.js >= 24) e um token de integração do Notion de https://www.notion.so/my-integrations (começa com 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" }
    }
  }
}

Ou execute a imagem Docker publicada (stdio):

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

Matriz de instalação

ClienteInstalação
Claude Code/plugin marketplace add n24q02m/claude-plugins + /plugin install better-notion-mcp@n24q02m-plugins (stdio; solicita NOTION_TOKEN), ou uma entrada mcpServers em .mcp.json / configurações do cliente
Codex CLIBloco [mcp_servers.better-notion-mcp] em ~/.codex/config.toml (stdio command/args ou HTTP type/url)
OpenCodeBloco mcpServers em opencode.json
Cursor / Windsurf / Gemini CLI / qualquer cliente MCPJSON mcpServers na configuração do cliente — mesma estrutura do exemplo acima

Guias completos por cliente: mcp.n24q02m.com/servers/better-notion-mcp/setup/. Consulte a seção Documentação para configuração por cliente (Claude Code, Codex, Gemini CLI, Cursor, Windsurf) e modo HTTP/OAuth.

CLI

Instalar o pacote expõe um binário better-notion-mcp (execute com npx ou após uma instalação global). Ele não tem subcomandos — executá-lo inicia o servidor MCP e fala o protocolo via stdin/stdout, portanto normalmente é iniciado por um cliente MCP em vez de 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 / envEfeito
(nenhum)Transporte stdio (padrão); requer NOTION_TOKEN
--httpTransporte HTTP com OAuth 2.1 (equivalente a TRANSPORT_MODE=http / MCP_TRANSPORT=http)

Consulte Configuração para a referência completa de variáveis de ambiente.

Remoto (modo HTTP)

Implantado com o transporte HTTP, o servidor é um endpoint remoto protegido por OAuth 2.1 — sem token de integração para colar. Aponte um cliente MCP que suporte servidores HTTP remotos para o host onde você o implantou:

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

Na primeira conexão, o cliente abre a tela de consentimento OAuth do Notion; os tokens de acesso por usuário são mantidos apenas em processo (consulte Modelo de confiança). Para montar essa instância, consulte Auto-hospedagem (modo remoto) e Implantar no Cloudflare.

Smithery

O repositório inclui uma configuração smithery.yaml para Smithery. O Smithery inicia o servidor via stdio (npx -y @n24q02m/better-notion-mcp) e não requer configuração na instalação — forneça suas credenciais do Notion em tempo de execução pelo fluxo de configuração do próprio servidor (env NOTION_TOKEN, ou o formulário de relay; consulte Configuração).

Status

2026-05-02 — Atualização de estabilização da arquitetura

Nos últimos meses houve mudanças significativas no tratamento de credenciais e no padrão de auto-inicialização do daemon-bridge. Isso causou corridas entre processos, spam de abas no navegador e experiência de configuração inconsistente entre plugins. A arquitetura agora está estável: 2 modos limpos (stdio + HTTP), sem camada de daemon-bridge, sem auto-inicialização via stdio.

Pedimos desculpas pelo período de instabilidade. Se você encontrou problemas com versões anteriores, atualize para a versão mais recente e siga o Guia de configuração atual — a maioria das soluções alternativas anteriores não é mais necessária.

Plugins relacionados do mesmo autor:

Todos os plugins compartilham a mesma arquitetura — instale uma vez, o padrão se transfere.

Documentação

Documentação completa em mcp.n24q02m.com/servers/better-notion-mcp/:

Instale com agente de IA — cole isto no seu agente de codificação de IA:

Instale o servidor MCP better-notion-mcp seguindo os passos em https://raw.githubusercontent.com/n24q02m/claude-plugins/main/plugins/better-notion-mcp/setup-with-agent.md

Ferramentas

Oito ferramentas compostas do Notion (39 ações) mais três ferramentas de infraestrutura (config, config__open_relay, help):

FerramentaAçõesDescrição
pagescreate, get, get_property, update, move, archive, restore, duplicateCriar, ler, atualizar e organizar páginas
databasescreate, get, query, create_page, update_page, delete_page, create_data_source, update_data_source, update_database, list_templatesCRUD de bancos de dados e gerenciamento de páginas dentro de bancos de dados
blocksget, children, append, update, deleteLer e manipular conteúdo de blocos
userslist, get, me, from_workspaceListar e recuperar informações de usuários
workspaceinfo, searchMetadados do workspace e busca entre workspaces
commentslist, get, createComentários em páginas e respostas em discussões
content_convertmarkdown-to-blocks, blocks-to-markdownConverter entre Markdown e blocos do Notion (usa um parâmetro direction)
file_uploadscreate, send, complete, retrieve, listEnviar arquivos para o Notion (único ou múltiplas partes)
configstatus, setup_status, setup_start, setup_reset, setup_complete, set, cache_clearInspecionar e gerenciar estado de credenciais e ciclo de vida de configuração
config__open_relay-Abrir o formulário de configuração do relay no navegador e retornar a URL do relay + estado de credenciais
help-Obter documentação completa para qualquer ferramenta composta (parâmetro tool_name)

Recursos MCP

URIDescrição
notion://docs/pagesReferência de operações de páginas
notion://docs/databasesReferência de operações de bancos de dados
notion://docs/blocksReferência de operações de blocos
notion://docs/usersReferência de operações de usuários
notion://docs/workspaceReferência de operações de workspace
notion://docs/commentsReferência de operações de comentários
notion://docs/content_convertReferência de conversão de conteúdo
notion://docs/file_uploadsReferência de envio de arquivos

Configuração

VariávelObrigatóriaPadrãoDescrição
NOTION_TOKENSim (stdio)-Token de integração do Notion
TRANSPORT_MODE / MCP_TRANSPORTNãostdioDefina um deles como http para o modo remoto (ou passe --http)
PUBLIC_URLNão (http)-URL pública do servidor para links de redirecionamento OAuth
NOTION_OAUTH_CLIENT_IDSim (http)-ID do cliente da Integração Pública do Notion (ou flag CLI --oauth-client-id=<id>, que substitui a variável de ambiente)
NOTION_OAUTH_CLIENT_SECRETSim (http)-Segredo do cliente da Integração Pública do Notion (ou flag CLI --oauth-client-secret=<secret>, que substitui a variável de ambiente)
MCP_AUTH_DISABLENão (http)-Defina como 1 para pular a verificação do Bearer JWT ao usar um gateway de autenticação externo
PORTNão0 (atribuído pelo SO)Porta do servidor; defina explicitamente (ex.: 8080) para vincular uma porta fixa
HOSTNão-Endereço de bind (modo http)

Self-Hosting (Modo Remoto)

Você pode hospedar o servidor remoto com seu próprio aplicativo OAuth do Notion.

Pré-requisitos:

  1. Crie uma Integração Pública em https://www.notion.so/my-integrations
  2. Defina o URI de redirecionamento como https://your-domain.com/callback
  3. Anote seu client_id e 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

Implantar no Cloudflare

Deploy to Cloudflare

Execute seu próprio better-notion-mcp multiusuário sem servidor no Cloudflare (Worker + Container + KV).

Implantação (gerenciada por CD)

Implantações gerenciadas passam pelo CI, nunca manualmente: o job deploy-cf em .github/workflows/cd.yml é executado após um release, faz checkout da tag lançada, constrói a imagem imutável http-slim na versão lançada, envia para o registry gerenciado do Cloudflare, implanta e depende de uma verificação canary — uma instância gerenciada só pode executar uma tag de release exata. wrangler deploy manual contra uma instância gerenciada/operada não é permitido: isso quebra a correspondência tag-de-release ↔ imagem-ao-vivo, e a próxima execução do CD a sobrescreveria.

O job é controlado pela variável de Actions do repositório CF_HOSTED_ENABLED — atualmente false, então releases não publicam um endpoint hospedado. Para executar sua própria instância, use os passos de self-host abaixo.

Pré-requisitos: uma conta Cloudflare no plano Workers Paid — necessário para Containers (o plano gratuito do Cloudflare não inclui Containers) — e o CLI wrangler.

  1. git clone https://github.com/n24q02m/better-notion-mcp && cd better-notion-mcp
  2. wrangler login
  3. Provisione o namespace KV e cole o id em wrangler.jsonc:
    wrangler kv namespace create better-notion-kv
    
  4. Defina os segredos:
    wrangler secret put CREDENTIAL_SECRET
    wrangler secret put NOTION_OAUTH_CLIENT_ID
    wrangler secret put NOTION_OAUTH_CLIENT_SECRET
    
    CREDENTIAL_SECRET é OBRIGATÓRIO: ele deriva uma chave de assinatura OAuth determinística para que a identidade do usuário sobreviva à recriação do container.
  5. Envie a imagem http para o registry gerenciado do CF e implante:
    wrangler containers push better-notion-mcp:beta
    wrangler deploy
    
  6. Complete o fluxo OAuth do Notion no navegador no domínio do seu Worker.

Os tokens de acesso do Notion por usuário são criptografados no KV (MCP_STORAGE_BACKEND=cf-kv), então sobrevivem ao scale-to-zero. NÃO defina MCP_AUTH_DISABLE em uma implantação compartilhada/pública — isso colapsa todos os usuários em um único bucket de tokens.

Comparação

Como o better-notion-mcp se compara aos concorrentes diretos em cada pilar:

Capacidadebetter-notion-mcpmakenotion/notion-mcp-serversuekou/mcp-notion-serverawkoy/notion-mcp-server
Markdown entrada/saídaSim (round-trip em páginas + blocos)Não (JSON bruto do Notion)parcial (experimental, append + conversão opt-in)Sim (round-trip + GFM)
Design de ferramentas compostasSim (8 ferramentas compostas, 39 ações)Não (22 ferramentas mapeadas a endpoints)parcial (ferramentas simplificadas + JSON bruto)Sim (2 ferramentas de despacho, 35+ operações)
Upload de arquivos para o NotionSim (file_uploads, única + múltiplas partes)NãoNãoSim (upload_file, única + múltiplas partes)
ComentáriosSim (comments: listar/obter/criar)SimSimSim
Transporte HTTP remoto + OAuth 2.1Sim (multiusuário por JWT-sub)parcial (HTTP + bearer token, sem OAuth)Não (somente token stdio)Não (somente token stdio)
Auto-hospedávelSim (Docker, app OAuth próprio)SimSimSim
LicençaApache-2.0?MITMIT

Segurança

  • OAuth 2.1 + PKCE S256 — Autorização segura com code challenge
  • Limite de taxa — 120 req/min/IP no transporte HTTP
  • Vínculo do proprietário da sessão — Verificação de IP + TTL para binds de token pendentes
  • Segurança contra nulos — Lida com peculiaridades da API do Notion (comments.list 404, rich_text indefinido)

Compilar a partir do Código-Fonte

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

Modelo de Confiança

Este plugin implementa TC-NearZK (em memória, efêmero). Veja a referência do modelo de confiança para a classificação completa.

ModoArmazenamentoCriptografiaQuem pode ler seus dados?
HTTP hospedado n24q02m (padrão)Map<sub, OAuthToken> em memóriaSomente no processoProcesso do servidor (limpo na reinicialização)
HTTP auto-hospedadoIgual ao hospedadoIgualSomente você (admin = usuário)
stdio (local)config.enc no diretório de configuração do SO (%APPDATA%\mcp\Config\config.enc no Windows, ~/.config/mcp/config.enc no Linux/macOS)AES-GCM, chave vinculada à máquinaSomente seu usuário do SO

Licença

Apache-2.0 — Veja LICENSE.