Skip to content

abhinavstechdev/microtool-hub

v1.0.0MIT

Create, edit, preview, and publish web micro-tools directly in chat.

MicroTool Hub — Laravel Community Platform & ChatGPT MCP Plugin

PHP 8.3+ Laravel 13 PostgreSQL MCP Standard OpenAI Plugin Standard

MicroTool Hub is a full-featured developer platform where users discover, create, edit, preview, publish, share, and fork small single-purpose web tools (calculators, formatters, converters, generators, mini-games, and visual utilities).

The platform integrates natively with ChatGPT and Codex via a remote Model Context Protocol (MCP) server over Streamable HTTP and the MCP Apps UI standard.


Features

  • Multi-Database Support: Native support for PostgreSQL 14+ (Neon, Supabase, Render, Railway, AWS RDS), MySQL 8 (cPanel shared hosting), and SQLite (local development & testing). See POSTGRESQL_SETUP.md.
  • AI Code Studio: 3-panel developer workspace with file tree, real-time code editor, keyboard shortcuts (Ctrl+S), autosave indicators, and instant live sandboxed previews.
  • Remote MCP Server (POST /mcp): Streamable HTTP JSON-RPC 2.0 server exposing 24 tools with strict schemas, decoupled data/render pattern, and mandatory safety annotations.
  • MCP Apps In-Chat Interactive UI: Renders live, functional micro-tools directly in ChatGPT conversation streams via render_microtool_widget (ui://microtool/preview.html).
  • OAuth 2.1 & RFC 9728 Discovery: Full authorization server metadata, PKCE (S256), protected resource metadata, and domain verification challenge.
  • Secure Private Filesystem Sandbox: Absolute containment in storage/app/private/projects/ preventing directory traversal (.., null bytes, symlinks) and restricting file types to safe web assets.
  • Project Version Snapshots: Instant ZIP snapshots (create_snapshot, restore_snapshot) before modifications and for version locking on publish.
  • Community Discovery & Forking: Public catalog with category filters, search, likes, comments, author profiles, and one-click tool forking.
  • cPanel Shared Hosting Ready: Runs on standard Apache/MySQL 8 without requiring Node.js, Supervisor, or Docker on the production server.

Architecture Overview

graph TD
    User([User in ChatGPT / Codex]) <--> Host[ChatGPT / Codex Host]
    subgraph Plugin Package [Plugin Package]
        PManifest[plugin.json + mcp.json]
        PSkills[skills/create-microtool/SKILL.md]
    end
    subgraph Backend [MicroTool Hub - Laravel Backend]
        OAuthEndpoint[OAuth 2.1 / RFC 9728 Discovery]
        MCPEndpoint[Streamable HTTP /mcp]
        DataTools[File & Project Service Tools]
        RenderTool[render_microtool_widget]
        Storage[Private Storage Sandbox]
        MySQL[(MySQL 8 Database)]
    end
    subgraph ChatGPT Chat Stream [Sandboxed MCP App Iframe]
        Widget[Interactive MicroTool Widget - HTML/JS/CSS]
    end

    Host -->|Discovers Manifest| PManifest
    Host -->|Authorizes via PKCE| OAuthEndpoint
    Host -->|Executes Workflow| PSkills
    Host -->|JSON-RPC HTTP POST| MCPEndpoint
    MCPEndpoint --> DataTools
    DataTools --> Storage
    DataTools --> MySQL
    MCPEndpoint --> RenderTool
    RenderTool -.->|_meta.ui.resourceUri| Widget

Quick Start (Local Development)

1. Requirements

  • PHP 8.3 or higher (PHP 8.3, 8.4, 8.5)
  • Composer 2.x
  • SQLite or MySQL 8

2. Setup

git clone https://github.com/example/microtool-hub.git
cd microtool-hub

# Install dependencies
composer install

# Environment configuration
cp .env.example .env
php artisan key:generate

# Database migration & demo seeding
php artisan migrate --seed

# Launch development server
php artisan serve

Access the application in your browser at http://localhost:8000.

3. Default Demo Accounts

  • Creator Account: alex@microtoolhub.com / password123
  • Admin Account: admin@microtoolhub.com / adminpassword123

MCP Server Tools (All 24 Tools)

Tool NameTypeDescriptionSafety Hints
create_projectMutationInitialize a new micro-tool workspacereadOnly: false
list_projectsQueryList workspaces owned by authenticated userreadOnly: true
get_projectQueryGet workspace details, file counts, and storagereadOnly: true
update_project_metadataMutationUpdate name, description, category, visibilityreadOnly: false
delete_projectDestructiveDelete workspace and all assetsdestructive: true
list_project_filesQueryList files and directory treereadOnly: true
read_project_fileQueryRead raw source code of a filereadOnly: true
write_project_fileMutationSave atomic source file (HTML, CSS, JS, etc.)readOnly: false
rename_project_fileMutationMove or rename filereadOnly: false
delete_project_fileDestructiveRemove file from workspacedestructive: true
create_project_directoryMutationCreate subfolderreadOnly: false
validate_projectQueryValidate index.html, tag balance, and quotasreadOnly: true
get_project_statusQueryCheck quota usage and last snapshotreadOnly: true
create_snapshotMutationCreate version backup archive (ZIP)readOnly: false
list_snapshotsQueryList project version historyreadOnly: true
compare_snapshotsQueryDiff files between two versionsreadOnly: true
restore_snapshotDestructiveRoll back project to a snapshotdestructive: true
preview_projectQueryGenerate sandbox URLreadOnly: true
render_microtool_widgetRenderRenders in-chat MCP Apps interactive widgetui.resourceUri: true
publish_projectMutationPublish approved tool to community catalogreadOnly: false
unpublish_projectDestructiveWithdraw tool from public catalogdestructive: true
fork_projectMutationClone public tool into user's accountreadOnly: false
search_toolsQuerySearch community directoryreadOnly: true
get_tool_detailsQueryGet public metadata and launch URLreadOnly: true

Testing & Validation

Run the complete automated test suite (15 tests, 151 assertions):

php artisan test

Pre-validate the ChatGPT Plugin manifest and packaging:

python c:/project/chatgptmcpguideskill/scripts/validate_plugin.py .

Deployment & Production

Refer to CPANEL_DEPLOYMENT.md for full instructions on setting up cPanel, MySQL 8, HTTPS, and Apache .htaccess authorization header rules.