StudioMCPHub + Aegis: An open MCP tool marketplace where AI agents discover, pay for, and consume creative services — with x402 micropayments settled on Kite chain.
Development Period: March 27 — April 26, 2026
Team: Metavolve Labs, Inc. (Solo Founder: Tad MacPherson)
Live Service: studiomcphub.com
MCP Endpoint: https://studiomcphub.com/mcp
A two-sided agentic marketplace where:
- Provider side: 32 AI art tools (resize, upscale, verify provenance, generate QR, extract palette, etc.) are discoverable via MCP Streamable HTTP transport
- Consumer side: Any AI agent on Kite can discover tools, pay via x402, and receive results — no API keys needed
- Verification side: Aegis offers provenance verification as a paid service ($0.008/query) — external agents pay to verify art authenticity
- Licensing side: Training data licensing brokered through x402 — artists earn passive income when their data is licensed
Payment IS authorization. No accounts. No subscriptions. Agents pay per-call.
External AI Agent (on Kite)
│
├─ MCP Discovery → StudioMCPHub (32 tools)
│ │
│ ├─ Call: verify_provenance(image) → HTTP 402
│ ├─ Sign: gokite-aa x402 payment ($0.008)
│ ├─ Settle: Pieverse /v2/settle → on-chain
│ └─ Result: { c2pa: true, gcx_id: "GCX00142", artist: "Artiswa" }
│
├─ Call: license_training_data(gcx_id) → HTTP 402
│ ├─ Sign: x402 payment ($0.10)
│ ├─ Settle: $0.085 → artist wallet, $0.015 → platform
│ └─ Result: { 4k_url, soulprint_json, license_terms }
│
└─ All transactions recorded on Kite L1
├── mcp/
│ ├── server.json # MCP server registry entry
│ ├── tool_definitions.json # All 32 tool schemas (OpenAPI-style)
│ └── x402_middleware_pattern.py # Reference: HTTP 402 flow for MCP tools
│
├── x402/
│ ├── kite_config.py # Kite chain config (testnet + mainnet)
│ ├── payment_requirement.py # Generate 402 response with gokite-aa scheme
│ └── verify_and_settle.py # Pieverse facilitator integration
│
├── verification/
│ ├── hash_algorithm.py # 256-bit DCT pHash (matches imagehash.phash)
│ ├── lsh_bands.py # LSH 16×4 band indexing for O(candidates) lookup
│ └── match_endpoint.py # Reference: /match-hash API endpoint
│
├── schema/
│ ├── golden-codex-template.json # Golden Codex metadata schema (v1.1)
│ ├── golden_codex_reader.py # Open-source Soulprint reader
│ └── soulprint-fields.md # Schema field reference
│
├── contracts/kite/
│ ├── AgentPaymentLedger.sol # On-chain x402 payment audit trail
│ └── AeternumProvenanceSchema.sol # EAS provenance attestation schema
│
└── docs/
├── MCP_INTEGRATION_GUIDE.md # How to add your tools to the marketplace
├── X402_IMPLEMENTATION.md # How to accept x402 payments
└── PROVENANCE_API.md # Aegis verification API reference
| Tool | Description |
|---|---|
remove_background |
AI background removal |
crop_image |
Smart crop with aspect ratios |
rotate_image |
Rotation with background fill |
convert_format |
PNG/JPG/WEBP conversion |
extract_palette |
Color palette extraction |
smart_crop |
AI subject-aware crop |
histogram |
Image histogram analysis |
qr_generate |
QR code generation |
qr_read |
QR code reading |
watermark_detect |
Watermark detection |
| Tool | Cost | Description |
|---|---|---|
resize_image |
1 GCX | High-quality resize with filters |
watermark_embed |
1 GCX | Invisible watermark embedding |
mockup_image |
1 GCX | Product mockup generation |
verify_provenance |
$0.008 | Hash verification against GCX registry |
license_training_data |
$0.10 | 4K + Soulprint training data license |
{
"mcpServers": {
"studiomcphub": {
"url": "https://studiomcphub.com/mcp",
"transport": "streamable-http"
}
}
}import httpx
# 1. Call a paid tool — get 402
response = httpx.post("https://studiomcphub.com/mcp", json={...})
# response.status_code == 402
# 2. Parse payment requirement
payment_info = response.json()
# { "scheme": "gokite-aa", "network": "kite-testnet", "amount": "8000000000000000", "asset": "0x0fF5..." }
# 3. Sign via Kite Passport MCP
auth = kite_mcp.call_tool("approve_payment", {
"payer_addr": my_wallet,
"payee_addr": payment_info["payTo"],
"amount": payment_info["amount"],
"token_type": "USDT"
})
# 4. Retry with X-Payment header
response = httpx.post("https://studiomcphub.com/mcp",
headers={"X-Payment": auth["x_payment"]},
json={...}
)
# response.status_code == 200 ✓MIT — See LICENSE
Metavolve Labs, Inc. — San Francisco, California "Payment IS authorization."