Notion

Pesquise, leia, crie e atualize páginas e bancos de dados no seu espaço de trabalho do Notion.

Documentação

Notion MCP Server

Um servidor Model Context Protocol (MCP) que fornece integração perfeita com o Notion. Este servidor permite que Modelos de Linguagem interajam com seu workspace do Notion por meio de ferramentas padronizadas para pesquisar, ler, criar e atualizar páginas e bancos de dados.

🌟 Principais Recursos

Operações de Página

  • 🔍 Pesquise em seu workspace do Notion
  • 📝 Crie novas páginas com conteúdo rich markdown
  • 📖 Leia o conteúdo da página com formatação limpa
  • 🔄 Atualize páginas existentes
  • 💬 Adicione e recupere comentários
  • 🧱 Operações em nível de bloco (atualizar, excluir)

Suporte Aprimorado a Markdown

  • Múltiplos níveis de títulos (H1-H3)
  • Blocos de código com suporte a linguagens
  • Itens de tarefas interativos com estados de caixa de seleção
  • Citações em bloco com suporte a múltiplas linhas
  • Divisores horizontais
  • Imagens com legendas
  • Marcadores aninhados

Operações de Banco de Dados

  • Crie e gerencie bancos de dados
  • Adicione e atualize itens de banco de dados
  • Consulte com filtros e ordenação
  • Suporte a vários tipos de propriedades:
    • Título, Texto rico, Número
    • Seleção, Seleção múltipla
    • Data, Caixa de seleção
    • E muito mais!

🚀 Primeiros Passos

Pré-requisitos

  • Node.js (v16 ou superior)
  • Chave da API do Notion
  • Cliente compatível com MCP (ex.: Claude Desktop)

Instalação

  1. Clone o repositório:
git clone https://github.com/v-3/notion-server.git
cd notion-server
  1. Instale as dependências:
npm install
  1. Configure seu ambiente:
# Create .env file
echo "NOTION_API_KEY=your_notion_api_key_here" > .env

# Or export directly
export NOTION_API_KEY=your_notion_api_key_here
  1. Compile o servidor:
npm run build

🔧 Configuração

Configuração do Claude Desktop

  1. Atualize sua configuração do Claude Desktop (claude_desktop_config.json):
{
    "mcpServers": {
        "notion": {
            "command": "node",
            "args": ["/absolute/path/to/notion-server/build/index.js"],
            "env": {
                "NOTION_API_KEY": "your_notion_api_key_here"
            }
        }
    }
}
  1. Reinicie o Claude Desktop para aplicar as alterações

🛠️ Ferramentas Disponíveis

Operações de Página

// Search pages
{
    query: string // Search query
}

// Read page
{
    pageId: string // ID of the page to read
}

// Create page
{
    title?: string,      // Page title
    content?: string,    // Page content in markdown
    parentPageId: string // Parent page ID
    properties?: object  // For database items
}

// Update page
{
    pageId: string,   // Page ID to update
    content: string,  // New content
    type?: string    // Content type
}

Operações de Banco de Dados

// Create database
{
    parentPageId: string,
    title: string,
    properties: object
}

// Query database
{
    databaseId: string,
    filter?: object,
    sort?: object
}

🔐 Configurando o Acesso ao Notion

Criando uma Integração

  1. Visite Integrações do Notion
  2. Clique em "Nova integração"
  3. Configure as permissões:
    • Conteúdo: Ler, Atualizar, Inserir
    • Comentários: Ler, Criar
    • Informações do usuário: Ler

Conectando Páginas

  1. Abra sua página no Notion
  2. Clique no menu "..." → "Conexões"
  3. Adicione sua integração
  4. Repita para outras páginas conforme necessário

📝 Exemplos de Uso

Criando uma Página

const result = await notion.create_page({
  parentPageId: "page_id",
  title: "My Page",
  content: "# Welcome\nThis is a test page."
});

Consultando um Banco de Dados

const result = await notion.query_database({
  databaseId: "db_id",
  filter: {
    property: "Status",
    select: {
      equals: "In Progress"
    }
  }
});

🤝 Contribuindo

Contribuições são bem-vindas! Por favor:

  1. Faça um fork do repositório
  2. Crie uma branch de funcionalidade
  3. Envie um Pull Request

📜 Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para mais detalhes.

🙏 Agradecimentos

Este projeto foi significativamente melhorado por sweir1/notion-server, que fez as seguintes atualizações:

  • Suporte aprimorado a markdown com mais tipos de blocos
  • Operações abrangentes de banco de dados
  • Tratamento de erros e depuração melhorados
  • Melhor tratamento de propriedades para itens de banco de dados
  • Formatação de saída de página mais limpa

Para usar a versão do sweir1, você pode clonar o repositório deles:

git clone https://github.com/sweir1/notion-server.git