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
- Authentication: Register as a developer through the UI API
- API Access: Obtain API keys for Developer API access
- Tool Development: Prepare your tool code and configuration
- 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 dataGET /tool-user-data/{dev_slug}/{tool_slug}/user/{user_id}— Get user dataPUT /tool-user-data/{dev_slug}/{tool_slug}/user/{user_id}— Update user dataDELETE /tool-user-data/{dev_slug}/{tool_slug}/user/{user_id}— Delete user dataPOST /tool-user-data/sub-collection— Create sub-collection documentGET /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 uploadPOST /tool-storage/generate-upload-url— Generate presigned upload URLGET /tool-storage/download/{dev_slug}/{tool_slug}/{user_slug}/{file_name}— Download fileGET /tool-storage/list/{dev_slug}/{tool_slug}/{user_slug}— List user filesDELETE /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
- Initialize Tool Project
mkdir my-awesome-tool cd my-awesome-tool touch tool-data.yaml touch main.py touch requirements.txt touch README.md - Configure tool-data.yaml — Follow the specification.
- 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() - Upload Tool — Generate a presigned URL, upload, and process.
- 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-statusAuthentication & 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: trueExample 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"API Documentation Links
- Developer API:
/dev_api/docs,/dev_api/openapi.json - UI API:
/ui_api/docs,/ui_api/openapi.json - MCP API:
/mcp_api/docs,/mcp_api/openapi.json - Health:
/dev_api/v1/health,/dev_api/v1/tool-user-data/health,/dev_api/v1/tool-storage/health,/ui_api/v1/tools/health - Live Dev API: Docs | OpenAPI JSON | ReDoc
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.