<!-- CURSOR_SUMMARY --> > [!NOTE] > Bumps versions across core libs and MCP packages, updates dependency constraints accordingly, and refreshes CLI template defaults to the new minimums. > > - **Versions**: > - `arcade-core` → `3.4.0` > - `arcade-serve` → `3.1.5` > - `arcade-tdk` → `3.2.2` > - `arcade-mcp-server` → `1.11.1` > - Root `arcade-mcp` → `1.5.8` > - **Dependency constraints**: > - Raise minimums to `arcade-core>=3.4.0`, `arcade-serve>=3.1.5`, `arcade-tdk>=3.2.2`, `arcade-mcp-server>=1.11.1` across affected `pyproject.toml` files. > - **CLI** (`libs/arcade-cli/arcade_cli/new.py`): > - Update template minimums for `arcade-mcp` (`1.5.8`), `arcade-tdk` (`3.2.2`), `arcade-serve` (`3.1.5`), and `arcade-mcp-server` (`1.11.1`). > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit b1b43e4d04810b0b49d4de6c943c23e69c99aad4. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> |
||
|---|---|---|
| .. | ||
| arcade_tdk | ||
| pyproject.toml | ||
| README.md | ||
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
@tooldecorator 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.