No project description provided
Project description
🧠 jupyter-server-ai-tools
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
Built Distribution
File details
Details for the file jupyter_server_ai_tools-0.2.0.tar.gz
.
File metadata
- Download URL: jupyter_server_ai_tools-0.2.0.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
27009274de29a8e5e27407c47e456d91a3a4f5fbbf77467732c58438b5ecb052
|
|
MD5 |
2dba290f12306294b1d2fad0287d15b8
|
|
BLAKE2b-256 |
07bfedb5f0ac27e95915a7d613476753b94503ca4f9d1fb2942bd49f177f5b6d
|
File details
Details for the file jupyter_server_ai_tools-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: jupyter_server_ai_tools-0.2.0-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
c16229c11be19dd91a819408fb5c5520ce8f4594e362dacf17f107fa0a100528
|
|
MD5 |
c700859500043ddccaa2494afd96be15
|
|
BLAKE2b-256 |
ccb633555d5eaab69e7d7e641ed8d451f229b67dc98890e03f5516401562eaba
|