marketplace-intel
v0.1.0
Published
MCP server: search and compare cloud-marketplace listings and pricing. Azure Marketplace catalog search + AWS Marketplace listing extraction, keyless. Honest about what each catalog exposes.
Maintainers
Readme
marketplace-intel
MCP server for cloud-marketplace search, listings, and pricing comparison — built for AI agents doing competitive intelligence, pricing research, or marketplace operations. From the team that runs 130+ listings across Azure, AWS, and OCI.
- Keyless & local. Public endpoints only, fetched from your machine.
- Zero telemetry.
- Honest per-catalog capability — every comparison reports which catalogs were searched and which were skipped, with reasons. No silent gaps.
Install
{
"mcpServers": {
"marketplace-intel": { "command": "npx", "args": ["-y", "marketplace-intel"] }
}
}Node ≥ 20. No accounts, no API keys.
Tools
| Tool | What it does |
|---|---|
| azure_search | Full Azure Marketplace catalog search (name substring/prefix, publisher, offer type) via the public catalog API. Case-variant expansion built in — the raw endpoint is case-sensitive. |
| azure_offer | One offer by bigId: plans and any exposed pricing. |
| aws_listing | Extracts title, seller, description, and price points from an AWS listing page (prodview-… id or URL). Server-rendered data only, flagged as page-extraction. |
| compare | Cross-marketplace table for an app: full Azure search + AWS rows for prodview ids you supply, plus an explicit catalogs_skipped map. |
What each catalog actually exposes (v0.1 truth table)
| Catalog | Search | Listing detail | Pricing | Why | |---|---|---|---|---| | Azure | ✅ full | ✅ | ✅ where the catalog exposes plans | public catalog API | | AWS | ❌ | ✅ by known id | ⚠ price points via page extraction | Discovery API is auth-gated; search pages are client-rendered; product pages ARE server-rendered | | GCP | ❌ | — | — | catalog API is partner-gated (roadmap) | | OCI | ❌ | — | — | Oracle retired the public catalog API in 2026; the new site is an opaque SPA (roadmap) |
We ship the truth table instead of pretending: if a tool can't see a catalog, the response says so and why.
Example
compare { app: "keycloak", aws_prodviews: ["prodview-yo4upnevznpnk"] }
→ rows: 12 Azure offers (publishers, offer types, pricing models)
+ 1 AWS listing (seller, price points)
catalogs_skipped: { aws_search: "...", gcp: "...", oci: "..." }Development
npm install && npm run build
npm test # offline unit tests
npm run smoke # live catalog smoke
npm run e2e # real MCP client ↔ server over stdioLicense
Apache-2.0. © Derek Coleman & Associates Inc. Not affiliated with Microsoft, Amazon, Google, or Oracle; catalog names are used factually.
