Jupythunder

Jupythunder

kbsooo

研究与数据
访问服务器

README

jupyhunder(jolteon)

한국어 설명

Jupythunder

Jupythunder is a middleware that connects the LLM chat interface (Claude) with Jupyter Notebook. This project allows users to interact with Jupyter Notebook in a way that's closer to natural language.

Key Features

  • Natural Language Code Conversion: LLM converts code written by users in a natural language style into correct Python code
  • Jupyter Remote Connection: Supports remote connections via user-provided Jupyter Notebook URL (with token)
  • Code Execution: Executes converted code in Jupyter Notebook and returns results
  • Code Questions: Query information about defined functions, variables, etc. via the /question command
  • State Management: Manages connection state and session information
  • Notebook File Management: Supports creating, opening, cell management and saving .ipynb files
  • Natural Language Data Analysis: Data analysis and visualization workflow through natural language requests
  • Cell Query and Execution: View specific cell contents, execute specific cells, execute all cells sequentially

Installation

Prerequisites

  • Python 3.10 or higher
  • Jupyter Notebook
  • Claude for Desktop (or another MCP client)

Installation Steps

  1. Clone the repository:

    git clone https://github.com/username/jupythunder.git
    cd jupythunder
    
  2. Install dependencies:

    pip install -r requirements.txt
    

Usage

1. Run Jupyter Notebook Server

Run the Jupyter Notebook server in a separate terminal:

jupyter notebook

