{
"mcpServers": {
"jupyter-server-mcp": {
"command": "<see-readme>",
"args": []
}
}
}No install config available. Check the server's README for setup instructions.
Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
An MCP interface/extension for Jupyter Server
Is it safe?
No package registry to scan.
No authentication — any process on your machine can connect.
BSD-3-Clause. View license →
Is it maintained?
Last commit 163 days ago. 11 stars.
Will it work with my client?
Transport: stdio. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
No automated test available for this server. Check the GitHub README for setup instructions.
No known vulnerabilities.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationHave you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Persistent memory using a knowledge graph
Privacy-first. MCP is the protocol for tool access. We're the virtualization layer for context.
Pre-build reality check. Scans GitHub, HN, npm, PyPI, Product Hunt — returns 0-100 signal.
Monitor browser logs directly from Cursor and other MCP compatible IDEs.
MCP Security Weekly
Get CVE alerts and security updates for Jupyter Server Mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A configurable MCP (Model Context Protocol) server extension for Jupyter Server that allows dynamic registration of Python functions as tools accessible to MCP clients from a running Jupyter Server.
https://github.com/user-attachments/assets/aa779b1c-a443-48d7-b3eb-13f27a4333b3
This extension provides a simplified, trait-based approach to exposing Jupyter functionality through the MCP protocol. It can dynamically load and register tools from various Python packages, making them available to AI assistants and other MCP clients.
module:function)pip install jupyter-server-mcp
Create a jupyter_config.py file:
c = get_config()
# Basic MCP server settings
c.MCPExtensionApp.mcp_name = "My Jupyter MCP Server"
c.MCPExtensionApp.mcp_port = 8080
# Register tools from existing packages
c.MCPExtensionApp.mcp_tools = [
# Standard library tools
"os:getcwd",
"json:dumps",
"time:time",
# Jupyter AI Tools - Notebook operations
"jupyter_ai_tools.toolkits.notebook:read_notebook",
"jupyter_ai_tools.toolkits.notebook:edit_cell",
# JupyterLab Commands Toolkit
"jupyterlab_commands_toolkit.tools:list_all_commands",
"jupyterlab_commands_toolkit.tools:execute_command",
]
jupyter lab --config=jupyter_config.py
The MCP server will start automatically on http://localhost:8080/mcp.
Claude Code Configuration:
Set the following configuration:
"mcpServers": {
"jupyter-mcp": {
"type": "http",
"url": "http://localhost:8085/mcp"
}
}
Or use the claude CLI:
claude mcp add --transport http jupyter-mcp http://localhost:8080/mcp
Gemini CLI Configuration:
Add the following to .gemini/settings.json:
{
"mcpServers": {
"jupyter-mcp": {
"httpUrl": "http://localhost:8080/mcp"
}
}
}
jupyter_server_mcp.mcp_server.MCPServer)A simplified LoggingConfigurable class that manages FastMCP integration:
from jupyter_server_mcp.mcp_server import MCPServer
# Create server
server = MCPServer(name="My Server", port=8080)
# Register functions
def my_tool(message: str) -> str:
return f"Hello, {message}!"
server.register_tool(my_tool)
# Start server
await server.start_server()
Key Methods:
register_tool(func, name=None, description=None) - Register a Python functionregister_tools(tools) - Register multiple functions (list or dict)list_tools() - Get list of registered toolsstart_server(host=None) - Start the HTTP MCP serverjupyter_server_mcp.extension.MCPExtensionApp)Jupyter Server extension that manages the MCP server lifecycle:
Configuration Traits:
mcp_name - Server name (default: "Jupyter MCP Server")mcp_port - Server port (default: 3001)mcp_tools - List of tools to register (format: "module:function")use_tool_discovery - Enable automatic tool discovery via entrypoints (default: True)Tools can be registered in two ways:
Specify tools directly in your Jupyter configuration using module:function format:
c.MCPExtensionApp.mcp_tools = [
"os:getcwd",
"jupyter_ai_tools.toolkits.notebook:read_notebook",
]
... [View full README on GitHub](https://github.com/jupyter-ai-contrib/jupyter-server-mcp#readme)