Agent Vending Factory

io.github.RubenTayPublished by GitHub account RubenTayv0.1.3Updated Oct 24, 2026

Pay-per-call MCP tools via x402 USDC: ZAR prices, data extraction, Python sandbox, SA flights.

VerifiedStreamable HTTPWeb executableLocation & LifestyleFinanceData & Analytics

Overview

AI-generated overview

A remote pay-per-call MCP server offering crypto/ZAR prices, schema-based JSON extraction, a Python sandbox and South African airport flight status.

What you can do
Fetch live bid, ask and last prices for crypto/ZAR pairs from VALR and Luno, for one pair or all pairs at once, with per-exchange results and timestamps. Extract structured JSON from raw text against a caller-supplied JSON Schema and see whether validation passed. Run short Python 3.12 snippets in an isolated subprocess with a five-second timeout and capped stdout. Look up live arrival or departure status, scheduled, estimated and actual times, gate, carousel and terminal for flights at JNB, CPT and DUR.
When to use it
Useful when you need South African market or travel data, quick schema-driven extraction from unstructured text, or a small throwaway Python computation without running code locally. The four tools are unrelated, so it is worth adding only if one of these specific tasks comes up.
Requirements
A remote streamable HTTP endpoint; no local runtime or package is needed. No authentication, environment variables or headers are declared. Network access to the endpoint is required, and the tools call external sources (VALR, Luno, ACSA) for live data.
Before you install
The registry description says tools are pay-per-call via x402 USDC, so calls may cost money and require a crypto payment; confirm pricing and payment handling before use. The Python sandbox executes caller-supplied code on a third-party server, so avoid sending secrets or sensitive data. Raw text sent for extraction and flight queries go to a third party.

Installation

In SourceWeft

  1. Open Agent Vending Factory in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.RubenTay%2Fagent-vending-factory/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "agent-vending-factory": {
      "type": "http",
      "url": "https://agent-vending-factory-3srpjtr7na-ew.a.run.app/mcp"
    }
  }
}

README

This repository has no README.

Tools

4

tool_zar_prices

POST /tools/zar-prices/run — Returns live bid/ask/last prices for crypto/ZAR pairs. Input: {pair: 'BTC/ZAR'|'ETH/ZAR'|'SOL/ZAR'|'USDC/ZAR'|'all'}. Output: array of {exchange, pair, price, bid, ask, timestamp} objects. Sources: VALR (all 4 pairs), Luno (BTC/ZAR + ETH/ZAR only). SOL/ZAR and USDC/ZAR are VALR-only. Fetches all exchanges concurrently. Timestamps are ISO-8601 UTC. Cost: $0.0050 USDC per call.

Parameterspair

tool_data_transformer

POST /tools/tool_data_transformer/run — Extracts structured JSON from raw text using a caller-supplied JSON Schema. Input: {raw_text: string, target_json_schema: object (JSON Schema draft-07)}. Output: {success, extracted_data, extraction_method, validation_passed, error}. extraction_method is one of: 'direct_parse', 'embedded_json', 'regex_extraction'. No LLM involved — pure parsing pipeline. Type coercion applied for integer/number/boolean fields. Works best with flat schemas; deeply nested structures extract less reliably via key-value pass. Cost: $0.0500 USDC per call.

Parametersraw_textrequiredtarget_json_schemarequired

tool_compute_sandbox

POST /tools/tool_compute_sandbox/run — Executes Python 3.12 code in an isolated subprocess with a 5-second hard timeout. Input: {python_code: string, input_data: any (optional, bound as variable 'input_data')}. Output: {success, result, stdout (capped 50KB), execution_time_ms, error_type}. Return value: assign to 'result' variable. Pre-loaded: math, json, re, statistics, itertools, functools, collections, decimal, datetime, random, hashlib, base64. Blocked: import, open(), eval(), exec(), os, sys, network, class definitions, dunder attributes. error_type values: syntax_error | security_error | runtime_error | timeout_error. Cost: $0.1500 USDC per call.

Parametersinput_datapython_coderequired

tool_sa_airport_oracle

POST /tools/sa-airport-oracle/run — Returns live flight status from ACSA (airports.co.za). Input: {airport_code: 'JNB'|'CPT'|'DUR', flight_number: string, request_type: 'arrival'|'departure'}. Output: {success, live_status, scheduled_time, estimated_time, actual_time, gate, carousel, terminal, flight_number, airport_code, request_type, error}. Coverage: JNB (O.R. Tambo), CPT (Cape Town Int'l), DUR (King Shaka). Data window: flights within 48 hours. Call GET /tools/sa-airport-oracle/health (free) first — if structure_valid=false, do not proceed. error_type values: 'stale_data' (do not retry), 'not found' (retry after 10-15 min), network error (retry once). flight_number is case-insensitive and normalised to uppercase internally. Read-only — no booking/ticketing. Cost: $0.1200 USDC per call.

Parametersairport_coderequiredrequest_typerequiredflight_numberrequired

Version history

1
  1. v0.1.3LatestSep 16, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • License10 pts

    Declare a license in the repository or the registry entry.