BuyAPI CLI + MCP Server
Unbiased vendor intelligence for AI coding agents.
[Website]
[NPM Version]
[smithery badge]
[MIT licensed]
BuyAPI helps AI agents and developers make informed infrastructure decisions. When your agent needs to pick a database, auth provider, hosting platform, payment processor, email provider, or UI component system, BuyAPI provides current, structured, neutral vendor comparisons - not training data defaults.
Quick Start
Remote MCP (Recommended)
The hosted endpoint is the primary install path and exposes the current seven-tool contract.
[Install MCP Server in Cursor]
Add to your MCP client config:
This is the easiest path: the client connects directly to BuyAPI over HTTP, with no local process and no npm install.
CLI Setup
Run setup to install BuyAPI into your agent:
Bare npx buyapi opens an interactive setup flow. It asks which coding agent you use, installs the hosted MCP config by default, can add the /stack planning skill where supported, and can log you in for higher limits and stack sync.
Or target a client directly:
By default setup writes the hosted MCP URL. Use --local when a client needs a local stdio process:
Claude Code and Codex can also install the /stack planning workflow:
/stack inspects the local repo, asks for missing constraints, calls BuyAPI MCP for current vendor data, and returns a sourced Stack Decision Record. It does not sync scan data unless you explicitly ask it to.
If you use the CLI often and do not want to type npx, install it globally:
In an MCP client config, use the explicit mcp command. The client launches it as a local stdio server; you do not run it manually first:
Use the local path when an agent client does not support remote MCP URLs, or when you want the open-source local transport. Hosted MCP is still the recommended default. The older buyapi-mcp package is deprecated on npm so new users see one canonical package name.
Stack Scan And Sync
The CLI has a stack scanner. Plain scan prints a local preview first, then asks
whether to save the private stack when the terminal is interactive:
Run it from the app, package, or monorepo root that contains project signals
such as package.json, a lockfile, framework config, convex/, prisma/,
Python manifests, or source imports. You can also point it at a public GitHub
repo URL:
If no project signals are found, the CLI prints wrong-folder guidance instead
of silently returning an empty stack. Sync also skips stacks with zero known
BuyAPI tools unless you pass --allow-empty.
Use --verbose to see evidence and unknown package candidates found in
package.json:
For a guaranteed no-upload preview, use --dry-run. To save a private stack
without prompts in automation, login once, then sync:
Detection uses BuyAPI's own registry of manifest, marker-file, env-key,
config-content, import, framework, and language signals. Unknown runtime
packages are kept as candidates so the public tool register can learn about new
AI-native tools without copying third-party detection tables. Routine dev/build
tooling is filtered out before it reaches the review queue.
buyapi login opens the browser, signs in through the dashboard, creates a CLI API key, and stores it locally. You can still pass an existing key with buyapi login ba_live_... or use BUYAPI_API_KEY in CI. buyapi whoami --quiet exits 0 when a key is active and 1 when it is not. Sync uploads known detected tools plus filtered unknown package names, versions, and evidence so BuyAPI can review emerging tools. It does not upload source code, source file contents, or environment values.
scan is a human-facing CLI command, not an MCP tool. The MCP server should stay quiet on stdout because stdout carries the MCP protocol.
Read-Only CLI
The local package can query BuyAPI without starting an MCP client:
Use --json on read-only commands to print the raw structured response.
When To Use BuyAPI
Use BuyAPI when the question is a vendor or stack decision:
Use implementation docs tools such as Context7 after the decision is made and the agent needs exact APIs, code examples, or version-specific setup steps.
Tips For Better Answers
- Use BuyAPI vendor IDs when you know them, e.g.
/database/convex, /database/supabase, /hosting/vercel.
- Include workload numbers when asking about cost: users, monthly active users, email sends, storage, bandwidth, or monthly orders.
- Include constraints that matter: solo founder, B2B SaaS, HIPAA/SOC2 later, no credit card free tier, preview environments, realtime collaboration, or low lock-in.
- Ask for alternatives when you want tradeoffs, not just a single recommendation.
Common launch-corpus IDs:
Available Tools
vendors.resolve
Search for vendors by query. Category is optional. Returns matching vendors with pricing summaries, positioning, confidence, and explicit unknown-corpus fallbacks.
vendors.details
Get detailed vendor profile: concrete pricing numbers, free tier limits, scaling characteristics, known gotchas, source provenance, and head-to-head comparisons.
vendors.evidence
Fetch recent reviewed evidence rows for a vendor, category, stack, or comparison.
stacks.findSimilar
Find public stack profiles related to a vendor, or recent curated stack examples.
vendors.compare
Compare two or more specific vendors for a workload or decision.
vendors.estimateCost
Run deterministic cost estimates from explicit workload inputs instead of leaving math to the model.
stacks.recommend
Describe your project and get a complete stack recommendation with cost projections, a decision matrix, assumptions, unknowns, alternatives, and sources.
Use this for stack/vendor/tool decisions, not local implementation questions like CSS layout, TypeScript compiler errors, or framework API usage.
Setup by Client
Claude Code
Add to your Claude Code MCP settings:
Cursor
In Cursor Settings -> MCP Servers, add:
VS Code (Copilot)
Add to .vscode/mcp.json:
Windsurf
Add to your Windsurf MCP config:
Local (stdio)
API Keys
BuyAPI currently works without an API key at the anonymous rate limit. Signed-in users can create dashboard API keys for keyed access, usage analytics, and stack sync.
The local package reads either BUYAPI_API_KEY or the key stored by buyapi login:
CLI Reference
Common flags:
Covered Categories
How It Works
This MCP server is a thin TypeScript client that calls the BuyAPI backend API. It contains no vendor data; lightweight comparison and cost formatting mirrors the hosted endpoint while vendor intelligence is served from buyapi.ai.
The source is fully open so you can verify there's no prompt injection or hidden behavior. scan previews locally first and only uploads after explicit confirmation or --sync; --dry-run never uploads. Sync sends detected tool metadata, derived stack context, checked file names, repo URL metadata when provided, and filtered unknown package candidates for review. It does not send source code or environment values.
Data Transparency
- All vendor data is publicly viewable at buyapi.ai
- Every profile shows when it was last updated and data source
- BuyAPI does not accept payment from vendors for ranking influence
- Inaccurate-data reporting, suggested edits, reviews, and vendor-claim requests exist behind moderation; vendor self-service editing is not live.
Troubleshooting
- If your MCP client supports remote MCP URLs, use
https://buyapi.ai/api/mcp first.
- If remote MCP is not supported, configure the local stdio server with
command: "npx" and args: ["-y", "buyapi", "mcp"].
- Do not add banners or prompts to the stdio server command; stdout is reserved for MCP protocol messages.
- If anonymous rate limits are hit, create an API key in the BuyAPI dashboard and pass it as
BUYAPI_API_KEY where your client supports environment variables.
- If a tool or vendor is missing, ask BuyAPI anyway. Unknown requests are treated as demand signals for future corpus expansion.
Disclaimer
BuyAPI profiles combine first-party sources, manual review, public evidence, and structured estimates. Vendor data can become stale or incomplete, especially pricing and limits. Use BuyAPI as a decision-support layer, verify critical production commitments directly with the vendor, and report outdated facts through the website when the reporting flow is available.
License
MIT