Tool Store Developer Documentation

This page consolidates the core developer documentation for the Tool Store ecosystem. It is derived from the repository README located at tools/README.md and includes a convenient in-page navigation.

Overview

The Tool Store is a marketplace for AI tools that integrates with the Model Context Protocol (MCP). This guide provides comprehensive documentation for developers who want to create, upload, and manage tools in the Tool Store ecosystem.

Getting Started

Prerequisites

  • Firebase account for authentication
  • Tool Store developer account
  • Basic understanding of YAML, Python, and REST APIs
  • Understanding of the Model Context Protocol (MCP)

Development Environment Setup

  1. Authentication: Register as a developer through the UI API
  2. API Access: Obtain API keys for Developer API access
  3. Tool Development: Prepare your tool code and configuration
  4. Testing: Use the provided endpoints to test your tool integration

Developer API Reference

The Developer API (/dev_api/v1/) provides infrastructure services that tools can access for data storage, file management, and user interactions.

Base URL

https://api.toolstore.com/dev_api/v1/

Tool User Data Management

  • POST /tool-user-data/ — Create user data
  • GET /tool-user-data/{dev_slug}/{tool_slug}/user/{user_id} — Get user data
  • PUT /tool-user-data/{dev_slug}/{tool_slug}/user/{user_id} — Update user data
  • DELETE /tool-user-data/{dev_slug}/{tool_slug}/user/{user_id} — Delete user data
  • POST /tool-user-data/sub-collection — Create sub-collection document
  • GET /tool-user-data/sub-collection/{dev_slug}/{tool_slug}/{user_id}/{sub_collection} — List sub-collection Documents

Tool Storage

  • POST /tool-storage/upload — Direct file upload
  • POST /tool-storage/generate-upload-url — Generate presigned upload URL
  • GET /tool-storage/download/{dev_slug}/{tool_slug}/{user_slug}/{file_name} — Download file
  • GET /tool-storage/list/{dev_slug}/{tool_slug}/{user_slug} — List user files
  • DELETE /tool-storage/delete/{dev_slug}/{tool_slug}/{user_slug}/{file_name} — Delete file

Authentication

Authorization: Bearer {your_jwt_token}

Tool Data YAML Specification

The tool-data.yaml file is the heart of your tool configuration. It defines metadata, capabilities, activation steps, and integration details.

Schema (excerpt)

name: "My Awesome Tool"
slug: "my-awesome-tool"
short_description: "Quick data analysis and visualization"
long_description: "A comprehensive tool for data analysis and visualization..."
version: "1.0.0"
content_rating: "everyone"
categories: ["data-analysis", "visualization"]
tags: ["analytics", "charts", "reporting", "dashboard"]
functions:
  - name: "analyze_data"
    description: "Analyze datasets and generate insights"
    parameters:
      type: "object"
      properties:
        dataset_url:
          type: "string"
      required: ["dataset_url"]
resources:
  - name: "user_reports"
    description: "Access user-generated reports"
    uri_template: "reports://{user_id}/{report_id}"
activation:
  steps:
    - type: "oauth2"
      title: "1. Connect Your Account"
      required: true
    - type: "form"
      title: "2. Configure Settings"
      required: true

Tool Development Workflow

  1. Initialize Tool Project
    mkdir my-awesome-tool
    cd my-awesome-tool
    
    touch tool-data.yaml
     touch main.py
     touch requirements.txt
     touch README.md
  2. Configure tool-data.yaml — Follow the specification.
  3. Implement Tool Logic (example)
    from mcp.server import FastMCPServer
    from mcp.types import TextContent
    
    app = FastMCPServer("my-awesome-tool")
    
    @app.list_tools()
    async def list_tools():
        return [{"name": "analyze_data", "description": "Analyze datasets"}]
    
    @app.call_tool()
    async def call_tool(name: str, arguments: dict):
        if name == "analyze_data":
            return TextContent(text="Analysis complete")
    
    if __name__ == "__main__":
        app.run()
  4. Upload Tool — Generate a presigned URL, upload, and process.
  5. Save Tool Metadata — Persist parsed YAML content.

Tool User Data Management

Store User Preferences

POST /dev_api/v1/tool-user-data/

Sub-Collections for Complex Data

POST /dev_api/v1/tool-user-data/sub-collection
GET /dev_api/v1/tool-user-data/sub-collection/{dev_slug}/{tool_slug}/{user_id}/{sub_collection}

Tool Storage System

File Upload

Direct upload or presigned URL upload.

File Management

List, download, and delete files via the Tool Storage endpoints.

Tool Activation System

The activation system provides a wizard-like interface for users to configure your tool. The UI API exposes endpoints for configuration, status, and form submission.

GET  /ui_api/v1/tools/{dev_slug}-{tool_slug}/activation-config
POST /ui_api/v1/tools/{dev_slug}-{tool_slug}/activation
GET  /ui_api/v1/tools/{dev_slug}-{tool_slug}/activation-status

Authentication & Security

  • All API calls require Firebase authentication.
  • Mark sensitive form fields as secret: true.
  • OAuth tokens and secret fields are encrypted.
  • Use validation rules and minimal required permissions.

Examples

Example 1: Simple Analytics Tool (excerpt)

name: "Data Insights Pro"
slug: "data-insights-pro"
actions:
  - "generate report"
  - "create automated insights"
activation:
  steps:
    - type: "form"
      title: "Configure Data Source"
      fields:
        - name: "database_url"
          type: "password"
          secret: true
          required: true

Example 2: Social Media Tool with OAuth (excerpt)

name: "Social Media Manager"
slug: "social-media-manager"
actions:
  - "Schedule posts across platforms"
activation:
  steps:
    - type: "oauth2"
      title: "Connect Twitter"
      config: { provider: "twitter", scopes: ["read", "write"] }
    - type: "form"
      title: "Set Posting Schedule"

Support & Resources

  • Developer Forum — Join our community discussions
  • GitHub Repository — Contribute to the Tool Store ecosystem
  • Example Tools — Browse open-source tool examples

Best Practices

  • Follow semantic versioning for tool updates
  • Include comprehensive tool documentation
  • Test activation flows thoroughly
  • Implement proper error handling
  • Use descriptive function and resource names
  • Optimize for performance and user experience

Changelog

  • Sub-collection Support — Enhanced user data storage with nested collections
  • Tool Storage — File management system with Google Cloud Storage
  • Multistep Activation — YAML-driven activation workflows
  • Enhanced Security — Improved encryption for secrets and tokens
  • Better Documentation — Comprehensive API documentation and examples

For the most up-to-date information, please refer to the interactive API documentation and community resources.