agent-vending-factory
Server Details
Pay-per-call MCP tools via x402 USDC: ZAR prices, data extraction, Python sandbox, SA flights.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.5/5 across 6 of 6 tools scored.
Each tool has a clearly distinct purpose with no overlap: agent_example for LLM inference, tool_compute_sandbox for Python execution, tool_data_transformer for JSON extraction, tool_example for text utilities, tool_sa_airport_oracle for flight status, and tool_zar_prices for crypto prices. The descriptions reinforce unique domains and use cases, making misselection unlikely.
Naming is inconsistent with mixed patterns: agent_example uses snake_case, tool_compute_sandbox and tool_data_transformer use snake_case with 'tool_' prefix, tool_example is snake_case but simpler, tool_sa_airport_oracle uses a hyphenated prefix, and tool_zar_prices uses a hyphenated suffix. There is no uniform verb_noun or style convention across the set.
With 6 tools, the count is reasonable for a utility server, though it feels slightly thin for a 'factory' concept. Each tool serves a distinct function, but the scope is broad (AI, computation, data, text, flights, crypto), suggesting more tools could better cover these domains. It's not excessive or minimal, but could be more focused.
The server lacks clear domain coverage, as tools span unrelated areas (AI, programming, data parsing, text, flights, crypto), making completeness hard to assess. Within each tool's niche, operations are basic (e.g., single-turn inference, read-only flight data), but there are gaps like no update/delete functions or deeper integrations. It feels like a collection of utilities rather than a complete surface for any one domain.
Available Tools
6 toolsagent_exampleInspect
POST /agents/agent_example/run — Single-turn Claude Sonnet inference endpoint. Input: {question: string, max_tokens: integer (default 1024)}. Output: {success, answer, usage: {input_tokens, output_tokens}, error}. No tool use or agentic loop — direct model call. Use for QA, summarisation, or classification tasks. Cost: $0.0100 USDC per call.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | The question or task for the agent to reason about | |
| max_tokens | No | Maximum tokens for the response (default: 1024) |
tool_compute_sandboxInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| input_data | No | 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. | |
| python_code | Yes | 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. |
tool_data_transformerInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| raw_text | Yes | 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 | Yes | 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"]} |
tool_exampleInspect
POST /tools/tool_example/run — Stateless text utility for testing x402 payment flows. Input: {text: string}. Output: {original, uppercase, word_count, char_count}. Cost: $0.0010 USDC per call.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Input text to process |
tool_sa_airport_oracleInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| airport_code | Yes | IATA airport code. JNB=O.R. Tambo (Johannesburg), CPT=Cape Town, DUR=King Shaka (Durban). | |
| request_type | Yes | Search the arrivals board or departures board. | |
| flight_number | Yes | IATA flight number, e.g. 'SA322'. Case-insensitive. |
tool_zar_pricesInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | No | Trading pair to fetch. Use 'all' to fetch every supported pair concurrently. | all |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!