Skip to main content

Installation

Install the ATP SDK using pip:
pip install AgentToolProtocol

Quick Start with ToolKitClient

The ToolKitClient lets you register Python functions as tools and serve them via WebSocket.

Step 1: Create a ToolKit

from atp_sdk.clients import ToolKitClient

# Initialize the client
client = ToolKitClient(
    api_key="YOUR_ATP_TOOLKIT_API_KEY",
    app_name="my_app"
)
Get your Toolkit API key from the ATP Dashboard.

Step 2: Register a Tool

Use the @register_tool decorator to expose a Python function as a tool:
@client.register_tool(
    function_name="hello_world",
    params=['name'],
    required_params=['name'],
    description="Returns a greeting.",
    auth_provider=None,
    auth_type=None,
    auth_with=None
)
def hello_world(**kwargs):
    name = kwargs.get('name', 'World')
    return {"message": f"Hello, {name}!"}

Step 3: Start the Client

Start the WebSocket client to begin listening for tool requests:
client.start()
The client will automatically reconnect if the connection is lost.

Complete Example

Here’s a complete example that registers a simple tool:
from atp_sdk.clients import ToolKitClient

# Initialize the client
client = ToolKitClient(
    api_key="YOUR_ATP_TOOLKIT_API_KEY",
    app_name="my_app"
)

# Register a tool
@client.register_tool(
    function_name="hello_world",
    params=['name'],
    required_params=['name'],
    description="Returns a greeting.",
    auth_provider=None,
    auth_type=None,
    auth_with=None
)
def hello_world(**kwargs):
    name = kwargs.get('name', 'World')
    return {"message": f"Hello, {name}!"}

# Start the client
client.start()

Tool with OAuth2 Authentication

Here’s an example of a tool that requires OAuth2 authentication (e.g., HubSpot):
import requests

@client.register_tool(
    function_name="get_contacts",
    params=[],
    required_params=[],
    description="Fetches contacts from HubSpot.",
    auth_provider="hubspot",
    auth_type="OAuth2",
    auth_with="access_token"
)
def get_contacts(**kwargs):
    access_token = kwargs.get('auth_token')
    url = "https://api.hubapi.com/crm/v3/objects/contacts"
    headers = {"Authorization": f"Bearer {access_token}"}
    response = requests.get(url, headers=headers)
    return response.json()
The ATP platform will automatically inject the auth_token into your function when a user has authenticated.

Next Steps