@devrobotlabs/visionapi-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| vision_list_presetsA | List the preset catalogue: every named schema, with its field count and what it is for. Free — no credits, no API key needed. Read this when the user asks what document types are supported, or when you need a preset name to put in code. Do NOT call it to pick a preset before an extraction: preset:"auto" classifies the file server-side for free and is better at it than matching a description by eye, and vision_detect costs a fifth of a credit if you want the ranking. Listing 28 presets to guess one is the expensive path to a worse answer. The names here are catalogue entries, not field names. Call vision_get_preset before writing any field name into code. |
| vision_get_presetA | The full field list for one preset: every field name, its type, its description, and whether it is always present. Free — no credits, no API key needed. This is the ONLY correct source for a preset's field names. Never write one from memory: the catalogue is versioned and a name you remember from another project may not exist here, and a schema built on a guessed name fails at the point where you are parsing the response rather than at the point where you made it up. Fields marked ★ are present on every response; the rest appear only when the document carries them. A field holding null means the document did not have it, never that the call failed. |
| vision_creditsA | The account's credit balance and its per-bucket breakdown. Free — no credits consumed. Worth checking before a large batch, so you can tell the user up front that 300 files will not fit in the balance rather than stopping half way through with an insufficient_credits error. Buckets are spent in order: subscription, then rollover, then pack, then welcome. |
| vision_analyzeA | Extract structured data from ONE image or PDF (JPEG, PNG, WebP, TIFF, PDF — detected by magic bytes, the extension is ignored). Cost: 1 credit per image, 2 per selected PDF page. Failures cost NOTHING — every non-2xx releases the reservation in full, so a failed call is safe to fix and repeat, and there is no cleanup to do. Choose ONE way to say what you want:
Reading what comes back:
Long documents: leave mode at "auto". The server kills a synchronous request at 60 seconds; this tool then re-submits it to the queue and polls, and you are charged exactly once because the timed-out attempt refunded itself. Pass mode:"async" up front for anything over ~10 pages. One file per call. To process a folder, call this once per file — and if you get too_many_tasks, wait for your own in-flight tasks rather than sleeping. |
| vision_askA | Ask up to 5 plain-language questions about ONE image or PDF and get answers with a verdict. Cost: 1 credit per image, and 1 per selected PDF page — half what extraction costs on a PDF, because the answer does not scale with the page. The questions themselves are free: asking five costs exactly what asking one costs. Failures cost NOTHING. Reach for this over vision_analyze when the answer is a judgement rather than a field — "is this signed?", "does the delivery address match the billing address?", "is anyone wearing safety equipment?". Reach for vision_analyze when you want values you will store or compute with; asking for a total and then parsing the prose is slower, dearer and less reliable than extracting it. Reading what comes back: branch on
Answers are at document level, not per page. Long documents behave exactly as in vision_analyze — leave mode at "auto", or pass "async" up front past ~10 pages. |
| vision_detectA | Identify what a file IS without paying to extract it: the presets that could handle it, ranked, each with a confidence and a one-line reason. Cost: 1 credit per 5 calls, whatever the file — detection only ever reads page 1, so a 300-page PDF costs the same as a photo. Four calls in five report 0 credits used.
Reach for this when the TYPE is the decision: routing a mixed inbox to different handlers, or refusing to spend two credits a page on a 40-page PDF sight unseen. Do NOT reach for it as a step before every vision_analyze call — if you want the data and do not care which preset produced it, preset:"auto" classifies the same way, for free, in the same request. Using detect first and then analyze is two calls where one would do. If |
| vision_get_taskA | Status, and once finished the result, of a queued task. Free — no credits consumed. The result was already paid for when the task was submitted. Call this with the id from a call that was queued — either one you made with mode:"async", or one where polling ran out of time and the answer told you to come back. A task that is still "queued" or "processing" has NOT failed; it is working, and re-submitting the file would be a second charge for the same work. Results are kept for 7 days. After that only the metadata survives and the file has to be sent again. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| presets | Every named schema the API can extract against, with field counts. The same content as vision_list_presets. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/devrobotlabs/visionapi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server