Cannabis Regulatory Intelligence MCP Server
Enables querying cannabis testing limits, controlled substance schedules, and compliance requirements across US states, UN/EU, and Health Canada jurisdictions with source-linked data.
README
Roots by Benda — Cannabis Regulatory Intelligence MCP Server
Cannabis testing requirements, controlled substance scheduling, and compliance data in one MCP. Check US state-level testing limits (pesticides, heavy metals, microbials, solvents, potency), UN/EU controlled substance schedules, Health Canada cannabis rules, and novel psychoactive substance monitoring — all source-linked and free.
No equivalent consolidated cross-jurisdiction cannabis compliance MCP exists. This is the first.
Live endpoint: https://cannabis-mcp-server.rootsbybenda.workers.dev/mcp
SSE fallback: https://cannabis-mcp-server.rootsbybenda.workers.dev/sse
Tools
check_cannabis_testing
Look up cannabis testing limits by US state, test category, product type, or analyte. Returns pesticide, heavy metal, microbial, solvent, mycotoxin, potency, moisture, action-level, unit, and regulation-reference data.
state: "California", test_category: "heavy_metal"
→ Arsenic: 0.2 µg/g (inhalable), 1.5 µg/g (non-inhalable) — CA DCC 4 CCR §15723
Cadmium: 0.2 µg/g (inhalable), 0.5 µg/g (non-inhalable)
Lead: 0.5 µg/g (both categories)
Mercury: 0.1 µg/g (inhalable), 3.0 µg/g (non-inhalable)
8 limits found, all regulation-referenced
check_controlled_substance
Check whether a substance is controlled or scheduled under UN INCB narcotic schedules, EU drug-precursor controls, or EMCDDA/EUDA novel psychoactive-substance monitoring. Returns schedules, categories, synonyms, CAS numbers, and regulatory notes.
query: "psilocybin"
→ UN Schedule I (1971 Convention); CAS 520-52-5; Category: indole alkaloid;
Status: no accepted medical use (UN), breakthrough therapy (FDA, 2018)
check_cannabis_compliance
Check cannabis product compliance requirements for a US state or Health Canada product class. Returns jurisdiction-specific testing categories, analyte limits, product classes, units, and regulation sections.
jurisdiction: "Colorado", product_class: "concentrate"
→ Testing required: potency, residual solvents, heavy metals, microbials, mycotoxins
Per-analyte limits with regulation references (1 CCR 212-3)
search_cannabis_regulations
Search cannabis and controlled-substance regulatory data by keyword. Use for broad discovery across state testing limits, Health Canada cannabis rules, UN scheduling, EU precursors, and novel psychoactive substances.
query: "heavy metal"
→ matches across CA, CO, OR, WA state testing limits for Lead, Cadmium, Arsenic, Mercury
with action levels, units, and product-type distinctions per jurisdiction
Data
| Dataset | Records |
|---|---|
| US state cannabis testing requirements | 1,942 |
| Health Canada cannabis rules | 383 |
| UN INCB scheduled narcotic drugs | 154 |
| EU controlled precursor chemicals | 46 |
| EMCDDA/EUDA novel psychoactive substances | 41 |
100% source-traceability: every record links to state regulatory code, UN conventions, EU regulations, or Health Canada primary sources.
Sources: US state cannabis regulatory codes (CA BCC, CO MED, OR OLCC, WA LCB, and others), Health Canada Cannabis Regulations (SOR/2018-144), UN Single Convention on Narcotic Drugs (1961), UN Convention on Psychotropic Substances (1971), EU Regulation 273/2004 (drug precursors), EMCDDA Early Warning System.
Quick Start
Claude Desktop / Claude Code
Add to your MCP config:
{
"mcpServers": {
"roots-cannabis-regulatory": {
"url": "https://cannabis-mcp-server.rootsbybenda.workers.dev/sse"
}
}
}
Cursor / Windsurf / Zed
Use the Streamable HTTP endpoint:
https://cannabis-mcp-server.rootsbybenda.workers.dev/mcp
Rate Limits
Every caller receives full data; a 60 requests/minute abuse-prevention limit applies per IP.
Built With
- Cloudflare Workers + Agents SDK
- Cloudflare D1 (SQLite at the edge)
- Durable Objects (session-scoped rate limiting)
- Model Context Protocol (MCP)
Who Built This
Roots by Benda — regulatory intelligence platform built by Shahar Ben-David with Claude. Cannabis regulatory database assembled from primary sources across US state regulators, Health Canada, UN INCB, and EMCDDA.
- Website: rootsbybenda.com
- LinkedIn: Shahar Ben-David
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.