Check the logs for the URL and token (e.g., http://localhost:8888/?token=abcdef1234567890).

2. Run MCP Server

python jupythunder_server.py

3. Configure Claude for Desktop

Add the MCP server to the claude_desktop_config.json file of Claude for Desktop:

{
  "mcpServers": {
    "jupythunder": {
      "command": "/absolute/path/python",
      "args": ["/absolute/path/jupythunder_server.py"]
    }
  }
}

Important: You must use the absolute path of Python and the script file.

4. Restart Claude for Desktop

Restart Claude for Desktop after changing the configuration.

5. Usage Examples

  1. Connect to Jupyter:

    Connect to Jupyter Notebook. URL is http://localhost:8888/tree?token=abcdef1234567890
    
  2. Create New Notebook:

    /notebook:data_analysis_notebook
    
  3. Open Existing Notebook:

    /open:data_analysis_notebook
    
  4. Natural Language Data Analysis Request:

    Generate random data
    
  5. Data Analysis and Visualization:

    Show statistical analysis results for the generated data
    
    Visualize the correlation between age and income on a graph
    
  6. Writing and Executing Code:

    def calculate_savings(income, expense):
        return income - expense
        
    df['savings'] = calculate_savings(df['income'], df['expenses'])
    df.head()
    
  7. Function Information Lookup:

    /question: What functions are currently defined?
    
  8. Notebook Content Lookup:

    What is the current notebook content?
    
  9. Specific Cell Lookup and Execution:

    Show the content of the first cell
    Execute the second cell
    
  10. Execute All Cells:

    Execute all cells in the notebook sequentially
    

Detailed Feature Description

Notebook Management Features

  • Create New Notebook: Create a new notebook with the /notebook:notebook_name command
  • Open Existing Notebook: Open an existing notebook with the /open:notebook_name command
  • View Notebook Content: Check the cell composition of the current notebook

Cell Management Features

  • View Cell Content: Check the code or markdown content of specific cells
  • Execute Specific Cell: Selectively execute desired cells
  • Execute All Cells: Execute all cells in the notebook sequentially
  • Add Markdown Cell: Natural language explanations are automatically added as markdown cells
  • Add Code Cell: Converted Python code is added as code cells
  • Save Execution Results: Code execution results are automatically saved in the notebook

Natural Language Data Analysis Features

  • Data Generation: Generate test data with natural language requests like "Generate random data"
  • Statistical Analysis: Perform data analysis with requests like "Show summary statistics for the data"
  • Data Visualization: Visualize with natural language requests like "Draw a graph of the age distribution"
  • Correlation Analysis: Analyze relationships with requests like "Analyze the correlation between variables"

Command List

Command Description Example
/notebook:name Create new notebook /notebook:data_analysis
/open:name Open existing notebook /open:test
/question:content Code-related question /question:function list
/help Display help /help

Troubleshooting

could not connect to MCP server jupythunder: spawn pythonENOENT

This error occurs when the Python executable file cannot be found. Resolve it with these methods:

  1. Use Python Absolute Path:

    {
      "mcpServers": {
        "jupythunder": {
          "command": "/absolute/path/python",
          "args": ["/absolute/path/jupythunder_server.py"]
        }
      }
    }
    

    You can find the Python absolute path with these commands:

    which python  # macOS/Linux
    where python  # Windows
    
  2. Use python3 Command:

    {
      "mcpServers": {
        "jupythunder": {
          "command": "python3",
          "args": ["/absolute/path/jupythunder_server.py"]
        }
      }
    }
    

Jupyter Connection Failure

  • Check if the Jupyter server is running
  • Verify that the provided URL and token are correct
  • Check firewall settings

Notebook Creation or Opening Failure

  • Check if you have write permissions to the Jupyter server
  • Make sure the notebook name does not contain special characters
  • Check if a notebook with the same name already exists

Cell Execution Issues

  • Check for syntax errors in the code
  • Verify that necessary variables or functions are defined in previous cells
  • Restart the server if execution results are not displayed in the notebook

Project Structure

jupythunder/
├── jupythunder_server.py  # Main server implementation
├── jupythunder_client.py  # Jupyter API client
├── tools.py               # MCP tool implement
├── utils.py               # Utility functions
└── requirements.txt       # Project dependencies

Key Components

  • FastMCP Server: MCP protocol handling
  • JupyterClient Class: Jupyter API interaction and notebook management
  • Tools: Tools for connection, execution, query, and notebook management
  • Command Handling: Special command parsing
  • State Management: Lifespan context management
  • Natural Language Processing: Converting natural language requests to Python code
  • Cell Management: Functions for viewing cell content, execution, and saving results

Future Improvements

  1. LLM Integration: Enhance natural language conversion capabilities using actual LLMs
  2. Data Visualization Extensions: Support for various visualization types
  3. Notebook Templates: Provide purpose-specific templates for data analysis, machine learning, etc.
  4. File Upload: Support for data file upload and automatic analysis
  5. Collaboration Features: Multi-user support and sharing features
  6. Interactive Widgets: Enhanced support for Jupyter widgets
  7. GPU Acceleration: GPU acceleration support for deep learning tasks

Dependencies

  • mcp[cli] >= 1.5.0: MCP protocol implementation
  • requests >= 2.31.0: HTTP request handling
  • websocket-client >= 1.6.0: WebSocket communication
  • python-dotenv >= 1.0.0: Environment variable management
  • urllib3 >= 2.0.0: HTTP client

License

MIT License


Jupythunder (한국어)

Jupythunder는 LLM 채팅 인터페이스(Claude)와 Jupyter Notebook을 연결해주는 미들웨어입니다. 이 프로젝트를 통해 사용자는 자연어에 가까운 방식으로 Jupyter Notebook과 상호작용할 수 있습니다.

주요 기능

  • 자연어 코드 변환: 사용자가 자연어에 가까운 방식으로 작성한 코드를 LLM이 올바른 Python 코드로 변환
  • Jupyter 원격 연결: 사용자가 제공한 Jupyter Notebook URL(토큰 포함)을 통해 원격 연결 지원
  • 코드 실행: 변환된 코드를 Jupyter Notebook에서 실행하고 결과 반환
  • 코드 질문: /question 명령어를 통해 정의된 함수, 변수 등의 정보 조회
  • 상태 관리: 연결 상태 및 세션 정보 관리
  • 노트북 파일 관리: .ipynb 파일 생성, 열기, 셀 관리 및 저장 기능 지원
  • 자연어 데이터 분석: 자연어 요청을 통한 데이터 분석 및 시각화 워크플로우
  • 셀 조회 및 실행: 특정 셀 내용 조회, 특정 셀 실행, 모든 셀 순차 실행 지원

설치 방법

사전 요구사항

  • Python 3.10 이상
  • Jupyter Notebook
  • Claude for Desktop (또는 다른 MCP 클라이언트)

설치 단계

  1. 저장소 복제:

    git clone https://github.com/username/jupythunder.git
    cd jupythunder
    
  2. 의존성 설치:

    pip install -r requirements.txt
    

사용 방법

1. Jupyter Notebook 서버 실행

별도의 터미널에서 Jupyter Notebook 서버를 실행합니다:

jupyter notebook

로그에서 URL과 토큰을 확인하세요 (예: http://localhost:8888/?token=abcdef1234567890).

2. MCP 서버 실행

python jupythunder_server.py

3. Claude for Desktop 설정

Claude for Desktop의 claude_desktop_config.json 파일에 MCP 서버를 추가합니다:

{
  "mcpServers": {
    "jupythunder": {
      "command": "/절대/경로/python",
      "args": ["/절대/경로/jupythunder_server.py"]
    }
  }
}

중요: Python과 스크립트 파일의 절대 경로를 사용해야 합니다.

4. Claude for Desktop 재시작

설정 변경 후 Claude for Desktop을 재시작합니다.

5. 사용 예시

  1. Jupyter에 연결:

    Jupyter Notebook에 연결해줘. URL은 http://localhost:8888/tree?token=abcdef1234567890
    
  2. 새 노트북 생성:

    /notebook:데이터분석_노트북
    
  3. 기존 노트북 열기:

    /open:데이터분석_노트북
    
  4. 자연어로 데이터 분석 요청:

    랜덤 데이터를 생성해줘
    
  5. 데이터 분석 및 시각화:

    생성된 데이터에 대한 통계 분석 결과를 보여줘
    
    나이와 수입의 상관관계를 그래프로 시각화해줘
    
  6. 코드 작성 및 실행:

    def calculate_savings(income, expense):
        return income - expense
        
    df['저축액'] = calculate_savings(df['수입'], df['지출'])
    df.head()
    
  7. 함수 정보 조회:

    /question: 지금 정의된 함수가 뭐가 있지?
    
  8. 노트북 내용 조회:

    현재 노트북의 내용이 어떻게 되어 있어?
    
  9. 특정 셀 조회 및 실행:

    첫번째 셀의 내용을 보여줘
    두번째 셀을 실행해줘
    
  10. 모든 셀 실행:

    노트북의 모든 셀을 순차적으로 실행해줘
    

주요 기능 상세 설명

노트북 관리 기능

  • 새 노트북 생성: /notebook:노트북이름 명령어로 새 노트북을 생성합니다.
  • 기존 노트북 열기: /open:노트북이름 명령어로 기존 노트북을 엽니다.
  • 노트북 내용 조회: 현재 작업 중인 노트북의 셀 구성을 확인할 수 있습니다.

셀 관리 기능

  • 셀 내용 조회: 특정 셀의 코드나 마크다운 내용을 확인할 수 있습니다.
  • 특정 셀 실행: 원하는 셀만 선택적으로 실행할 수 있습니다.
  • 모든 셀 실행: 노트북의 모든 셀을 순차적으로 실행할 수 있습니다.
  • 마크다운 셀 추가: 자연어 설명이 마크다운 셀로 자동 추가됩니다.
  • 코드 셀 추가: 변환된 Python 코드가 코드 셀로 추가됩니다.
  • 실행 결과 저장: 코드 실행 결과가 노트북에 자동으로 저장됩니다.

자연어 데이터 분석 기능

  • 데이터 생성: "랜덤 데이터 생성" 같은 자연어 요청으로 테스트 데이터를 생성합니다.
  • 통계 분석: "데이터 요약 통계 보여줘" 등의 요청으로 데이터 분석을 수행합니다.
  • 데이터 시각화: "나이 분포를 그래프로 그려줘"처럼 자연어 요청으로 시각화합니다.
  • 상관관계 분석: "변수 간 상관관계 분석해줘"와 같은 요청으로 관계를 분석합니다.

명령어 목록

명령어 설명 예시
/notebook:이름 새 노트북 생성 /notebook:데이터분석
/open:이름 기존 노트북 열기 /open:test
/question:내용 코드 관련 질문 /question:함수 목록
/help 도움말 표시 /help

문제 해결

could not connect to MCP server jupythunder: spawn pythonENOENT

이 오류는 Python 실행 파일을 찾지 못할 때 발생합니다. 다음 방법으로 해결하세요:

  1. Python 절대 경로 사용:

    {
      "mcpServers": {
        "jupythunder": {
          "command": "/절대/경로/python",
          "args": ["/절대/경로/jupythunder_server.py"]
        }
      }
    }
    

    Python 절대 경로는 다음 명령어로 확인할 수 있습니다:

    which python  # macOS/Linux
    where python  # Windows
    
  2. python3 명령어 사용:

    {
      "mcpServers": {
        "jupythunder": {
          "command": "python3",
          "args": ["/절대/경로/jupythunder_server.py"]
        }
      }
    }
    

Jupyter 연결 실패

  • Jupyter 서버가 실행 중인지 확인
  • 제공한 URL과 토큰이 올바른지 확인
  • 방화벽 설정 확인

노트북 생성 또는 열기 실패

  • Jupyter 서버에 쓰기 권한이 있는지 확인
  • 노트북 이름에 특수 문자가 포함되어 있지 않은지 확인
  • 이미 같은 이름의 노트북이 있는지 확인

셀 실행 관련 문제

  • 코드에 구문 오류가 없는지 확인
  • 이전 셀에서 필요한 변수나 함수가 정의되었는지 확인
  • 실행 결과가 노트북에 표시되지 않으면 서버를 재시작해보세요

프로젝트 구조

jupythunder/
├── jupythunder_server.py  # 메인 서버 구현
├── jupythunder_client.py  # Jupyter API 클라이언트 
├── tools.py               # MCP 도구 구현
├── utils.py               # 유틸리티 함수
└── requirements.txt       # 프로젝트 의존성

주요 구성 요소

  • FastMCP 서버: MCP 프로토콜 처리
  • JupyterClient 클래스: Jupyter API 상호작용 및 노트북 관리
  • 도구: 연결, 실행, 조회, 노트북 관리를 위한 도구
  • 명령어 처리: 특별 명령어 구문 분석
  • 상태 관리: 라이프스팬 컨텍스트 관리
  • 자연어 처리: 자연어 요청을 Python 코드로 변환
  • 셀 관리: 셀 내용 조회, 실행, 결과 저장 기능

향후 개선 사항

  1. LLM 통합: 실제 LLM을 이용한 자연어 변환 기능 강화
  2. 데이터 시각화 확장: 다양한 시각화 유형 지원
  3. 노트북 템플릿: 데이터 분석, 머신러닝 등 목적별 템플릿 제공
  4. 파일 업로드: 데이터 파일 업로드 및 자동 분석 기능
  5. 협업 기능: 다중 사용자 지원 및 공유 기능
  6. 인터랙티브 위젯: Jupyter 위젯 지원 강화
  7. GPU 가속: 딥러닝 작업을 위한 GPU 가속 지원

의존성

  • mcp[cli] >= 1.5.0: MCP 프로토콜 구현
  • requests >= 2.31.0: HTTP 요청 처리
  • websocket-client >= 1.6.0: WebSocket 통신
  • python-dotenv >= 1.0.0: 환경 변수 관리
  • urllib3 >= 2.0.0: HTTP 클라이언트

라이센스

MIT 라이센스

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python