Skip to main content

No project description provided

Project description

🧠 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyter_server_ai_tools-0.2.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

jupyter_server_ai_tools-0.2.0-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file jupyter_server_ai_tools-0.2.0.tar.gz.

File metadata

File hashes

Hashes for jupyter_server_ai_tools-0.2.0.tar.gz
Algorithm Hash digest
SHA256 27009274de29a8e5e27407c47e456d91a3a4f5fbbf77467732c58438b5ecb052
MD5 2dba290f12306294b1d2fad0287d15b8
BLAKE2b-256 07bfedb5f0ac27e95915a7d613476753b94503ca4f9d1fb2942bd49f177f5b6d

See more details on using hashes here.

File details

Details for the file jupyter_server_ai_tools-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyter_server_ai_tools-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c16229c11be19dd91a819408fb5c5520ce8f4594e362dacf17f107fa0a100528
MD5 c700859500043ddccaa2494afd96be15
BLAKE2b-256 ccb633555d5eaab69e7d7e641ed8d451f229b67dc98890e03f5516401562eaba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page