Jupyter MCP Server

# Copyright (c) 2023-2024 Datalayer, Inc. # # BSD 3-Clause License [build-system] requires = ["hatchling~=1.21"] build-backend = "hatchling.build" [project] name = "jupyter_mcp_server" authors = [{ name = "Datalayer", email = "info@datalayer.io" }] dynamic = ["version"] readme = "README.md" requires-python = ">=3.10" keywords = ["Jupyter"] classifiers = [ "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 3", ] dependencies = [ "jupyter-kernel-client>=0.5.1", "jupyter-nbmodel-client==0.6.0", "mcp[cli]>=1.2.1", "rich" ] [project.optional-dependencies] test = ["ipykernel", "jupyter_server>=1.6,<3", "pytest>=7.0"] lint = ["mdformat>0.7", "mdformat-gfm>=0.3.5", "ruff"] typing = ["mypy>=0.990"] [project.license] file = "LICENSE" [project.urls] Home = "https://github.com/datalayer/jupyter-mcp-server" [tool.hatch.version] path = "jupyter_mcp_server/__version__.py" [tool.pytest.ini_options] filterwarnings = [ "error", "ignore:There is no current event loop:DeprecationWarning", "module:make_current is deprecated:DeprecationWarning", "module:clear_current is deprecated:DeprecationWarning", "module:Jupyter is migrating its paths to use standard platformdirs:DeprecationWarning", ] [tool.mypy] check_untyped_defs = true disallow_incomplete_defs = true no_implicit_optional = true pretty = true show_error_context = true show_error_codes = true strict_equality = true warn_unused_configs = true warn_unused_ignores = true warn_redundant_casts = true [tool.ruff] target-version = "py39" line-length = 100 [tool.ruff.lint] select = [ "A", "B", "C", "E", "F", "FBT", "I", "N", "Q", "RUF", "S", "T", "UP", "W", "YTT", ] ignore = [ # FBT001 Boolean positional arg in function definition "FBT001", "FBT002", "FBT003", ] [tool.ruff.lint.per-file-ignores] # S101 Use of `assert` detected "jupyter_mcp_server/tests/*" = ["S101"]