vending-machine-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| E2B_API_KEY | No | API key for E2B sandbox (required for run, run_code, and code execution inside agents if Daytona not used) | |
| GEMINI_API_KEY | No | API key for Gemini embeddings (optional, used if Voyage and OpenAI not set) | |
| GOOGLE_API_KEY | No | Alias for GEMINI_API_KEY | |
| OPENAI_API_KEY | No | API key for OpenAI embeddings (optional, used if Voyage not set) | |
| VOYAGE_API_KEY | No | API key for Voyage AI embeddings (optional, takes priority over OpenAI/Gemini) | |
| DAYTONA_API_KEY | No | API key for Daytona sandbox (required for run, run_code, and code execution inside agents if E2B not used) | |
| EMBEDDING_MODEL | No | Override embedding model (optional) | |
| VECTOR_STORE_DB | No | Override path for vector store SQLite database (optional) | |
| SANDBOX_PROVIDER | No | Force sandbox provider: 'daytona' or 'e2b' (optional) | |
| EMBEDDING_PROVIDER | No | Override embedding provider (optional) | |
| OPENROUTER_API_KEY | Yes | Required to run agents (hire_agent, audit_code, etc.) | |
| EMBEDDING_DIMENSIONS | No | Override embedding dimensions (optional) | |
| SCRIPT_INDEX_DB_PATH | No | Override path for script index SQLite database (optional) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_agentsA | List available Vending Machine agents and their capabilities. |
| hire_agentA | Hire a Vending Machine agent to perform a task. Args: agent_id: Which agent to hire. One of: bug-hunter, test-goblin, devops-dwarf, cloud-sensei, code-gremlin, data-sprite, desk-pilot, embeddings-agent, inbox-zero, mcp-maker, number-crunch, pdf-forge, vibe-writer. task: Detailed task description. Be specific — the agent only sees this text. |
| check_jobA | Check the status of a background agent job. Args: job_id: The job ID returned by hire_agent for long-running agents. |
| vector_store_addA | Embed and store text in a named collection for later similarity search. Embeddings use your configured keys in order: Voyage → OpenAI → Gemini → local hash, unless overridden via provider/model/dimensions params or EMBEDDING_* env vars. Args: collection: Logical bucket name (e.g. "project-docs", "kb"). text: Full text to embed and store. doc_id: Optional stable id; a UUID is generated if omitted. metadata_json: Optional JSON object string (e.g. {"source":"readme.md"}). provider: Embedding provider override (openai, voyage, gemini, local). Empty = auto-detect. model: Embedding model override (e.g. "text-embedding-3-large"). Empty = provider default. dimensions: Output dimensions override (integer as string). Empty = provider default. |
| vector_store_searchA | Semantic search over a collection using the same embedding route as vector_store_add. By default, the query embedding is auto-matched to the collection's stored provider/model. Use provider/model/dimensions to override. Args: collection: Collection name used with vector_store_add. query: Natural-language query. limit: Max results (1–50). provider: Embedding provider override for the query (openai, voyage, gemini, local). Empty = auto-detect from collection. model: Embedding model override (e.g. "voyage-code-3"). Empty = auto-detect from collection. dimensions: Output dimensions override (integer as string). Empty = auto-detect. |
| vector_store_listA | List all collections, or list documents in one collection. Args: collection: If empty, list collection names and counts. Otherwise list docs in that collection. limit: Max rows when listing documents in a collection. |
| query_knowledgeA | Ask a question about documents in a collection. Retrieves the most relevant chunks via semantic search, then uses an LLM to answer based on that context. Works with any collection — those created by the embeddings-agent (hire_agent) or manually via vector_store_add. Args: collection: Collection name (from embeddings-agent output or vector_store_add). question: Natural-language question about the stored data. limit: Number of context chunks to retrieve (1–20, default 5). provider: Embedding provider override for the query (openai, voyage, gemini, local). Empty = auto-detect from collection. model: Embedding model override. Empty = auto-detect from collection. dimensions: Output dimensions override (integer as string). Empty = auto-detect. |
| search_scriptsA | Search the marketplace for scripts matching a natural language query. Returns top 5 results with vending codes and descriptions. Args: query: Natural language description of what you need (e.g. "analyze CSV data"). |
| runA | Run a marketplace script by its vending code (e.g. S-7K2M). Returns a job_id for polling via check_job. Args: vending_code: The script's vending code from search_scripts (e.g. "S-7K2M"). user_input: Text input for the script (check the script's input_schema for format). |
| infoA | Get full details about a script: description, validation report, usage stats, similar scripts, and creator info. Args: vending_code: The script's vending code (e.g. "S-7K2M"). |
| run_codeA | Run code in a secure E2B sandbox. Returns stdout, stderr, and any errors. Args: code: The source code to execute. language: "python" or "javascript" (default: python). packages: Comma-separated list of packages to install (e.g. "pandas,numpy"). |
| audit_codeA | Full security audit pipeline: Bug Hunter finds vulnerabilities, Test Goblin generates regression tests, Code Gremlin writes fixes. Returns combined report. Args: code: The source code to audit (paste the full code). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Each tool targets a distinct resource+action: scripts (search, run, info), agents (list, hire, check_job), vector store (add, search, list, query_knowledge), and code (run_code, audit_code). The only potential overlap is run vs run_code, but their descriptions clearly separate marketplace script execution from sandboxed code execution.
Naming conventions are mixed: verb-noun (list_agents, search_scripts, hire_agent, check_job, run_code, audit_code), noun-verb (vector_store_add, vector_store_search, vector_store_list), and cryptic single-word names like 'run' and 'info'. 'run' is especially ambiguous given run_code exists.
12 tools is well-scoped for a server handling marketplace scripts, hiring agents, vector storage, and code execution. Each tool has a clear place and no redundant clutter.
Core workflows are covered, but notable gaps exist: no delete/update for vector store documents, no list_scripts for browsing the full marketplace, and no job management beyond check_job (e.g., cancel or list jobs). These gaps may require workarounds.