agentdealsCAUTION
Catalogue of developer infrastructure free tiers, startup credits and pricing, with side-by-side vendor comparisons for hosting, databases and AI APIs. Website, JSON API and MCP server, read by coding agents choosing a stack.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://www.npmjs.com/package/agentdeals) [](https://www.npmjs.com/package/agentdeals)
An MCP server that aggregates free tiers, startup credits, and developer tool deals — so your AI agent (or you) can find the best infrastructure offers without leaving the workflow.
AgentDeals indexes pricing data from 1,400+ developer infrastructure vendors across 60 categories. Every entry carries the day we last read the vendor's own page, and how many of them a read confirmed inside the last 90 days is measured on the catalogue rather than asserted here — agentdeals.dev/api/freshness publishes that count, and every listing page states it over the set it lists. Available on npm for local use or as a hosted remote server. Connect any MCP-compatible client and search deals by keyword, category, or eligibility.
Live: agentdeals.dev
Free tiers for AI and LLM APIs: a dated, sourced list of 31 vendors, regenerated from the catalogue whenever a record moves. Every row carries the date we last read that vendor's own page and the URL we read it on, and the rows whose terms changed carry the terms they replaced.
Install
Option A: Claude Code Plugin (one-click)
Install AgentDeals in Claude Code with a single command:
claude plugin install robhunter/agentdeals
This auto-configures the remote MCP server — no local setup needed. All 4 tools and 6 prompt templates are immediately available.
Option B: Claude Desktop Extension (one-click)
Install AgentDeals directly in Claude Desktop — no configuration needed:
- Download the latest
agentdeals.mcpbfrom Releases - Double-click the file to install in Claude Desktop
b3a3a3f87ec7OBSERVED · 2026-10-10Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add agentdeals --env ANALYTICS_EXPORT_TOKEN=${ANALYTICS_EXPORT_TOKEN} --env GITHUB_TOKEN=${GITHUB_TOKEN} --env UPSTASH_REDIS_REST_TOKEN=${UPSTASH_REDIS_REST_TOKEN} -- npx -y [email protected]{
"mcpServers": {
"agentdeals": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"ANALYTICS_EXPORT_TOKEN": "${ANALYTICS_EXPORT_TOKEN}",
"GITHUB_TOKEN": "${GITHUB_TOKEN}",
"UPSTASH_REDIS_REST_TOKEN": "${UPSTASH_REDIS_REST_TOKEN}"
}
}
}
}Exposed tools (12)
12 read · 0 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
AgentDeals | read | An index of ${catalogue.offers.toLocaleString( |
check-pricing-changes | read | Check what developer tool pricing has changed recently |
compare-options | read | Compare two or more services side-by-side |
compare_vendors | read | |
cost-audit | read | Audit an existing stack for cost savings |
find-startup-credits | read | Find startup credit programs and special eligibility offers |
get_referral_code | read | |
monitor-vendor-changes | read | Monitor pricing changes for vendors you depend on |
new-project-setup | read | Find free tiers for a new project |
plan_stack | read | |
search_deals | read | |
track_changes | read |
Trust audit
CAUTIONgrade F · trust 54/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | WARN |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (12 observation(s))
- Shell
- declared (5 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
badge-subjects.js
checkTrue("server instructions carry the beacon", /Telling us what you recommended/.test(initText));description: "The attribution beacon. Tell us which vendor from one of our responses you named in your answer, and whether your user went on to sign up. No authentication. What we record is the vendor
const base = process.env.BASE ?? "http://127.0.0.1:8791";
console.error("usage: BASE=http://127.0.0.1:PORT node scripts/census-1147.mjs <out.json>");env: { ...process.env, PORT: "0", BASE_URL: "http://127.0.0.1", TZ: "UTC" },const base = `http://127.0.0.1:${port}`;const base = `http://127.0.0.1:${port}`;const TOKEN = "e2e-analytics-token-0123456789";
const unknown = await sessionB.call("get_referral_code", { vendor: "Railway", api_key: "agd_this_key_was_never_issued" });const SECRET = "e2e-1164-platform-secret";
const TOKEN = "0123456789abcdef0123";
published-files.ts
signal.test.ts
.mcpbignore
const label = new Function(`${constants.map((m) => m[0]).join("\n")}\n${labeller![0]}\nreturn changeEntryDateLabel;`)();return new Function(`${constants.map((m) => m[0]).join("\n")}\n${labeller![0]}\nreturn changeEntryDateLabel;`)();renderView = new Function("document", `${afterConnect}\nreturn render;`)(documentStub);return new Function("document", `${afterConnect}\nreturn render;`)(documentStub);exec(cmd: string, args: unknown[]): unknown {const pathFor = (url) => join(cacheDir, `${createHash("sha1").update(url).digest("hex")}.json`);const cachePath = (url) => join(cacheDir, `${createHash("sha1").update(url).digest("hex")}.json`);join(cacheDir ?? "", `${createHash("sha1").update(url).digest("hex")}.json`);join(cacheDir ?? "", `${createHash("sha1").update(url).digest("hex")}.json`);const cachePath = (url) => join(cacheDir, `${createHash("sha1").update(url).digest("hex")}.json`);Gates applied: no_behavioural_pass.
b3a3a3f87ec7full audit observations/trust-audit/mcp-server/robhunter__agentdeals.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-10 | b3a3a3f87ec7 | CAUTION | F | 54 | first audit |
Questions
What is the agentdeals MCP server?
Catalogue of developer infrastructure free tiers, startup credits and pricing, with side-by-side vendor comparisons for hosting, databases and AI APIs. Website, JSON API and MCP server, read by coding agents choosing a stack.
What tools does agentdeals expose?
12 in total: 12 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is agentdeals safe to connect to an agent?
With care. The audit graded it F (54/100) and found 25 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does agentdeals need?
It reads ANALYTICS_EXPORT_TOKEN, GITHUB_TOKEN and UPSTASH_REDIS_REST_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does agentdeals run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as agentdeals at 0.3.1.
How current is this page?
The grade is for one exact copy of the source (b3a3a3f87ec7), read on 2026-10-10. The repository is watched and re-audited when it changes.