arcade-mcp/libs/arcade-tdk
Eric Gustin 86cde2d9bd
Add PyPI release workflow (#429)
This is the first of a few PRs. Deploy to staging will fail until we
have `arcade-core`, `arcade-serve`, and `arcade-ai` released to PyPI.
This PR will release `arcade-core` to PyPI.


### PR Description
* Adds workflow that checks for changes in any pyproject.toml, and if
its version has changed, then tests, builds wheel, then publishes to
PyPI
* Updates the Dockerfile for our new structure
* Updates porter yamls
* Updates `make full-dist`
* Removes a couple unused workflows

Check out https://github.com/ArcadeAI/arcade-ai/actions/runs/15622059209
to see how the new workflow works (note that it failed publishing to
PyPI on purpose)
2025-06-13 11:22:31 -07:00
..
arcade_tdk 🏗️ Restructure: Multi-Package Architecture + uv Migration (#412) 2025-06-11 16:48:17 -07:00
pyproject.toml Add PyPI release workflow (#429) 2025-06-13 11:22:31 -07:00
README.md 🏗️ Restructure: Multi-Package Architecture + uv Migration (#412) 2025-06-11 16:48:17 -07:00

Arcade TDK (Toolkit Development Kit)

Toolkit Development Kit for building and testing Arcade tools.

Overview

Arcade TDK provides the essential tools and utilities for building Arcade tools:

  • Tool Decorator: Simple @tool decorator for creating Arcade tools
  • Authentication: Auth providers and helpers for tool security
  • Annotations: Type annotations and parameter validation
  • Core Integration: Seamless integration with arcade-core components

Installation

pip install arcade-tdk

Usage

from typing import Annotated

from arcade_tdk import tool

@tool
def hello_world(name: Annotated[str, "The name of the person to greet"]) -> str:
    """Say hello to someone."""
    return f"Hello, {name}!"

# The tool is automatically registered and available for use

Advanced Usage

from typing import Annotated

from arcade_tdk import tool, ToolCatalog, Toolkit

# Create tools with more complex parameters
@tool
def calculate_sum(numbers: Annotated[list[float], "The numbers to sum"]) -> float:
    """Calculate the sum of a list of numbers."""
    return sum(numbers)

# Access the tool catalog
catalog = ToolCatalog()
tools = catalog.get_all_tools()

# Work with toolkits
toolkit = Toolkit.from_directory("my_toolkit")

License

MIT License - see LICENSE file for details.