streamable-httpupdated 8d ago
A type-safe MCP (Model Context Protocol) server that provides Amazon product data through the Canopy API. Built with xmcp and deployed on Cloudflare Workers.
Canopy API で何ができる?
Canopy API MCP Server
A type-safe MCP (Model Context Protocol) server that provides Amazon product data through the Canopy API. Built with xmcp and deployed on Cloudflare Workers.
Features
- 12 Amazon Data Tools — product info, variants, stock, sales, reviews, search, autocomplete, categories, sellers, authors, and deals
- Streamable HTTP transport at
/mcp(current MCP spec) - File-based tools — one file per tool under
src/tools/ - Type Safety — TypeScript types generated from the Canopy OpenAPI spec via
openapi-typescript - Flexible Auth — middleware accepts the API key in any of four header formats
- CORS Enabled — preflight + custom API key headers allowed
Quick Start
You'll need a Canopy API key from canopyapi.co.
npm install
npm run dev # xmcp watcher + wrangler dev (local Workers runtime)
npm run deploy # build + wrangler deploy --env production
Testing
Use the MCP Inspector and connect to http://localhost:8787/mcp (or your deployed URL). Provide the API key as a request header:
npx -y @modelcontextprotocol/inspector@latest
Or with curl:
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "CANOPY-API-KEY: $CANOPY_API_KEY" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
Authentication
The server requires a Canopy API key on every request. Any of these header forms works (checked in this order):
CANOPY-API-KEY: your-api-keyAPI-KEY: your-api-keyX-API-KEY: your-api-keyAuthorization: Bearer your-api-key
A missing key returns HTTP 401 with a JSON-RPC error before the request reaches the MCP transport (see src/middleware.ts).
Available Tools
Product Information
get_amazon_product— product details by ASIN, URL, or GTINget_amazon_product_variants— product variantsget_amazon_product_stock— stock level estimatesget_amazon_product_sales— sales estimates (weekly, monthly, annual)get_amazon_product_reviews— top product reviews
Search & Discovery
search_amazon_products— search with filters and sortingget_amazon_autocomplete— search term suggestionsget_amazon_deals— current deals
Categories
get_amazon_categories— root category taxonomyget_amazon_category— category details with products and subcategories
Entities
get_amazon_seller— seller information and product listingsget_amazon_author— author information and book listings
Project Structure
canopy-api-mcp/
├── src/
│ ├── tools/ # one file per tool (auto-discovered by xmcp)
│ │ ├── get-amazon-product.ts
│ │ └── ...
│ ├── lib/
│ │ └── api-key.ts # reads API key from extra.authInfo
│ ├── middleware.ts # auth middleware (lifts header → authInfo.token)
│ ├── api-client.ts # type-safe Canopy REST client
│ └── types/
│ └── api.d.ts # generated from OpenAPI
├── xmcp.config.ts # xmcp config (endpoint, CORS, paths)
├── wrangler.jsonc # Cloudflare Workers config
├── tsconfig.json
└── package.json
Type Safety
src/types/api.d.ts is generated from the Canopy OpenAPI spec. Regenerate when the API changes:
npm run generate
Scripts
npm run dev— xmcp watcher +wrangler dev(local Workers runtime)npm run build—xmcp build --cf(emitsworker.jsfor Cloudflare)npm run deploy— build +wrangler deploy --env productionnpm run delete— remove the deployed Workernpm run generate— regenerate API types from the OpenAPI spec
Migration from v1.x
v2.0 replaces ModelFetch with xmcp. The MCP endpoint moved from /sse/mcp (deprecated SSE transport mount) to /mcp (current Streamable HTTP convention). Update any clients accordingly.
Related
インストール
Canopy API をクライアントに追加します。お使いのものを選んでください。
claude mcp add --transport http canopy-api https://mcp.canopyapi.co/mcpcodex mcp add canopy-api --url https://mcp.canopyapi.co/mcp{
"mcpServers": {
"canopy-api": {
"url": "https://mcp.canopyapi.co/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"canopy-api": {
"type": "http",
"url": "https://mcp.canopyapi.co/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"canopy-api": {
"url": "https://mcp.canopyapi.co/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"canopy-api": {
"serverUrl": "https://mcp.canopyapi.co/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
スコア
39 / 100
情報不足
- ドキュメント25/25
- メンテナンス19/25
- 信頼性9/20
- 機能0/15
- 導入のしやすさ12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 0 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
バージョン履歴
| バージョン | 公開日 |
|---|---|
| 2.0.1最新 | 2026年8月31日 |
| 2.0.0 | 2026年8月31日 |