Agent Provider Depot
io.github.ethanhawkes-gif/agent-provider-depotethanhawkes-gifstreamable-httpv0.13.9Scanned
Dated picks, sourced pricing, and rescue/eval tools across 305 AI agent infrastructure providers.
18 tools: 15 change things and 3 only read.
- Reads private data · 0
- Reads text others write · 1
- Can send data out · 0
- 2 findings, 2 high
Anlyon alternative
15 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
18 tools
Changes things 15Claude Code: ask
answerTask 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.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote 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).
Annotations the server declares
- title: One-call answer (front door)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
audit_repoOne-call repository manifest auditor (< 3 KB): detects deprecated/trap npm/pip packages (@google/generative-ai, r2, bull, request, pinecone-client, mailgun-js), retired/overpriced …2 findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- High
The description refers to ".env".
What this check looks forMatched text
description: "...pt-4-0613, text-embedding-ada-002), and .env keys, mapping each to live Depot Picks."
- High
The input schema at properties.envVars.description refers to ".env.example".
What this check looks forMatched text
inputSchema.properties.envVars.description: "Env var names or .env.example lines, e.g. [SENDGRID_API_KEY, OPENAI_A..."
Description, as the server wrote it 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.
Annotations the server declares
- title: Audit repo dependencies & stack
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
bundleDecide + quote + free + failures for up to 10 JTBDs in one call.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Job bundle
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
changesCHANGELOG entries and rows with stored dates on or after since (YYYY-MM-DD).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it CHANGELOG entries and rows with stored dates on or after since (YYYY-MM-DD).
Annotations the server declares
- title: What changed since
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
checkFlags 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, conditio…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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).
Annotations the server declares
- title: Check a stack (CI gate)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
coverageBooleans per agent class need: hasPick, hasMatchingPrice, hasFree, hasCaseStudy.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Booleans per agent class need: hasPick, hasMatchingPrice, hasFree, hasCaseStudy. Optional q filters by classId, class name, or need jtbdId.
Annotations the server declares
- title: Coverage map
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
decideDepot Pick, runners-up, whenNotTopPick skip rule and cite string for one JTBD (compact < 4 KB by default; pass full=true for full plan tables).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Depot decision card
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
estimateMonthly cost per candidate for a workload from sourced plan limits (base + included + overage), with the arithmetic string, or null with a reason.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Workload cost with arithmetic
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
failuresAgent failure modes with how to detect each.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Agent failure modes with how to detect each.
Annotations the server declares
- title: Failure modes
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
freeSourced $0 / OSS rows whose jtbdIds list the job.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Sourced $0 / OSS rows whose jtbdIds list the job. Free never changes a pick.
Annotations the server declares
- title: Free resources for a job
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
freshnessHow old Depot's scores, prices and free rows are (ageDays vs staleAfterDays), the latest source re-check, and the stalest Depot Picks.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Freshness and stalest picks
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
kitOne kit for an agent class (coding, browser, voice, rag, eval-judge, …): picks, quotes, free rows, failures, studies.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it One kit for an agent class (coding, browser, voice, rag, eval-judge, …): picks, quotes, free rows, failures, studies.
Annotations the server declares
- title: Agent-class kit
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
quoteSourced SKUs for the Depot Pick and the cheapest SKU in the job's single native unit.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Sourced SKUs for the Depot Pick and the cheapest SKU in the job's single native unit. Input/output never blended; units never converted.
Annotations the server declares
- title: Job quote
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
stackTurn a multi-job task description into existing JTBD ids (deterministic alias match), plus guardrails from negated phrases and a bundle URL.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Turn a multi-job task description into existing JTBD ids (deterministic alias match), plus guardrails from negated phrases and a bundle URL.
Annotations the server declares
- title: Map a task to jobs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
stack_deltaZero-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…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Stateful stack heartbeat & delta
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 3Show 3 read-only tools
compareSide-by-side stored scores, job-unit price and free rows for 2–5 providers, optionally weighted for one JTBD.No findings
Why it is in this group
- The name "compare" says "compare": a word for reading.
Description, as the server wrote it Side-by-side stored scores, job-unit price and free rows for 2–5 providers, optionally weighted for one JTBD.
Annotations the server declares
- title: Compare providers
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
rescue_failureSearch-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…Reads text others writeNo findings
Why it is in this group
- The description's first verb is "search": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "search" and "http": it reads web pages, which anyone can write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Rescue runtime error or deprecated SKU
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
searchFull-text search across providers, JTBDs, free resources, failure modes, case studies, agent classes and benchmark tasks.No findings
Why it is in this group
- The name "search" says "search": a word for reading.
Description, as the server wrote it Full-text search across providers, JTBDs, free resources, failure modes, case studies, agent classes and benchmark tasks. Returns ids to pass to other tools.
Annotations the server declares
- title: Search Depot
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or outbound.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write1
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
- Highaudit_repo
The description refers to ".env".
What this check looks forMatched text
description: "...pt-4-0613, text-embedding-ada-002), and .env keys, mapping each to live Depot Picks."
- Highaudit_repo
The input schema at properties.envVars.description refers to ".env.example".
What this check looks forMatched text
inputSchema.properties.envVars.description: "Env var names or .env.example lines, e.g. [SENDGRID_API_KEY, OPENAI_A..."
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 0.13.9. Values in angle brackets are yours to fill in.
claude mcp add --transport http agent-provider-depot https://getagentdepot.com/api/mcpclaude mcp add --transport http agent-provider-depot https://getagentdepot.com/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__agent-provider-depot__search",
"mcp__agent-provider-depot__compare",
"mcp__agent-provider-depot__rescue_failure"
],
"ask": [
"mcp__agent-provider-depot__answer",
"mcp__agent-provider-depot__estimate",
"mcp__agent-provider-depot__stack",
"mcp__agent-provider-depot__decide",
"mcp__agent-provider-depot__quote",
"mcp__agent-provider-depot__bundle",
"mcp__agent-provider-depot__kit",
"mcp__agent-provider-depot__free",
"mcp__agent-provider-depot__failures",
"mcp__agent-provider-depot__coverage",
"mcp__agent-provider-depot__changes",
"mcp__agent-provider-depot__check",
"mcp__agent-provider-depot__freshness",
"mcp__agent-provider-depot__audit_repo",
"mcp__agent-provider-depot__stack_delta"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as agent-provider-depot. Review it before you use it.
Capability tags behind 1 rule
- mcp__agent-provider-depot__rescue_failure untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/io.github.ethanhawkes-gif/agent-provider-depot/verify?hash=29b9dc1c67a0fa370827031dd9a622fe4f18d75386312f14d4ae561411b08e91" | jq -e '.changed == false'Pinned hash 29b9dc1c67a0, from Oct 29, 2026, 00:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/io.github.ethanhawkes-gif/agent-provider-depot/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.github.ethanhawkes-gif/agent-provider-depot)Source: MCP Registry · repository. Synced Oct 29, 2026, 00:17 UTC.