arcade-mcp/libs/arcade-tdk
jottakka 7b2a54faa7
[READY][PROD-215][TDK] Adding Slack error adaptor (#577)
# [PROD-215](https://app.clickup.com/t/9014390315/PROD-215) 🎫 

Added:
- SlackErrorAdapter for tools using Slack oauth provider.

---------

Co-authored-by: Francisco Liberal <francisco@arcade.dev>
2025-09-24 17:26:37 -03:00
..
arcade_tdk [READY][PROD-215][TDK] Adding Slack error adaptor (#577) 2025-09-24 17:26:37 -03:00
pyproject.toml [READY][PROD-215][TDK] Adding Slack error adaptor (#577) 2025-09-24 17:26:37 -03: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.