{"name":"io.github.RubenTay/agent-vending-factory","slug":"rubentay-agent-vending-factory","title":"Agent Vending Factory","description":"Pay-per-call MCP tools via x402 USDC: ZAR prices, data extraction, Python sandbox, SA flights.","url":"https://mcp.market/server/rubentay-agent-vending-factory","rating":null,"grade":"C","score":57,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":6,"ok":6,"last_checked_at":"2026-09-20T21:50:51.062Z","last_ok_at":"2026-09-20T21:50:51.062Z","latency_ms":690},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/RubenTay/agent-vending-factory","website":"https://agent-vending-factory-3srpjtr7na-ew.a.run.app","version":"0.1.3","remotes":[{"type":"streamable-http","url":"https://agent-vending-factory-3srpjtr7na-ew.a.run.app/mcp"}],"packages":[],"tools":[{"name":"tool_compute_sandbox","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"python_code":{"type":"string","description":"Python 3.12 source code to execute. No import statements. Set 'result = <value>' to return a value. Pre-loaded modules are in scope: math, json, re, statistics, itertools, functools, collections, decimal, datetime, random, string, textwrap, hashlib, base64, struct, copy, pprint."},"input_data":{"description":"JSON-serializable value (dict, list, str, number, bool, or null) passed as the variable 'input_data' inside the sandbox. Omit or pass null if the code has no external input."}},"required":["python_code"]}},{"name":"tool_data_transformer","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"raw_text":{"type":"string","description":"Unstructured or semi-structured text to extract data from. Examples: API response body, email content, log lines, form submissions, scraped web pages, or any text that contains the values you need."},"target_json_schema":{"type":"object","description":"A JSON Schema object describing the expected output structure. Define 'properties' with a 'type' for each field you want extracted, and list required fields under 'required'. Example: {\"type\": \"object\", \"properties\": {\"name\": {\"type\": \"string\"}, \"age\": {\"type\": \"integer\"}}, \"required\": [\"name\", \"age\"]}"}},"required":["raw_text","target_json_schema"]}},{"name":"tool_sa_airport_oracle","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"airport_code":{"type":"string","enum":["JNB","CPT","DUR"],"description":"IATA airport code. JNB=O.R. Tambo (Johannesburg), CPT=Cape Town, DUR=King Shaka (Durban)."},"flight_number":{"type":"string","description":"IATA flight number, e.g. 'SA322'. Case-insensitive."},"request_type":{"type":"string","enum":["arrival","departure"],"description":"Search the arrivals board or departures board."}},"required":["airport_code","flight_number","request_type"]}},{"name":"tool_zar_prices","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"pair":{"type":"string","enum":["BTC/ZAR","ETH/ZAR","SOL/ZAR","USDC/ZAR","all"],"default":"all","description":"Trading pair to fetch. Use 'all' to fetch every supported pair concurrently."}},"required":[]}}],"scan":{"score":57,"grade":"C","scanned_at":"2026-09-20T11:41:16.288Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T11:41:16.222Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 763ms"]},"poisoning":{"score":15,"max":15,"notes":["4 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 4 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://agent-vending-factory-3srpjtr7na-ew.a.run.app/mcp","reachable":true,"authRequired":false,"latencyMs":763,"serverInfo":{"name":"agent-vending-factory","version":"1.29.0"}}],"packages":[],"repo":{"found":false,"owner":"RubenTay","repo":"agent-vending-factory","error":"repo not found"},"icon":{"url":null,"source":"none"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}