ToolTrust
C25/100
datalayer

jupyter-mcp-server

mcp2.1.12

@datalayer

๐Ÿช ๐Ÿ”ง Model Context Protocol (MCP) Server for Jupyter.

By datalayer | 47 findings | Scanned 9/11/2026 | tooltrust-scanner/v0.3.19 | 1.3k

2 Critical1 High6 Low38 Info

Risk Summary

Needs Approval

Dep Visibility plus Excessive Permissions raises enough risk that this tool should not be auto-trusted.

Potential impact: This finding indicates the tool should be reviewed before it is trusted.

Recommended action: Keep this tool behind manual approval and avoid unattended runs until the risky capabilities are narrowed or removed.

Suggested policy: keep this tool behind manual approval, do not allow unattended runs, and re-scan after narrowing risky permissions.

Security Findings (47)

  • CriticalAS-006

    ๐Ÿ’ปArbitrary Code Execution ร—2

    heuristic signal

    tool name or description implies arbitrary script/code execution (evaluate_script, execute javascript, etc.)

    execute_codeinsert_execute_code_cell

    Fix: This tool can execute arbitrary code or shell commands on the host system. Remove it unless strictly required. If kept: (1) restrict access to trusted users/agents only, (2) require human approval before each invocation (Claude Desktop: set approval_required: true; other clients: enable equivalent confirmation), (3) use the most restrictive sandbox or read-only mode available, and (4) never expose this tool to untrusted input sources.

  • HighAS-003

    ๐Ÿ”€Scope Mismatch

    read_notebook:tool name "read_notebook" implies read-only operation but declares exec permission

    Fix: Ensure tool names, descriptions, and permission declarations are internally consistent. Use explicit naming conventions that fully reflect actual capabilities.

  • LowAS-011

    โ„น๏ธMissing Rate-Limit / Timeout ร—5

    tool performs network or execution operations but declares no rate-limit, timeout, or retry configuration

    clear_cell_outputconnect_to_jupyterread_notebookrestart_notebookuse_sandbox

    Fix: Declare explicit rate-limit, timeout, and retry configuration for all network and execution tools. Implement exponential back-off and surface resource state to the calling agent.

  • LowAS-002

    โš ๏ธExcessive Permissions

    launch_sandbox:input schema exposes 12 properties (threshold: 10)

    Fix: Tool requests broad permissions (exec/fs/network). Validate input parameters using Enums where possible, and restrict file system operations to explicit allowed directories.

  • InfoAS-002

    โš ๏ธExcessive Permissions ร—13

    declared capabilities: code/command execution

    clear_cell_outputexecute_cellexecute_codeinsert_execute_code_cellread_notebookuse_sandbox

    declared capabilities: network access, filesystem access, HTTP requests

    connect_to_jupyter

    declared capabilities: filesystem access

    delete_celllist_filesoverwrite_cell_sourceuse_notebook

    declared capabilities: code/command execution, network access, environment variables

    launch_sandbox

    declared capabilities: HTTP requests

    restart_notebook

    Fix: Tool requests broad permissions (exec/fs/network). Validate input parameters using Enums where possible, and restrict file system operations to explicit allowed directories.

  • InfoAS-014

    โ„น๏ธDependency Inventory Unavailable ร—22

    Tool did not expose metadata.dependencies or repo_url, so supply-chain coverage is limited.

    clear_cell_outputconnect_to_jupyterdelete_celledit_cell_sourceexecute_cellexecute_codeinsert_cellinsert_execute_code_celllaunch_sandboxlist_fileslist_kernelslist_notebookslist_sandboxesmove_celloverwrite_cell_sourceread_cellread_notebookrestart_notebookterminate_sandboxunuse_notebookuse_notebookuse_sandbox

    Fix: Review and remediate the identified issue.

  • InfoAS-010

    ๐Ÿ”‘Insecure Secret Handling ร—3

    input parameter "jupyter_token" accepts a credential (informational; not evidence of insecure handling)

    connect_to_jupyter

    input parameter "proxy_token" accepts a credential (informational; not evidence of insecure handling)

    launch_sandbox

    input parameter "token" accepts a credential (informational; not evidence of insecure handling)

    launch_sandbox

    Fix: Avoid accepting raw credentials as input parameters. Use secret managers (e.g. 1Password CLI, AWS Secrets Manager) and ensure credentials are never logged or stored in agent traces.

Scan this tool yourself

Reproduce this audit locally, integrate into CI, or let your agent audit its own tools.

Install once, then scan any MCP server:

$ curl -sfL https://raw.githubusercontent.com/AgentSafe-AI/tooltrust-scanner/main/install.sh | bash
$ tooltrust-scanner scan --server "npx -y jupyter-mcp-server"

Adjust the package name if your npm registry name differs from the tool ID. View source

Add badge to your README

Copy this Markdown to show your ToolTrust grade on GitHub.

[![ToolTrust Grade C](https://raw.githubusercontent.com/AgentSafe-AI/tooltrust-directory/main/docs/badges/grade-c.svg)](https://github.com/AgentSafe-AI/tooltrust-directory)