Jupyter Notebook MCP Server

Interaja com notebooks Jupyter, permitindo execução de código, manipulação de células e gerenciamento de notebooks.

Documentação

Servidor MCP de Jupyter Notebook

Um servidor FastMCP que fornece ferramentas para interagir com Jupyter notebooks. Construído usando o framework FastMCP.

Recursos

  • ✅ Ler células de notebooks com filtragem
  • ✅ Adicionar novas células em qualquer posição
  • ✅ Executar células individuais
  • ✅ Executar notebooks inteiros
  • ✅ Obter metadados e estatísticas do notebook
  • ✅ Tratamento adequado de erros e validação
  • ✅ Relatório de progresso para operações longas
  • ✅ Registro abrangente via Contexto FastMCP

Integração com seu Cliente MCP

Certifique-se de que o uv esteja instalado. Para usar este servidor com cursor, claude desktop ou qualquer outro cliente MCP, adicione o seguinte ao seu arquivo de configuração mcp:

{
  "mcpServers": {
    "jupyter-notebook": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "fastmcp>=2.8.1",
        "python",
        "<absolute_path_to_jupyter_mcp_server>/main.py"
      ]
    }
  }
}

Testes

Execute o cliente de teste para ver toda a funcionalidade em ação:

python test_client.py

Notas de Segurança

  • A execução de células executa código Python diretamente via subprocesso
  • Execute apenas notebooks de fontes confiáveis
  • Considere executar em um ambiente isolado para uso em produção
  • Os controles de tempo limite ajudam a prevenir execuções descontroladas

Dependências

  • fastmcp - framework do servidor MCP

Ferramentas

Este servidor MCP fornece as seguintes ferramentas para trabalhar com Jupyter notebooks:

📖 read_notebook_cells

Ler células de um Jupyter notebook com filtragem opcional por tipo de célula.

Parâmetros:

  • notebook_path (str): Caminho para o arquivo .ipynb
  • cell_type (str opcional): Filtrar por tipo de célula ('code', 'markdown', 'raw')

➕ add_cell_to_notebook

Adicionar uma nova célula a um Jupyter notebook em uma posição especificada.

Parâmetros:

  • notebook_path (str): Caminho para o arquivo .ipynb
  • cell_content (str): Conteúdo da nova célula
  • cell_type (str, padrão="code"): Tipo de célula ('code', 'markdown', 'raw')
  • position (int opcional): Posição para inserir a célula (padrão: anexar ao final)
  • metadata (dict opcional): Metadados opcionais da célula

⚡ execute_notebook_cell

Executar uma célula específica em um Jupyter notebook.

Parâmetros:

  • notebook_path (str): Caminho para o arquivo .ipynb
  • cell_index (int): Índice da célula a ser executada (baseado em 0)
  • kernel_name (str, padrão="python3"): Kernel Jupyter a ser usado
  • timeout (int, padrão=30): Tempo limite de execução em segundos

🔄 execute_entire_notebook

Executar todas as células de código em um Jupyter notebook sequencialmente.

Parâmetros:

  • notebook_path (str): Caminho para o arquivo .ipynb
  • kernel_name (str, padrão="python3"): Kernel Jupyter a ser usado
  • timeout_per_cell (int, padrão=30): Tempo limite por célula em segundos
  • stop_on_error (bool, padrão=True): Se deve parar a execução se uma célula falhar

📊 get_notebook_info

Obter informações básicas sobre um Jupyter notebook.

Parâmetros:

  • notebook_path (str): Caminho para o arquivo .ipynb