Notion MCP Server
Um servidor MCP para interagir com seu espaço de trabalho Notion, permitindo que LLMs gerenciem páginas e bancos de dados.
Documentação
Servidor MCP do Notion
Um servidor Model Context Protocol para integração com o Notion, permitindo que o Claude e outros LLMs interajam com seu espaço de trabalho no Notion.
Recursos
- Pesquisar no Notion: Pesquise em todo o seu espaço de trabalho do Notion
- Obter Página: Recupere o conteúdo de uma página específica do Notion
- Criar Página: Crie novas páginas no seu espaço de trabalho do Notion
- Atualizar Página: Atualize páginas existentes com novos conteúdos ou títulos
- Criar Banco de Dados: Crie novos bancos de dados com propriedades personalizadas
- Consultar Banco de Dados: Consulte bancos de dados com filtros e ordenação
- Atualizar Entrada do Banco de Dados: Atualize propriedades de entradas do banco de dados
- Criar Linha no Banco de Dados: Adicione novas linhas a bancos de dados existentes com propriedades personalizadas
Configuração
-
Clone este repositório
-
Instale as dependências
npm install -
Configure sua chave de API do Notion
- Crie uma integração no portal de desenvolvedores do Notion
- Copie sua chave de API
- Você pode:
- Editar o arquivo
.enve substituiryour_notion_api_key_herepela sua chave de API real, ou - Passá-la diretamente na configuração do Claude for Desktop (recomendado, veja abaixo)
- Editar o arquivo
-
Compile o servidor
npm run build -
Execute o servidor
npm start
Configuração com Claude for Desktop
-
Instale o Claude for Desktop (se ainda não estiver instalado)
-
Abra a configuração do aplicativo Claude for Desktop:
- No macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Crie o arquivo se ele não existir
- No macOS:
-
Adicione o servidor do Notion à sua configuração:
{ "mcpServers": { "notion": { "command": "node", "args": [ "/Users/shaheerahmad/Documents/notion-mcp-server/dist/index.js", "--notion-api-key=YOUR_ACTUAL_API_KEY_HERE" ] } } }Substitua:
/Users/shaheerahmad/Documents/notion-mcp-serverpelo caminho completo do diretório do seu projetoYOUR_ACTUAL_API_KEY_HEREpela sua chave de API real do Notion
-
Reinicie o Claude for Desktop
Usando o Servidor
Depois de conectado ao Claude for Desktop, você pode usar o servidor fazendo perguntas ao Claude como:
- "Pesquise por notas de reunião no meu espaço de trabalho do Notion"
- "Obtenha o conteúdo da minha página de planejamento de projeto" (você precisará do ID da página)
- "Crie uma nova página no Notion com uma lista de tarefas"
- "Atualize minha página do Notion com ID 1aaada269d1b8003adceda69cf7bcd97 com o conteúdo 'Aqui está um novo conteúdo para adicionar à página.'"
- "Crie um novo banco de dados na minha página do Notion com ID 1aaada269d1b8003adceda69cf7bcd97"
- "Consulte meu banco de dados do Notion com ID 1aaada269d1b8003adceda69cf7bcd97 para itens com status 'Concluído'"
O Claude usará automaticamente as ferramentas apropriadas com base na sua solicitação.
Exemplos de Uso das Ferramentas
Pesquisar no Notion
Search for "meeting notes" in my Notion workspace
Obter Conteúdo da Página
Get the content of my Notion page with ID 1aaada269d1b8003adceda69cf7bcd97
Criar uma Nova Página
Create a new page in Notion with title "Weekly Report" and content "This week we accomplished the following tasks..."
Atualizar uma Página Existente
Update my Notion page with ID 1aaada269d1b8003adceda69cf7bcd97 with content "Adding this new information to the page."
Você também pode atualizar o título:
Update my Notion page with ID 1aaada269d1b8003adceda69cf7bcd97 with title "New Title" and content "New content to add."
Criar um Novo Banco de Dados
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 um Banco de Dados
Query my Notion database with ID 1aaada269d1b8003adceda69cf7bcd97 with filter {
"property": "Status",
"select": {
"equals": "Completed"
}
}
Você também pode adicionar ordenação:
Query my Notion database with ID 1aaada269d1b8003adceda69cf7bcd97 with sort {
"property": "Due Date",
"direction": "ascending"
}
Atualizar Entrada do Banco de Dados
Atualize propriedades de uma entrada existente do banco de dados (página dentro de um banco de dados).
{
"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"
}
}
}
}
}
O parâmetro properties deve corresponder à estrutura esperada pela API do Notion para os tipos específicos de propriedade no seu banco de dados. Diferentes tipos de propriedade (texto, seleção, data, etc.) exigem formatos diferentes.
Criar Linha no Banco de Dados
Adicione uma nova linha a um banco de dados existente com propriedades 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"
}
}
]
}
}
}
}
O parâmetro properties deve incluir todas as propriedades obrigatórias para o banco de dados e seguir a estrutura da API do Notion para cada tipo de propriedade.
Solução de Problemas
-
Se as ferramentas não aparecerem, verifique os logs do Claude for Desktop:
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log -
Certifique-se de que sua chave de API do Notion esteja configurada corretamente e que sua integração tenha recebido acesso às páginas com as quais você deseja interagir.
-
Se você vir erros de "Unexpected token" nos logs, é provável que declarações console.log estejam interferindo no protocolo MCP. Esta versão do servidor foi atualizada para evitar esses problemas.
Melhorias Futuras
- Adicionar recursos de consulta a bancos de dados
- Implementar melhor formatação de conteúdo
- Adicionar suporte para mais tipos de blocos