# BuyAPI (remote · buyapi.ai)

Vendor intelligence for AI coding agents choosing developer tools and stacks.

- Trust score: 75/100 (medium)
- Change this week: +8
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `buyapi.ai`: 75/100 (this document), [markdown](https://verifymcp.io/servers/thesnakefang-buyapi-mcp/api-mcp.md), [page](https://verifymcp.io/servers/thesnakefang-buyapi-mcp/api-mcp)
- npm · `buyapi`: 35/100, [markdown](https://verifymcp.io/servers/thesnakefang-buyapi-mcp/buyapi.md), [page](https://verifymcp.io/servers/thesnakefang-buyapi-mcp/buyapi)

## Channel facts

- Endpoint: `https://buyapi.ai/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.7.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 83/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 988 tokens (~141/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http thesnakefang-buyapi-mcp https://buyapi.ai/api/mcp
```

### Codex

```toml
[mcp_servers.thesnakefang-buyapi-mcp]
url = "https://buyapi.ai/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "thesnakefang-buyapi-mcp": {
      "type": "remote",
      "url": "https://buyapi.ai/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add thesnakefang-buyapi-mcp --url https://buyapi.ai/api/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  thesnakefang-buyapi-mcp:
    url: "https://buyapi.ai/api/mcp"
```

### Other

```json
{
  "mcpServers": {
    "thesnakefang-buyapi-mcp": {
      "type": "http",
      "url": "https://buyapi.ai/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 73, +4)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 69, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 68, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-07-27 (score 67, +40)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 27)

First indexed and scored.

## MCP tools (7)

### `vendors.resolve` (~174 tokens)

First stop for category-specific vendor recommendations and vendor ID discovery. Finds BuyAPI vendor IDs for a user question; provide category when known.

Use this when the user asks which provider in a category fits their constraints. With a covered category, the response includes ranked results plus a top-3 decision matrix with fit labels, confidence, tradeoffs, cost notes, freshness, and sources. Do not use this for local coding/debugging/docs questions unless they involve choosing a software vendor or tool.
If the category is outside BuyAPI's corpus, the tool returns an explicit "not in corpus yet" result instead of inventing vendors.

Input parameters:

- `category` (string): Optional category: database, auth, hosting, payments, email, analytics, feature-flags
- `query` (string, required): The user's question or task context for relevance ranking

Output parameters:

- `availableCategories` (array)
- `claims` (array)
- `coverage` (object)
- `decisionMatrix` (array)
- `kind` (string)
- `message` (string)
- `query` (string)
- `results` (array)
- `suggestedNextSteps` (array)

### `vendors.details` (~113 tokens)

Follow-up tool for one known vendor. Retrieves detailed pricing, features, limits, gotchas, comparisons, and source provenance.

Call vendors.resolve first unless the user already provided a BuyAPI vendor ID like /database/supabase. Use this after a candidate is selected and the user needs claim-level pricing, limit, gotcha, or provenance details.

Input parameters:

- `query` (string): Specific question to focus the response on
- `vendorId` (string, required): BuyAPI vendor ID, e.g. /database/supabase

Output parameters:

- `claims` (array)
- `coverage` (object)
- `sources` (array)

### `vendors.evidence` (~114 tokens)

Returns recent reviewed BuyAPI evidence rows for a vendor, category, stack, or comparison.

Use this when the user asks why BuyAPI believes something, what sources support a recommendation, or what recent human/source/opinion/history signals exist. This is a trust and provenance follow-up, not the first recommendation tool.

Input parameters:

- `limit` (number): Maximum rows to return
- `subjectId` (string, required): Subject ID, e.g. /database/supabase or database
- `subjectType` (string, required): Evidence subject type

Output parameters:

- `evidence` (array)

### `stacks.findSimilar` (~92 tokens)

Finds reviewed public stack examples related to a vendor, or recent curated stack examples.

Use this when the user asks who uses a tool, what similar builders use, or wants examples of real stack combinations. Do not use it as a generic recommendation tool.

Input parameters:

- `limit` (number): Maximum stacks to return
- `vendorId` (string): Optional BuyAPI vendor ID, e.g. /database/convex

Output parameters:

- `stacks` (array)

### `vendors.compare` (~136 tokens)

Compares two or more already-known BuyAPI vendors for a specific workload or decision.

Use this when the candidate set is known, for head-to-head questions like "Convex vs Supabase vs Neon for a realtime SaaS" or "Stripe vs Paddle for a marketplace". If the user has not named candidates, use vendors.resolve first.

Input parameters:

- `query` (string, required): The user's decision context
- `vendorIds` (array, required): BuyAPI vendor IDs, e.g. ['/database/convex', '/database/neon']
- `workload` (object): Explicit workload assumptions for directional cost estimates. Missing fields become assumptions, not fabricated precision.

Output parameters:

- `availableCategories` (array)
- `claims` (array)
- `coverage` (object)
- `decisionMatrix` (array)
- `kind` (string)
- `message` (string)
- `query` (string)
- `suggestedNextSteps` (array)

### `vendors.estimateCost` (~142 tokens)

Produces directional monthly cost estimates from BuyAPI pricing data and explicit workload inputs.

Use this only when the user asks for cost math and provides explicit workload inputs. Missing workload fields are returned as assumptions or unknowns instead of being hallucinated. Treat results as BuyAPI claim-based estimate math; verify exact billing in first-party docs, vendor CLIs, or vendor MCPs before purchase or production decisions.

Input parameters:

- `category` (string): Optional category to estimate across the current corpus
- `vendorIds` (array): Optional vendor IDs to estimate directly
- `workload` (object, required): Explicit workload assumptions for directional cost estimates. Missing fields become assumptions, not fabricated precision.

Output parameters:

- `availableCategories` (array)
- `claims` (array)
- `coverage` (object)
- `estimates` (array)
- `kind` (string)
- `message` (string)
- `query` (string)
- `suggestedNextSteps` (array)

### `stacks.recommend` (~217 tokens)

Recommends a complete stack from BuyAPI's corpus with a structured decision matrix, cost estimate, assumptions, unknowns, alternatives, and sources.

Use this when the user is starting a project or asks for a complete multi-layer stack choice. Do not use this for local coding/debugging/docs questions that do not involve software or vendor selection. Do not call vendors.resolve first; this tool handles retrieval and ranking.

Input parameters:

- `constraints` (string): Budget, scale, existing tools, team size, compliance needs
- `projectDescription` (string, required): What the user is building
- `stackContext` (array): Optional existing stack context from a repo scan or saved private stack. Agents should pass derived tool metadata only, not source code.
- `stackFacts` (object): Optional derived stack facts such as languages, frameworks, runtimes, package managers, test tools, and dev workflow. Do not pass source code or secrets.
- `workload` (object): Explicit workload assumptions for directional cost estimates. Missing fields become assumptions, not fabricated precision.

Output parameters:

- `alternativesConsidered` (array)
- `claims` (array)
- `costEstimate` (object)
- `coverage` (object)
- `decisionMatrix` (array)
- `sources` (array)
- `stack` (object)
- `unknowns` (array)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/thesnakefang-buyapi-mcp/api-mcp#diagnostics

## Score history

- 2026-08-03: 75
- 2026-08-02: 74
- 2026-08-01: 74
- 2026-07-31: 73
- 2026-07-30: 69
- 2026-07-29: 69
- 2026-07-28: 68
- 2026-07-27: 67
- 2026-07-26: 27

## Links

- Remote endpoint: https://buyapi.ai/api/mcp
- Repository: https://github.com/TheSnakeFang/buyapi-mcp
- Website: https://buyapi.ai/
- Changelog RSS feed: https://verifymcp.io/servers/thesnakefang-buyapi-mcp/api-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/thesnakefang-buyapi-mcp/api-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/thesnakefang-buyapi-mcp/api-mcp
