Skip to main content

🧠 jupyter-server-ai-tools

CI

A Jupyter Server extension for discovering and aggregating callable tools from other extensions.

This project provides a structured way for extensions to declare tools using Tool objects, and for agents or other consumers to retrieve those tools.


✨ Features

  • ✅ Simple, declarative Toolkit API for registering callable tools
  • ✅ Toolkit registration with unique names
  • ✅ Retrieve toolkits by name and capabilities
  • ✅ Clean separation between tool metadata and callable execution
  • ✅ Optional tool capability filtering (read, write, execute, delete)

📦 Install

pip install jupyter_server_ai_tools

To install for development:

git clone https://github.com/Abigayle-Mercer/jupyter-server-ai-tools.git
cd jupyter-server-ai-tools
pip install -e ".[lint,test]"

Usage

Expose tools in your own extensions:

from jupyter_server_ai_tools.models import Tool, Toolkit

def greet(name: str):
    """Say hello to someone."""
    return f"Hello, {name}!"
For configurable extension apps
class MyExtensionApp(ExtensionApp)

    # Get the tookit registry from settings
    @property
    def toolkit_registry(self):
        return self.settings["toolkit_registry"]

    async def _start_jupyter_server_extension(self):
        # Create a tool
        greet_tool = Tool(callable=greet, read=True)
        
        # Create a toolkit
        greeting_toolkit = Toolkit(name="GreetingToolkit")
        greeting_toolkit.add_tool(greet_tool)
        
        # Register the toolkit
        self.toolkit_registry.register_toolkit(greeting_toolkit)
For basic extensions
async def _start_jupyter_server_extension(serverapp):
    toolkit_registry = serverapp.web_app.settings["toolkit_registry"]
    
    # Create a tool
    greet_tool = Tool(callable=greet, read=True)
    
    # Create a toolkit
    greeting_toolkit = Toolkit(name="GreetingToolkit")
    greeting_toolkit.add_tool(greet_tool)
    
    # Register the toolkit
    self.toolkit_registry.register_toolkit(greeting_toolkit)

Retrieve Toolkits:

# Get a specific toolkit
greeting_toolkit = registry.get_toolkit("GreetingToolkit")

# Get toolkit with specific tool capabilities
read_toolkits = registry.get_toolkit("GreetingToolkit", read=True)

🧪 Running Tests

pip install -e ".[test]"
pytest

🧼 Linting and Formatting

pip install -e ".[lint]"
bash .github/workflows/lint.sh

Impact

This system enables:

  • Extension authors to register tools with minimal effort
  • Flexible tool discovery and retrieval
  • Capability-based tool filtering

🧹 Uninstall

pip uninstall jupyter_server_ai_tools

Release files for jupyter_server_ai_tools 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jupyter_server_ai_tools 0.2.0
File Size Uploaded
jupyter_server_ai_tools-0.2.0.tar.gz 10.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jupyter_server_ai_tools 0.2.0
File Interpreter ABI Platform
jupyter_server_ai_tools-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.9 kB

Release files / jupyter_server_ai_tools-0.2.0.tar.gz

Download URL jupyter_server_ai_tools-0.2.0.tar.gz
Size 10.6 kB
Tags Source
SHA-256 checksum
How to use checksums
27009274de29a8e5e27407c47e456d91a3a4f5fbbf77467732c58438b5ecb052
BLAKE2b-256 checksum
How to use checksums
07bfedb5f0ac27e95915a7d613476753b94503ca4f9d1fb2942bd49f177f5b6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.28.1

Release files / jupyter_server_ai_tools-0.2.0-py3-none-any.whl

Download URL jupyter_server_ai_tools-0.2.0-py3-none-any.whl
Size 7.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c16229c11be19dd91a819408fb5c5520ce8f4594e362dacf17f107fa0a100528
BLAKE2b-256 checksum
How to use checksums
ccb633555d5eaab69e7d7e641ed8d451f229b67dc98890e03f5516401562eaba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.28.1

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page