{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T15:50:17.428Z","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api","markdownUrl":"https://verifymcp.io/servers/dev-uberllm-mcp/api.md","server":{"slug":"dev-uberllm-mcp","name":"UberLLM","registryName":"dev.uberllm/mcp","description":"Make images and videos, price requests, list AI models and read your balance, from one API key.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"api","type":"remote","identifier":"https://api.uberllm.dev/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/dev-uberllm-mcp/api","version":"1.0.0","transport":null,"scoredAt":"2026-11-05T00:02:19.127Z"},"score":{"total":76,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":76},{"date":"2026-11-04","total":36},{"date":"2026-11-03","total":36},{"date":"2026-11-02","total":36},{"date":"2026-11-01","total":36},{"date":"2026-10-31","total":36},{"date":"2026-10-30","total":36}]},"categories":[{"name":"Endpoint Security","score":89,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token.","HTTPS is enforced; there's no plaintext access path.","The HSTS (Strict-Transport-Security) header is present.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.challenge_only_invoke","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":68,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1260 tokens (~140/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"140","items":"9","tools":"9","tokens":"1260","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"9"}},{"code":"toolsafety.manipulation_clean","args":{"units":"10","judged":"10"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"malware":[],"components":[{"slug":"api","type":"remote","identifier":"https://api.uberllm.dev/mcp","withdrawn":false,"score":76,"current":true,"url":"https://verifymcp.io/servers/dev-uberllm-mcp/api","markdownUrl":"https://verifymcp.io/servers/dev-uberllm-mcp/api.md"}],"facts":[{"label":"Endpoint","value":"https://api.uberllm.dev/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"required (not validated)"},{"label":"Version","value":"1.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"balance","title":"Balance","description":"Your balance in US dollars: what you can spend now and what is held for requests and jobs still running.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":29},{"name":"edit_image","title":"Edit an image","description":"Change a picture you give (image_url or input_images, as https:// links or data: URIs) following a prompt, with an editing model. Spends from your balance.","inputs":[{"name":"aspect_ratio","type":"string","required":false,"description":"Shape, e.g. 16:9, when the model lists aspect ratios."},{"name":"image_url","type":"string","required":false,"description":"The picture to change: an https:// link or a data: URI."},{"name":"input_images","type":"null|array","required":false,"description":"Several pictures to work from (https:// links or data: URIs)."},{"name":"max_cost","type":"number","required":false,"description":"The most you will pay in US dollars; a request that can cost more is refused before anything is spent."},{"name":"model","type":"string","required":true,"description":"An image model id."},{"name":"n","type":"integer","required":false,"description":"How many pictures, 1 to 10. Default 1."},{"name":"options","type":"object","required":false,"description":"Any other option from get_model's parameters schema."},{"name":"prompt","type":"string","required":true,"description":"What to make."},{"name":"return_image","type":"boolean","required":false,"description":"Also return the pictures themselves in the answer, so you can look at them."},{"name":"size","type":"string","required":false,"description":"Width x height, e.g. 1024x1024, when the model lists sizes."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":250},{"name":"generate_image","title":"Make an image","description":"Make pictures from a prompt. Spends from your balance; the answer carries the links and what it cost (usage.cost_usd).","inputs":[{"name":"aspect_ratio","type":"string","required":false,"description":"Shape, e.g. 16:9, when the model lists aspect ratios."},{"name":"max_cost","type":"number","required":false,"description":"The most you will pay in US dollars; a request that can cost more is refused before anything is spent."},{"name":"model","type":"string","required":true,"description":"An image model id."},{"name":"n","type":"integer","required":false,"description":"How many pictures, 1 to 10. Default 1."},{"name":"options","type":"object","required":false,"description":"Any other option from get_model's parameters schema."},{"name":"prompt","type":"string","required":true,"description":"What to make."},{"name":"return_image","type":"boolean","required":false,"description":"Also return the pictures themselves in the answer, so you can look at them."},{"name":"size","type":"string","required":false,"description":"Width x height, e.g. 1024x1024, when the model lists sizes."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":194},{"name":"get_job","title":"Get a job","description":"The status of a video or music job, its progress and, once it succeeded, the links to its files and what it cost.","inputs":[{"name":"job_id","type":"string","required":true,"description":"The job id start_video returned."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":49},{"name":"get_model","title":"Get a model","description":"One model: its price, what it makes and, for an image, video, music or speech model, a JSON Schema of the options a request takes (parameters).","inputs":[{"name":"model","type":"string","required":true,"description":"The model id, e.g. bytedance/seedance-2-0-fast-image-to-video."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":70},{"name":"list_models","title":"List models","description":"Models you can call right now, with their price. Filter by type (chat, image, video, music, speech, transcription) and by words in the id or name.","inputs":[{"name":"search","type":"string","required":false,"description":"Only models whose id or name contains these words, e.g. seedance or kling."},{"name":"type","type":"string","required":false,"description":"Only models of this type: chat, image, video, music, speech or transcription."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":92},{"name":"quote","title":"Quote a request","description":"Check an image, video, music or text-to-speech request against the model and price it, without making anything or spending. Returns the listed price (cost_usd: it is never billed more) and what is held while it runs (max_cost_usd).","inputs":[{"name":"model","type":"string","required":true,"description":"The model id."},{"name":"options","type":"object","required":false,"description":"The rest of the request, as get_model's parameters schema describes it, e.g. {\"duration_seconds\": 5, \"image_url\": \"https://...\"}."},{"name":"prompt","type":"string","required":false,"description":"What to make."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":122},{"name":"start_video","title":"Start a video","description":"Start making a video. Returns a job; call wait_job with its id until it is done. Spends from your balance when the video is made; a failed job costs nothing.","inputs":[{"name":"aspect_ratio","type":"string","required":false,"description":"e.g. 16:9, when the model lists aspect ratios."},{"name":"duration_seconds","type":"number","required":false,"description":"Length in seconds; one of the lengths get_model lists."},{"name":"end_image_url","type":"string","required":false,"description":"The last frame, for models that make a transition."},{"name":"idempotency_key","type":"string","required":false,"description":"Send the same key when you retry, so a retry never starts or pays for a second video."},{"name":"image_url","type":"string","required":false,"description":"The first frame (https:// link or data: URI); needed by image-to-video models."},{"name":"max_cost","type":"number","required":false,"description":"The most you will pay in US dollars; a job that can cost more is refused before anything is spent."},{"name":"model","type":"string","required":true,"description":"A video model id."},{"name":"options","type":"object","required":false,"description":"Any other option from get_model's parameters schema."},{"name":"prompt","type":"string","required":true,"description":"What to make."},{"name":"resolution","type":"string","required":false,"description":"e.g. 720p, when the model lists resolutions."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":245},{"name":"wait_job","title":"Wait for a job","description":"Wait until a video or music job ends, for at most timeout_seconds (50 at most). Returns the job; if done is false, call wait_job again.","inputs":[{"name":"job_id","type":"string","required":true,"description":"The job id start_video returned."},{"name":"timeout_seconds","type":"integer","required":false,"description":"How long to wait, 1 to 50 seconds. Default 50."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":78}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T00:02:19.000Z","track":"remote","endpoint":"https://api.uberllm.dev/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=api.uberllm.dev","issuer":"CN=YE2,O=Let's Encrypt,C=US","notBefore":"2026-10-21T02:18:46Z","notAfter":"2027-01-19T02:18:45Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=YE2,O=Let's Encrypt,C=US","issuer":"CN=Root YE,O=ISRG,C=US","notBefore":"2025-09-03T00:00:00Z","notAfter":"2028-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true},{"subject":"CN=Root YE,O=ISRG,C=US","issuer":"CN=ISRG Root X2,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true},{"subject":"CN=ISRG Root X2,O=Internet Security Research Group,C=US","issuer":"CN=ISRG Root X1,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"api.uberllm.dev.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"dev.","outcome":"verified","label":"Verified"},{"zone":"uberllm.dev.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"challenged_unvalidated","label":"Challenged, unverified","gate":"invoke","gateLabel":"On tool calls","status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"https_enforced","label":"HTTPS enforced","status":301},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-30","recent":[{"id":"chg_01a1a903-77a1-7897-93d6-52193a14bba5","kind":"check.reverified","summary":"Transport (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api#chg-chg_01a1a903-77a1-7897-93d6-52193a14bba5"},{"id":"chg_01a1a903-77a6-744b-aad2-31d09cae2c1b","kind":"check.reverified","summary":"Injection markers (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api#chg-chg_01a1a903-77a6-744b-aad2-31d09cae2c1b"},{"id":"chg_01a1a903-77a6-7b0e-b345-8f1621e070fc","kind":"check.reason","summary":"Authorization (Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token.)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api#chg-chg_01a1a903-77a6-7b0e-b345-8f1621e070fc"},{"id":"chg_01a1a903-77a7-703d-953d-d47d58d36ba5","kind":"check.appeared","summary":"First check of Judged manipulation (pass)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api#chg-chg_01a1a903-77a7-703d-953d-d47d58d36ba5"},{"id":"chg_01a1a903-77a9-7db9-8a74-9a4eb8cab851","kind":"check.reverified","summary":"MCP protocol (unverified → pass)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api#chg-chg_01a1a903-77a9-7db9-8a74-9a4eb8cab851"},{"id":"chg_01a1a903-77aa-74af-a7ab-087289707762","kind":"check.reverified","summary":"Tool coverage (unverified → 100)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api#chg-chg_01a1a903-77aa-74af-a7ab-087289707762"},{"id":"chg_01a1a903-77aa-7d5d-82fc-c5875fa49a5a","kind":"check.appeared","summary":"First check of Schema quality (fail)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api#chg-chg_01a1a903-77aa-7d5d-82fc-c5875fa49a5a"},{"id":"chg_01a1a903-77ad-7306-8147-4f082a5f87ba","kind":"check.appeared","summary":"First check of Destructive annotations (pass)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api#chg-chg_01a1a903-77ad-7306-8147-4f082a5f87ba"},{"id":"chg_01a1a903-77b0-749b-b8d7-439982da515c","kind":"check.appeared","summary":"First check of Schema quality (fail)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api#chg-chg_01a1a903-77b0-749b-b8d7-439982da515c"},{"id":"chg_01a1a903-77b3-734d-be1d-82038642ef76","kind":"check.appeared","summary":"First check of Schema quality (good)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api#chg-chg_01a1a903-77b3-734d-be1d-82038642ef76"},{"id":"chg_01a1a903-77b4-7d57-88b6-fc233e1317bd","kind":"check.appeared","summary":"First check of Tool coverage (100)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api#chg-chg_01a1a903-77b4-7d57-88b6-fc233e1317bd"},{"id":"chg_01a1a903-77b6-704e-9b45-13578ca5a97f","kind":"score.total_changed","summary":"Trust score (36 → 76)","materiality":"functional","direction":"improvement","scoreDelta":40,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api#chg-chg_01a1a903-77b6-704e-9b45-13578ca5a97f"},{"id":"chg_01a18afa-5217-70d6-94b8-c551089855cf","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/dev-uberllm-mcp/api#chg-chg_01a18afa-5217-70d6-94b8-c551089855cf"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/dev-uberllm-mcp/api/changelog.json"},"links":{"html":"https://verifymcp.io/servers/dev-uberllm-mcp/api","markdown":"https://verifymcp.io/servers/dev-uberllm-mcp/api.md","changelogJson":"https://verifymcp.io/servers/dev-uberllm-mcp/api/changelog.json","changelogRss":"https://verifymcp.io/servers/dev-uberllm-mcp/api.xml","external":[{"label":"Remote endpoint","href":"https://api.uberllm.dev/mcp"},{"label":"Repository","href":"https://github.com/PSA-Team-source/uberllm"},{"label":"Website","href":"https://uberllm.dev/docs/mcp"}]}}