AgentToolStore / client /README.md
ToolStore Agent
Revamp READMEs: position as universal meta-tool (pip for AI agents)
f86956c
|
Raw
History Blame Contribute Delete
3.21 kB

ToolStore CLI

pip for AI agents β€” the universal meta-tool client.


The ToolStore CLI is the local client that gives any AI agent instant access to every tool in the ecosystem β€” public APIs, MCP servers, local skills, and sandboxed code modules β€” all through a single, uniform interface.

It handles discovery, inspection, schema conversion, and execution across all tool types. The agent doesn't need to know whether a tool is an HTTP endpoint, a Docker container, or an MCP server β€” it just calls it.

For the full vision and architecture, see the main README.


πŸš€ Quick Start

Install

pip install -e .

Pull the public tool index

toolstore update                    # fetch the latest index
toolstore search "weather"          # search across all tool types
toolstore info weather-api          # inspect a tool's schema

Run a tool

toolstore use world-time-api --timezone "America/New_York"

Publish your own tool

toolstore publish my-tool.json

πŸ‘€ Authentication & Publishing

To publish your own tools to the registry, you need a developer account.

1. Register an Account

Since the CLI is currently optimized for tools, registration is handled via the API directly (or use curl):

curl -X POST http://localhost:8000/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "username": "myuser",
    "email": "myuser@example.com",
    "password": "mypassword"
  }'

2. Login

Once registered, you can login via the CLI to save your credentials locally:

$ toolstore login
Username: myuser
Password: mypassword
Logging in to http://localhost:8000...
Login successful!

(Tokens are saved to ~/.toolstore/credentials)

3. Publish a Tool

Create a tool.json file (see below) and run:

$ toolstore publish tool.json

πŸ› οΈ Creating Tools (The Standard)

ToolStore uses a simple JSON format to define tools.

1. API Tool Standard (V1)

To add a public API or local service, create a definition file (e.g., my-tool.json):

{
  "name": "weather-api",
  "version": "1.0.0",
  "type": "api",
  "description": "Get current weather for any city",
  "author": "username",
  "license": "MIT",
  
  "endpoint": "https://api.open-meteo.com/v1/forecast",
  "method": "GET",
  
  "auth": {
    "type": "none"  // V1 only supports auth-free APIs
  },
  
  "schema": {
    "input": {
      "latitude": { "type": "number", "required": true, "description": "Latitude" },
      "longitude": { "type": "number", "required": true, "description": "Longitude" }
    },
    "output": {
      "temperature": "number",
      "unit": "string"
    }
  },
  
  "examples": [
    {
      "input": { "latitude": 37.77, "longitude": -122.41 },
      "output": { "temperature": 18, "unit": "celsius" }
    }
  ]
}

πŸ“– Documentation

πŸ› οΈ Development status

Current Phase: V1 Implementation (Foundation)