Notion

Integra com a API do Notion para gerenciar lista de tarefas pessoais

Documentação

Integração MCP do Notion

Um servidor simples de Model Context Protocol (MCP) que integra com a API do Notion para gerenciar minha lista de tarefas pessoal através do Claude. Esta é uma implementação básica adaptada especificamente para minha configuração minimalista de lista de tarefas no Notion.

Nota Importante

Este é um projeto pessoal projetado para um caso de uso muito específico: minha lista de tarefas simples do Notion que tem apenas três propriedades:

  • Tarefa (título)
  • Quando (seleção com apenas duas opções: "hoje" ou "depois")
  • Caixa de seleção (marca se concluído)

Example Notion Database

Embora você possa usar isso como ponto de partida para sua própria integração com o Notion, provavelmente precisará modificar o código para corresponder à estrutura e aos requisitos específicos do seu banco de dados.

Recursos

  • Adicionar novos itens de tarefa
  • Ver todas as tarefas
  • Ver as tarefas de hoje
  • Marcar uma tarefa como concluída

Pré-requisitos

  • Python 3.10 ou superior
  • Uma conta do Notion
  • Uma integração do Notion (chave de API)
  • Um banco de dados do Notion que corresponda exatamente à estrutura descrita acima (ou disposição para modificar o código para sua estrutura)

Configuração

  1. Clone o repositório:
git clone https://github.com/yourusername/notion-mcp.git
cd notion-mcp
  1. Configure o ambiente Python:
python -m venv .venv
source .venv/bin/activate  # On Windows use: .venv\Scripts\activate
uv pip install -e .
  1. Crie uma integração do Notion:

  2. Compartilhe seu banco de dados com a integração:

    • Abra seu banco de dados de tarefas no Notion
    • Clique no menu "..." → "Adicionar conexões"
    • Selecione sua integração
  3. Crie um arquivo .env:

NOTION_API_KEY=your-api-key-here
NOTION_DATABASE_ID=your-database-id-here
  1. Configure o Claude Desktop:
{
  "mcpServers": {
    "notion-todo": {
      "command": "/path/to/your/.venv/bin/python",
      "args": ["-m", "notion_mcp"],
      "cwd": "/path/to/notion-mcp"
    }
  }
}

Executando o Servidor

O servidor pode ser executado de duas maneiras:

  1. Diretamente da linha de comando:
# From the project directory with virtual environment activated
python -m notion_mcp
  1. Automaticamente através do Claude Desktop (recomendado):
  • O servidor iniciará quando o Claude for aberto se configurado corretamente em claude_desktop_config.json
  • Nenhum gerenciamento manual do servidor necessário
  • O servidor para quando o Claude é fechado

Nota: Quando executado diretamente, o servidor não mostrará nenhuma saída a menos que haja um erro - isso é normal, pois está aguardando comandos MCP.

Uso

Comandos básicos através do Claude:

  • "Mostre todas as minhas tarefas"
  • "O que está na minha lista para hoje?"
  • "Adicione uma tarefa para hoje: verificar e-mails"
  • "Adicione uma tarefa para depois: revisar projeto"

Limitações

  • Funciona apenas com uma estrutura específica de banco de dados do Notion
  • Sem suporte para esquemas de banco de dados complexos
  • Limitado ao agendamento de tarefas "hoje" ou "depois"
  • Sem suporte para propriedades adicionais ou campos personalizados
  • Tratamento básico de erros
  • Sem recursos avançados como tarefas recorrentes, prioridades ou tags

Personalização

Se você quiser usar isso com uma estrutura de banco de dados diferente, precisará modificar o arquivo server.py, particularmente:

  • A função create_todo() para corresponder às propriedades do seu banco de dados
  • A formatação de tarefas em call_tool() para lidar com sua estrutura de dados
  • O esquema de entrada em list_tools() se você quiser opções diferentes

Estrutura do Projeto

notion_mcp/
├── pyproject.toml
├── README.md
├── .env                   # Not included in repo
└── src/
    └── notion_mcp/
        ├── __init__.py
        ├── __main__.py
        └── server.py      # Main implementation

Licença

Licença MIT - Use por sua conta e risco

Agradecimentos

  • Construído para funcionar com o Claude Desktop
  • Usa a API do Notion