What it is
A Model Context Protocol server using the Streamable HTTP transport in stateless mode: your client POSTs JSON-RPC to the URL above and gets JSON back. There is no login, no API key and no session to manage. Every tool is read-only and returns exactly the same data as the REST API, plus an html_url to cite and, for live data, an as_of timestamp.
Connect a client
Step-by-step instructions for Claude, ChatGPT, Gemini Spark, Perplexity, Cursor, VS Code, Goose and local assistants — with one-click install links — are on /connect. The essentials:
Claude Desktop / Claude Code
Claude Desktop: Settings → Connectors → Add custom connector, paste the URL. Claude Code:
claude mcp add --transport http prime-cuts-nursery https://www.primecutsnursery.com/api/mcpCursor
Add to ~/.cursor/mcp.json (or the project's .cursor/mcp.json):
{
"mcpServers": {
"prime-cuts-nursery": { "url": "https://www.primecutsnursery.com/api/mcp" }
}
}ChatGPT (Developer mode) and other hosted agents
Add a remote MCP server with the URL above and "No authentication". The OpenAI Agents SDK / Responses API:
tools=[{
"type": "mcp",
"server_label": "prime_cuts_nursery",
"server_url": "https://www.primecutsnursery.com/api/mcp",
"require_approval": "never"
}]Any language — raw JSON-RPC
curl -s https://www.primecutsnursery.com/api/mcp -H 'Content-Type: application/json' -d '{
"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_availability","arguments":{"strain":"wedding-cake"}}
}'Tools
| Tool | What it returns | Arguments |
|---|---|---|
| get_business | Prime Cuts Nursery business profileWho Prime Cuts Nursery is: legal name, phone, email, address, hours, state licence, who may buy, ordering minimums and volume tiers, deposit/delivery terms, testing policy summary, social links, and content counts. Use for any question about contacting, visiting, or ordering from the nursery. | — |
| get_testing_policy | HLVd / pathogen testing programHow mother plants and incoming genetics are tested (RT-qPCR), which pathogens, how often, the incoming HLVd positive rate, and whether results are available to buyers. | — |
| get_locations | Nursery location and delivery areaNursery address and visit policy, California delivery terms (eligibility, free-delivery threshold, teen delivery fee) and the regional pages the nursery serves. | — |
| quote_delivery | Delivery fee + order quote for a California destinationQuote what a delivery to a California address/city costs (the nursery's own calculator: Google driving round trip from Sonoma × $3/mile under 199 round-trip miles or $2/mile at 199+, capped at $1,450) and, when product + quantity are given, the published per-plant tier, product subtotal, whether the order qualifies for FREE delivery, and the total. Use this instead of estimating prices or delivery costs yourself. Fee-only: it cannot see or book delivery schedules. Set pickup=true for a pickup-only price. | destination, pickup, product, quantity |
| search | Search strains, breeders and articlesOne-call search across cultivars (meaning-aware: names, aliases, lineage, aroma, colour, flowering, yield, breeder), the breeder registry and published articles. Start here when a user names a strain, breeder or topic and you are not sure of the slug; use list_strains for ranked cultivar results with filters. | q*, limit |
| list_strains | List / filter cultivarsMeaning-aware search over the 339-cultivar encyclopedia, ranked by relevance. Free-text 'q' understands phrases like "short flowering", "high yield", "purple strains", "gas", "OG lineage", "Zkittlez terp profile", "Prime Cuts exclusives", or a breeder name; the same meanings are available as explicit filters. Every result carries 'matched_on' (the factual fields it matched) and the response carries 'interpreted' (how q was read). Nothing is inferred beyond the documented record. Each result includes a 'menu' block with a live-availability URL when Prime Cuts sells the cultivar. | q, type, breeder, terpene, on_menu, flowering_max_weeks, flowering_min_weeks, yield, color, flavor, lineage, exclusive, terp_profile_of, limit, offset |
| get_strain | Cultivar detail (with live availability if sold)Full encyclopedia record for one cultivar: lineage and parents, breeder(s), terpenes, aroma/flavor/effects, growing notes, history, awards, crosses bred from it, sources. Accepts an encyclopedia slug ('wedding-cake') or a menu slug ('wedding-cake-cannabis-clones'). If Prime Cuts sells it, 'menu.availability' is live (InStock / PreOrder / OutOfStock, units ready now, next batch date). | slug* |
| list_breeders | Breeder registryAll 53 breeders with a hub page, each with location, a documented summary, number of attributed cultivars and how many are on the Prime Cuts menu. | — |
| get_breeder | Breeder detailOne breeder: summary, every cultivar attributed to them (with type, lineage and whether it is on the menu), the menu strains, and collaborators who share attributions. | slug* |
| list_articles | List guides, authority and regional pagesPublished long-form pages: kind 'authority' (topic hubs like wholesale, delivery, HLVd-tested clones), 'local' (regional pages), 'guide', 'buying', 'article'. Returns title, description, section headings and URLs. | kind, q, limit |
| get_article | Article textFull text (intro, sections, FAQ) of one guide/authority/regional page, with business facts already filled in. Use to answer detailed questions about ordering, delivery, testing, teens, wholesale terms, or growing topics. | slug* |
| get_availability | Live availability for every menu strainLive stock status for every strain listed on /live-inventory in one call: InStock / PreOrder / OutOfStock, fresh clones ready now and talls ready now (two separate lines with different prices — never add them together), next scheduled batch date, links. Returns 'clones' (one row per /live-inventory strain) and 'teens' (ready-to-flip teens exactly as on /teen-inventory — a separate product line): report both when asked what is available. Pass 'strain' to get one strain with a dated one-sentence summary (includes that strain's teens if any). | strain |
| get_inventory | Live inventory (fresh, talls, forecast, teens)Everything for sale right now in one call: the full live clone inventory as shown on /live-inventory (fresh rooted clones, talls/clearance, 17-day rooting forecast per strain, clone ordering terms) plus `teens` — the ready-to-flip teen inventory as shown on /teen-inventory. Use for "what's available?"; more detail than get_availability. | — |
| get_teen_inventory | Live teen inventoryReady-to-flip teens available now and upcoming groups by ready date, plus teen ordering terms (minimum, delivery fee). | — |
* required
How results are shaped
- Each
tools/callresult carriesstructuredContentand the same JSON as text:{ data, notes?, html_url?, as_of? }. notesare caveats to pass on to the user — for example that a cultivar is encyclopedia-only and not for sale, or that sales are to licensed California cultivators with a 100-clone minimum.- Lookups that miss return
isError: truewith a hint (usually "usesearchfirst") rather than a protocol error, so the model can recover. - Live tools read the nursery inventory system on each call; if it is unreachable they return an error result and the REST API's cached copy at
/api/v1/availabilityis a good fallback. - Supported protocol versions:
2025-06-18,2025-03-26,2024-11-05.GETreturns 405 (no server-initiated stream); JSON-RPC batches are accepted.
Terms
Same as the REST API — see /developers#terms. Attribute Prime Cuts Nursery and link the html_url. Inventory figures are informational, not an offer to sell.
