MCP Server Framework and Tool Development library for building custom capabilities into agents.
Find a file
Sam Partee e188fc6ae9
Improve Typedict and Basemodel support (#523)
Improve Pydantic and Typedict support and add a bunch of tets.

1. Fixed the test failure where TypeDict was being serialized as a list
of tuples instead of a dict by:
- Adding proper handling for BaseModel instances in the output.py file
- Converting BaseModel results (from TypeDict conversion) to dicts using
model_dump()
    - Handling lists containing BaseModel objects
2. Fixed None handling to ensure None results are converted to empty
strings as expected
3. Updated the schema.py to allow dict and list types in
ToolCallOutput.value
  4. new tests
    - TypeDict output execution tests
    - Output factory tests
    - Executor tests with TypeDict support
    - Schema validation tests

  The key changes were:
- In ``arcade_core/output.py``: Added BaseModel conversion logic in the
success method
- In ``arcade_core/schema.py``: Changed ToolCallOutput.value type from
list[str] to list to support complex types


TODO
- [ ] Confirm engine compatibility without changes made to engine

---------

Co-authored-by: Eric Gustin <eric@arcade.dev>
2025-08-27 16:50:09 -07:00
.github Clickhouse Toolkit (#527) 2025-08-05 14:05:09 -07:00
.vscode 🏗️ Restructure: Multi-Package Architecture + uv Migration (#412) 2025-06-11 16:48:17 -07:00
contrib Common changes in all toolkits (#345) 2025-04-04 09:32:37 -07:00
docker Fix setuptools install (#508) 2025-07-22 17:38:40 -07:00
examples Fix vulnerability (#536) 2025-08-19 14:47:24 -03:00
libs Improve Typedict and Basemodel support (#523) 2025-08-27 16:50:09 -07:00
schemas/preview Tool Metadata (#357) 2025-04-16 19:17:36 -08:00
toolkits Clickhouse Toolkit (#527) 2025-08-05 14:05:09 -07:00
.editorconfig Fix ruff (#64) 2024-09-25 09:47:30 -07:00
.gitignore Remove toml (#210) 2025-01-17 09:56:43 -08:00
.pre-commit-config.yaml 🏗️ Restructure: Multi-Package Architecture + uv Migration (#412) 2025-06-11 16:48:17 -07:00
.prettierignore Fix ruff (#64) 2024-09-25 09:47:30 -07:00
.prettierrc.toml Fix ruff (#64) 2024-09-25 09:47:30 -07:00
.ruff.toml 🏗️ Restructure: Multi-Package Architecture + uv Migration (#412) 2025-06-11 16:48:17 -07:00
CONTRIBUTING.md 🏗️ Restructure: Multi-Package Architecture + uv Migration (#412) 2025-06-11 16:48:17 -07:00
cspell.config.yaml Replace arcade.client with arcadepy (#119) 2024-10-23 15:29:02 -07:00
LICENSE Update README and LICENSE (#220) 2025-01-23 19:43:48 -08:00
Makefile Update release containers GH Action (#439) 2025-06-17 10:21:08 -07:00
pyproject.toml Fix venv files not being found (#525) 2025-08-01 12:12:35 -07:00
README.md Update README.md (#450) 2025-06-17 18:02:45 -07:00
worker.toml Worker Deploy (#278) 2025-03-13 09:02:36 -07:00

DocumentationToolsQuickstartContact Us

Arcade AI Platform

Arcade is a developer platform that lets you build, deploy, and manage tools for AI agents.

This repository contains the core Arcade libraries, organized as separate packages for maximum flexibility and modularity:

  • arcade-core - Core platform functionality and schemas | Source code | pip install arcade-core |
  • arcade-tdk - Tool Development Kit with the @tool decorator | Source code | pip install arcade-tdk |
  • arcade-serve - Serving infrastructure for workers and MCP servers | Source code | pip install arcade-serve |
  • arcade-evals - Evaluation framework for testing tool performance | Source code | pip install 'arcade-ai[evals] |
  • arcade-cli - Command-line interface for the Arcade platform | Source code | pip install arcade-ai |

diagram

To learn more about Arcade.dev, check out our documentation.

Pst. hey, you, give us a star if you like it!

GitHub stars

Quick Start

Installation

For development, install all packages with dependencies using uv workspace:

# Install all packages and dev dependencies
uv sync --extra all --dev

# Or use the Makefile (includes pre-commit hooks)
make install

For production use, install individual packages as needed:

pip install arcade-ai          # CLI
pip install 'arcade-ai[evals]' # CLI + Evaluation framework
pip install 'arcade-ai[all]'   # CLI + Serving infra + eval framework + TDK
pip install arcade_serve       # Serving infrastructure
pip install arcade-tdk         # Tool Development Kit

Development

Use the Makefile for standard tasks:

# Run tests
make test

# Run linting and type checking
make check

# Build all packages
make build

# See all available commands
make help

Client Libraries

Support and Community