Dated picks, sourced pricing, and rescue/eval tools across 305 AI agent infrastructure providers.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Task in words → one part per job, each ≤1 KB: pick, runnerUp, the pick's own sourced price (or null + priceReason), free option, why; 'Depot doesn't cover X yet' when it doesn't. Optional stack context and volume (adds a plan-level monthly cost with a link to the arithmetic).
What you need, in words (max 1000 chars)
e.g. vercel
true: whole result ≤ 2 KB (pick, runner-up, sourced price, reversibility, disclosure, autoActOk, next call)
Comma-separated provider ids you already use
e.g. nextjs
Your monthly budget in USD for autoActOk
Max price age for autoActOk (default 30)
Tool list last changed Oct 29, 2026.
Task in words → one part per job, each ≤1 KB: pick, runnerUp, the pick's own sourced price (or null + priceReason), free option, why; 'Depot doesn't cover X yet' when it doesn't. Optional stack context and volume (adds a plan-level monthly cost with a link to the arithmetic).
| Argument | Type | Description |
|---|---|---|
| host | string | e.g. vercel |
| task* | string | What you need, in words (max 1000 chars) |
| sender | string | |
| volume | integer | |
| compact | boolean | true: whole result ≤ 2 KB (pick, runner-up, sourced price, reversibility, disclosure, autoActOk, next call) |
| pricing | string | |
| existing | string | Comma-separated provider ids you already use |
| framework | string | e.g. nextjs |
| maxMonthly | number | Your monthly budget in USD for autoActOk |
| noUsageBilling | boolean | |
| maxPriceAgeDays | integer | Max price age for autoActOk (default 30) |
{
"type": "object",
"required": [
"task"
],
"properties": {
"host": {
"type": "string",
"description": "e.g. vercel"
},
"task": {
"type": "string",
"description": "What you need, in words (max 1000 chars)"
},
"sender": {
"enum": [
"app",
"human"
],
"type": "string"
},
"volume": {
"type": "integer",
"minimum": 1
},
"compact": {
"type": "boolean",
"description": "true: whole result ≤ 2 KB (pick, runner-up, sourced price, reversibility, disclosure, autoActOk, next call)"
},
"pricing": {
"enum": [
"subscription"
],
"type": "string"
},
"existing": {
"type": "string",
"description": "Comma-separated provider ids you already use"
},
"framework": {
"type": "string",
"description": "e.g. nextjs"
},
"maxMonthly": {
"type": "number",
"minimum": 0,
"description": "Your monthly budget in USD for autoActOk"
},
"noUsageBilling": {
"type": "boolean"
},
"maxPriceAgeDays": {
"type": "integer",
"minimum": 0,
"description": "Max price age for autoActOk (default 30)"
}
}
}One-call repository manifest auditor (< 3 KB): detects deprecated/trap npm/pip packages (@google/generative-ai, r2, bull, request, pinecone-client, mailgun-js), retired/overpriced model SKUs (claude-3-5-sonnet-20240620, gpt-4-0613, text-embedding-ada-002), and .env keys, mapping each to live Depot Picks.
| Argument | Type | Description |
|---|---|---|
| models | array | Model IDs, e.g. [claude-3-5-sonnet-20240620, gpt-4-0613] |
| envVars | array | Env var names or .env.example lines, e.g. [SENDGRID_API_KEY, OPENAI_API_KEY] |
| packages | array | npm/pip package names, e.g. [@google/generative-ai, r2, nodemailer] |
| packageJson | object | Parsed package.json object with dependencies/devDependencies |
| requirementsTxt | string | Raw requirements.txt content |
{
"type": "object",
"properties": {
"models": {
"type": "array",
"items": {
"type": "string"
},
"description": "Model IDs, e.g. [claude-3-5-sonnet-20240620, gpt-4-0613]"
},
"envVars": {
"type": "array",
"items": {
"type": "string"
},
"description": "Env var names or .env.example lines, e.g. [SENDGRID_API_KEY, OPENAI_API_KEY]"
},
"packages": {
"type": "array",
"items": {
"type": "string"
},
"description": "npm/pip package names, e.g. [@google/generative-ai, r2, nodemailer]"
},
"packageJson": {
"type": "object",
"description": "Parsed package.json object with dependencies/devDependencies"
},
"requirementsTxt": {
"type": "string",
"description": "Raw requirements.txt content"
}
}
}Decide + quote + free + failures for up to 10 JTBDs in one call. compact=true for small context windows. maxUsd applies in each job's native unit; maxUnit restricts it to jobs priced in that unit.
| Argument | Type | Description |
|---|---|---|
| jtbd | string | Optional alias for jtbds (single or comma-separated JTBD ids) |
| jtbds | any | |
| maxUsd | number | |
| compact | boolean | |
| maxUnit | string | e.g. usd_per_million_input_tokens |
| constraints | string | comma list |
{
"type": "object",
"required": [],
"properties": {
"jtbd": {
"type": "string",
"description": "Optional alias for jtbds (single or comma-separated JTBD ids)"
},
"jtbds": {
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 1
},
{
"type": "string",
"description": "Comma-separated JTBD ids"
}
]
},
"maxUsd": {
"type": "number",
"minimum": 0
},
"compact": {
"type": "boolean"
},
"maxUnit": {
"type": "string",
"description": "e.g. usd_per_million_input_tokens"
},
"constraints": {
"type": "string",
"description": "comma list"
}
}
}CHANGELOG entries and rows with stored dates on or after since (YYYY-MM-DD).
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| since* | string | YYYY-MM-DD |
{
"type": "object",
"required": [
"since"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1
},
"since": {
"type": "string",
"description": "YYYY-MM-DD"
}
}
}Flags for each provider in a stack from stored data: unknown, deprecated, retired, source_degraded, stale_score, unreachable_source, price_not_on_page, not_listed_for_job, condition_failed, condition_unknown, maintenance_mode, retirement_announced (warning only; detail.retirement has the stored effective date and source). ok=false when a provider has a flag in failOn (default deprecated,retired). A provider Depot does not know is status unknown, not an error. require=[soc2,dpa,zdr] checks sourced security records (unknown when none).
| Argument | Type | Description |
|---|---|---|
| jobs | array | |
| failOn | array | |
| require | array | |
| providers* | array |
{
"type": "object",
"required": [
"providers"
],
"properties": {
"jobs": {
"type": "array",
"items": {
"type": "string"
}
},
"failOn": {
"type": "array",
"items": {
"type": "string"
}
},
"require": {
"type": "array",
"items": {
"enum": [
"soc2",
"dpa",
"zdr"
],
"type": "string"
}
},
"providers": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50
}
}
}Side-by-side stored scores, job-unit price and free rows for 2–5 providers, optionally weighted for one JTBD.
| Argument | Type | Description |
|---|---|---|
| jtbd | string | optional JTBD id |
| providers* | any |
{
"type": "object",
"required": [
"providers"
],
"properties": {
"jtbd": {
"type": "string",
"description": "optional JTBD id"
},
"providers": {
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"minItems": 2
},
{
"type": "string",
"description": "Comma-separated provider ids"
}
]
}
}
}Booleans per agent class need: hasPick, hasMatchingPrice, hasFree, hasCaseStudy. Optional q filters by classId, class name, or need jtbdId.
| Argument | Type | Description |
|---|---|---|
| q | string | Optional filter by classId, class name, or need jtbdId |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Optional filter by classId, class name, or need jtbdId"
}
}
}Depot Pick, runners-up, whenNotTopPick skip rule and cite string for one JTBD (compact < 4 KB by default; pass full=true for full plan tables). constraints is a comma list matched against whenNotTopPick.
| Argument | Type | Description |
|---|---|---|
| full | boolean | Return full plan tables and runtime route arrays (default false, compact < 4 KB) |
| jtbd* | string | JTBD id, e.g. coding-agent |
| constraints | string | comma list, optional |
{
"type": "object",
"required": [
"jtbd"
],
"properties": {
"full": {
"type": "boolean",
"description": "Return full plan tables and runtime route arrays (default false, compact < 4 KB)"
},
"jtbd": {
"type": "string",
"description": "JTBD id, e.g. coding-agent"
},
"constraints": {
"type": "string",
"description": "comma list, optional"
}
}
}Monthly cost per candidate for a workload from sourced plan limits (base + included + overage), with the arithmetic string, or null with a reason. workload: metric=value pairs or a bare number in the job's primary metric. List prices only; never changes a pick.
| Argument | Type | Description |
|---|---|---|
| jtbd* | string | Job id, e.g. transactional-email |
| workload | string | e.g. emails=20000 or mau=120k |
{
"type": "object",
"required": [
"jtbd"
],
"properties": {
"jtbd": {
"type": "string",
"description": "Job id, e.g. transactional-email"
},
"workload": {
"type": "string",
"description": "e.g. emails=20000 or mau=120k"
}
}
}Agent failure modes with how to detect each.
No arguments.
{
"type": "object",
"properties": {}
}Sourced $0 / OSS rows whose jtbdIds list the job. Free never changes a pick.
| Argument | Type | Description |
|---|---|---|
| jtbd | string | JTBD id |
| kind | string | optional free kind |
{
"type": "object",
"required": [],
"properties": {
"jtbd": {
"type": "string",
"description": "JTBD id"
},
"kind": {
"type": "string",
"description": "optional free kind"
}
}
}How old Depot's scores, prices and free rows are (ageDays vs staleAfterDays), the latest source re-check, and the stalest Depot Picks. Never re-scores.
| Argument | Type | Description |
|---|---|---|
| limit | integer |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 198,
"minimum": 1
}
}
}One kit for an agent class (coding, browser, voice, rag, eval-judge, …): picks, quotes, free rows, failures, studies.
| Argument | Type | Description |
|---|---|---|
| cost | any | |
| class* | string |
{
"type": "object",
"required": [
"class"
],
"properties": {
"cost": {
"enum": [
"free"
]
},
"class": {
"enum": [
"coding",
"research",
"browser",
"computer-use",
"voice",
"support",
"data-etl",
"rag",
"orchestrator",
"eval-judge",
"scheduled-ops",
"personal-assistant",
"sales-outreach",
"security-review",
"local-offline"
],
"type": "string"
}
}
}Sourced SKUs for the Depot Pick and the cheapest SKU in the job's single native unit. Input/output never blended; units never converted.
| Argument | Type | Description |
|---|---|---|
| jtbd* | string | JTBD id |
{
"type": "object",
"required": [
"jtbd"
],
"properties": {
"jtbd": {
"type": "string",
"description": "JTBD id"
}
}
}Search-at-failure interceptor (< 2 KB): resolves HTTP 429/402/529, Cloudflare 1020/WAF/robots.txt blocks, SDK import errors, wrong npm packages (r2), and deprecated model SKUs into an immediate fix and verified fallback route.
| Argument | Type | Description |
|---|---|---|
| q | string | Error message, HTTP status, or deprecated SKU (e.g. 429 Too Many Requests, claude-3-5-sonnet-20240620, npm install r2) |
| sku | string | Optional model or SKU string |
| jtbd | string | Optional job-to-be-done slug |
| provider | string | Optional provider slug experiencing failure |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Error message, HTTP status, or deprecated SKU (e.g. 429 Too Many Requests, claude-3-5-sonnet-20240620, npm install r2)"
},
"sku": {
"type": "string",
"description": "Optional model or SKU string"
},
"jtbd": {
"type": "string",
"description": "Optional job-to-be-done slug"
},
"provider": {
"type": "string",
"description": "Optional provider slug experiencing failure"
}
}
}Full-text search across providers, JTBDs, free resources, failure modes, case studies, agent classes and benchmark tasks. Returns ids to pass to other tools.
| Argument | Type | Description |
|---|---|---|
| q* | string | Query, e.g. 'vector db free' |
| limit | integer | |
| types | array |
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Query, e.g. 'vector db free'"
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"types": {
"type": "array",
"items": {
"enum": [
"provider",
"jtbd",
"free",
"failure",
"case_study",
"agent_class",
"benchmark_task",
"pack_job"
]
}
}
}
}Turn a multi-job task description into existing JTBD ids (deterministic alias match), plus guardrails from negated phrases and a bundle URL.
| Argument | Type | Description |
|---|---|---|
| task* | string | e.g. 'voice agent: STT + TTS + telephony' |
{
"type": "object",
"required": [
"task"
],
"properties": {
"task": {
"type": "string",
"description": "e.g. 'voice agent: STT + TTS + telephony'"
}
}
}Zero-IP retention heartbeat (< 1.5 KB): checks whether any watched provider or JTBD had a live health alert, price change, pick update, E3/E4 outcome receipt, or operational gotcha since YYYY-MM-DD.
| Argument | Type | Description |
|---|---|---|
| jtbds | string | Optional comma-separated JTBD slugs, e.g. transactional-email,web-scrape,serverless-postgres |
| since | string | YYYY-MM-DD of last check (defaults to 7 days ago) |
| providers | string | Comma-separated provider slugs, e.g. anthropic,resend,neon,cloudflare-workers,exa |
{
"type": "object",
"properties": {
"jtbds": {
"type": "string",
"description": "Optional comma-separated JTBD slugs, e.g. transactional-email,web-scrape,serverless-postgres"
},
"since": {
"type": "string",
"description": "YYYY-MM-DD of last check (defaults to 7 days ago)"
},
"providers": {
"type": "string",
"description": "Comma-separated provider slugs, e.g. anthropic,resend,neon,cloudflare-workers,exa"
}
}
}