arcade-mcp/libs/arcade-tdk
Eric Gustin c205bda092
Release libs for arcade-mcp (#598)
Seeing that arcade-ai==2.2.3 doesn't allow for core, serve, or tdk
versions 3.x.x and that it doesn't know about arcade-mcp-server or
arcade-mcp, I feel confident that we can get this past the release
candidate stage. The current state of our documentation
(docs.arcade.dev) still references the 'old way' of doing things, so we
can gradually introduce these new packages to users without the hassle
of specifying pre release flags when installing

### New packages:
arcade-mcp==1.0.0
arcade-mcp-server==1.0.0

### Breaking change with major bump:
arcade-core==3.0.0 from 2.4.0
arcade-serve==3.0.0 from 2.1.0
arcade-tdk==3.0.0 from 2.5.0

### Deprecated:
arcade-ai==2.2.3
2025-10-03 12:11:25 -07:00
..
arcade_tdk [READY][PROD-215][TDK] Adding Slack error adaptor (#577) 2025-09-24 17:26:37 -03:00
pyproject.toml Release libs for arcade-mcp (#598) 2025-10-03 12:11:25 -07:00
README.md PyPI release arcade-serve and arcade-tdk (#432) 2025-06-13 13:06:11 -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
from arcade_tdk.auth import Reddit

# Create tools with auth requirement
@tool(requires_auth=Reddit(scopes=["read"]))
def get_posts_in_subreddit(
    subreddit: Annotated[str, "The name of the subreddit"],
    limit: Annotated[int, "The number of posts to return]
) -> dict:
    """Get posts from a specific subreddit"""
    # TODO: Implement your Reddit tool
    return {}

License

MIT License - see LICENSE file for details.