AIDEVELOPER TOOLS

Cannabis Regulatory Intelligence MCP Server

Cannabis regulatory intelligence for AI agents — this MCP server gives your Claude, GPT, or custom AI agent live access to cannabis compliance data across all 50 US states. It is built for multi-state operators, cannabis investors, compliance attorneys, and ancillary service providers who need structured, scored regulatory answers, not raw document dumps.

Try on Apify Store
$0.10per event
1
Users (30d)
12
Runs (30d)
90
Actively maintained
Maintenance Pulse
$0.10
Per event

Maintenance Pulse

90/100
Last Build
Today
Last Version
1d ago
Builds (30d)
8
Issue Response
N/A

Cost Estimate

How many results do you need?

assess_state_regulatory_risks
Estimated cost:$10.00

Pricing

Pay Per Event model. You only pay for what you use.

EventDescriptionPrice
assess_state_regulatory_riskFederal Register + Congress + CFPB + website monitoring.$0.10
track_federal_cannabis_policyRescheduling bills + DEA/HHS activity + economics.$0.08
verify_cannabis_entityOpenCorporates + CFPB multi-state check.$0.08
analyze_market_viabilityBLS + FRED + legislative favorability.$0.08
monitor_state_enforcementEnforcement actions + complaints + website changes.$0.08
score_mso_portfolio_riskMulti-state operator compliance exposure map.$0.12
generate_regulatory_briefingAll 7 sources, 4 scoring models, FAVORABLE/DO_NOT_ENTER verdict.$0.30

Example: 100 events = $10.00 · 1,000 events = $100.00

Connect to your AI agent

Add this MCP server to Claude Desktop, Cursor, Windsurf, or any MCP-compatible client.

MCP Endpoint
https://ryanclinton--cannabis-regulatory-intelligence-mcp.apify.actor/mcp
Claude Desktop Config
{
  "mcpServers": {
    "cannabis-regulatory-intelligence-mcp": {
      "url": "https://ryanclinton--cannabis-regulatory-intelligence-mcp.apify.actor/mcp"
    }
  }
}

Documentation

Cannabis regulatory intelligence for AI agents — this MCP server gives your Claude, GPT, or custom AI agent live access to cannabis compliance data across all 50 US states. It is built for multi-state operators, cannabis investors, compliance attorneys, and ancillary service providers who need structured, scored regulatory answers, not raw document dumps.

The server orchestrates 7 federal data sources in parallel: Federal Register rulemakings, congressional legislation, OpenCorporates entity registries, BLS employment data, FRED economic indicators, CFPB consumer complaints, and website change monitoring for state agency portals. Four scoring models synthesize these signals into numeric scores and a final FAVORABLE / PROCEED_WITH_CAUTION / HIGH_RISK / DO_NOT_ENTER verdict — delivered in seconds, at $0.045 per tool call.

What data can you access?

Data PointSourceExample
📋 Federal cannabis rulemakings and DEA/HHS enforcement actionsFederal Register"DEA Proposed Rule: Cannabis Scheduling Review — comment period open"
🏛️ Cannabis legislation status (SAFE Banking, MORE Act, rescheduling bills)Congress Bill Search"SAFER Banking Act — advanced past Senate Banking Committee"
🏢 Business entity registrations, corporate structure, dissolved entitiesOpenCorporates"Veridian Holdings LLC — registered in CO, AZ, MI, NJ, FL (3 inactive)"
👷 State employment rates, wage levels, consumer spending capacityBLS Economic Data"IL leisure/hospitality employment: 594K — wages up 4.2% YoY"
📊 GDP, consumer spending, state cannabis tax revenueFRED Economic Data"CO GDP: $422B — cannabis excise tax: $282M"
🔔 State cannabis agency website policy updates and licensing changesWebsite Change Monitor"CO MED licensing portal updated — new dispensary cap rules"
📩 Financial services consumer complaints tied to cannabis entitiesCFPB Complaints"14 complaints against Green Leaf Financial Services"
🔢 State regulatory risk score (0-100) with risk level labelComposite scoring modelscore: 72, riskLevel: "HIGH"
📈 Federal rescheduling momentum score (0-100)Congressional + DEA signalsmomentum: "BUILDING", score: 54
🗺️ MSO compliance exposure score (0-100) across all jurisdictionsMulti-jurisdiction mappingexposureLevel: "ELEVATED", jurisdictionCount: 8
✅ Market viability score (0-100) with viability levelBLS + FRED + legislative signalsviabilityLevel: "ATTRACTIVE", score: 68
🟡 Composite regulatory briefing with final verdictAll 4 models weightedverdict: "PROCEED_WITH_CAUTION", compositeScore: 61

Why use Cannabis Regulatory Intelligence MCP Server?

Cannabis compliance research is expensive, fragmented, and time-consuming. A compliance analyst manually checking the Federal Register, Congress.gov, OpenCorporates, BLS, FRED, CFPB, and individual state agency sites for a single entity takes 3-4 hours — and that work becomes stale within days as the regulatory environment shifts. Multiplied across an MSO portfolio or a fund's target states, the cost is prohibitive.

This MCP server automates the entire process. Connect it once to your AI agent, and every query about state risk, federal policy direction, entity verification, or market viability runs against live data from 7 government sources simultaneously — with scoring, signals, and recommendations included in the response.

  • Scheduling — run weekly compliance briefings for your entire portfolio using Apify's built-in scheduling, with no manual intervention
  • API access — trigger regulatory queries from Python, JavaScript, or any HTTP client via the Apify API or direct MCP endpoint
  • Proxy rotation — all downstream data queries use Apify's proxy infrastructure, so no federal data source ever throttles your requests
  • Monitoring — receive Slack or email alerts when a run produces a HIGH_RISK or DO_NOT_ENTER verdict, or when a run fails unexpectedly
  • Integrations — route results to Zapier, Make, Google Sheets, HubSpot, or any webhook endpoint for compliance workflow automation

Features

  • 7 parallel data sources — Federal Register, Congress, OpenCorporates, BLS, FRED, CFPB, and Website Change Monitor queried simultaneously using Promise.allSettled(), not sequentially
  • Fault-tolerant orchestration — a failed individual source returns an empty array to the scoring model rather than blocking the entire response; tool calls never hang on a single slow upstream
  • State Regulatory Risk Score (0-100) — bounded sub-scores: Federal Register enforcement actions (max 35 pts), congressional activity (max 25 pts), CFPB complaints (max 20 pts), and regulatory website changes (max 20 pts)
  • Federal Rescheduling Momentum Model — scores DEA/HHS rulemaking volume, congressional rescheduling bills (SAFE Banking, MORE Act, STATES Act), advanced bill status, and FRED cannabis tax revenue data; returns STALLED / SLOW / BUILDING / STRONG / IMMINENT
  • MSO Compliance Exposure Map — multi-jurisdiction corporate structure analysis using OpenCorporates: counts entities, jurisdictions, dissolved/inactive entities, and flags presence in states where cannabis remains federally illegal, using a hardcoded 3-tier state classification (22 recreational-legal, 13 medical-only, 10 illegal)
  • Market Entry Viability Score (0-100) — positive signal model combining BLS employment and wage strength (max 30 pts), FRED GDP and consumer indicators (max 30 pts), legislative favorability score (max 25 pts), and market openness (max 15 pts)
  • Composite regulatory briefing — all 4 models combined with weighted coefficients: market viability 30% + federal momentum 20% + state risk inverted 25% + MSO exposure inverted 25%
  • Override logic for extreme risk — the briefing automatically downgrades to DO_NOT_ENTER when MSO exposure reaches CRITICAL or state regulatory risk reaches EXTREME, regardless of composite arithmetic
  • Automated actionable recommendations — guidance generated from score thresholds: when to engage state cannabis counsel, when to monitor federal rescheduling, when to conduct a multi-state compliance audit
  • Market segment filtering — all relevant tools accept an optional market parameter to scope queries to recreational, medical, or hemp segments
  • Spending limit protection — every tool call checks Actor.charge() before querying; returns a structured error if the per-run budget is exceeded without consuming credits for a failed call
  • MCP-native transport — uses @modelcontextprotocol/sdk v1.12.1 with StreamableHTTPServerTransport over persistent HTTP; compatible with Claude Desktop, Cursor, Windsurf, Cline, and any standards-compliant MCP client
  • Apify Standby mode — runs persistently on the actor-assigned port with no cold start on each query, keeping latency low for high-frequency compliance monitoring workflows

Use cases for cannabis regulatory intelligence

Multi-state operator compliance management

Cannabis MSOs operating in 5+ states face a compliance burden that compounds with each new license. Regulatory changes in one state can trigger cascading reporting requirements in others, and dissolved subsidiaries left uncleaned create ongoing exposure. Use score_mso_portfolio_risk to map every registered entity across OpenCorporates, surface dissolved entities, and flag operations in states where cannabis legality is uncertain. Schedule weekly to catch new enforcement actions before your next board meeting.

Cannabis investment due diligence

Private equity firms, family offices, and cannabis-focused funds use analyze_market_viability to score target states before capital deployment — checking BLS employment strength, FRED GDP and consumer spending capacity, and the legislative environment for favorable policy trends. Combine with verify_cannabis_entity to validate that an acquisition target's corporate structure matches what is disclosed in the pitch deck, checking entity count, jurisdiction coverage, and inactive registrations against public records.

Compliance attorney workflow automation

Regulatory attorneys tracking SAFE Banking, the MORE Act, or DEA rescheduling activity use track_federal_cannabis_policy to get a scored momentum reading from live congressional and Federal Register data rather than manually scanning Congress.gov and the Federal Register daily. Pair with monitor_state_enforcement to track enforcement actions and complaint patterns for specific clients and provide early warning before a regulatory escalation.

Cannabis market entry analysis

Ancillary service providers — POS software vendors, security firms, packaging suppliers, financial institutions considering cannabis banking — use analyze_market_viability before committing to a new state market. The BLS employment and wage signals indicate whether consumer spending capacity supports a viable cannabis retail market, while the legislative favorability score identifies states where market conditions are improving.

Regulatory briefing generation for boards and investors

Use generate_regulatory_briefing to produce a complete compliance memo for a named entity or state market in a single API call. The output includes all four sub-scores, all signals, a composite score, a final verdict, and actionable recommendations — structured JSON that maps directly into a board presentation or investor update without further manual formatting.

Enforcement and complaint monitoring

Compliance managers at plant-touching operators use monitor_state_enforcement with a specific entity name to detect whether their company or a competitor appears in Federal Register enforcement actions or CFPB complaint data. Early detection of complaint patterns allows proactive response before a formal regulatory escalation.

How to use cannabis regulatory intelligence in your AI agent

  1. Connect the MCP server — Add the server URL to your AI client's MCP configuration. For Claude Desktop, paste the endpoint URL into your claude_desktop_config.json under mcpServers. For Cursor or Windsurf, add it in the MCP settings panel. No code required.
  2. Ask a natural-language question — Type "What is the regulatory risk score for California recreational cannabis?" or "Generate a full briefing for Curaleaf in Florida." Your AI agent selects the right tool and formats the input automatically.
  3. Review structured scores and signals — The response includes numeric scores, risk level labels, specific signals (e.g., "5 enforcement actions — active regulatory crackdown"), and actionable recommendations.
  4. Export or act on results — Copy the JSON to a compliance tracker, trigger a webhook to push HIGH_RISK verdicts to your legal team in Slack, or schedule a weekly automated run via Apify's scheduling interface.

MCP tools

ToolPriceDescription
assess_state_regulatory_risk$0.045State risk score (0-100): Federal Register rules, enforcement actions, CFPB complaints, regulatory website changes. Returns riskLevel: LOW to EXTREME.
track_federal_cannabis_policy$0.045Federal policy tracking: rescheduling bills, DEA/HHS activity, SAFE Banking status, FRED economic data. Returns momentum: STALLED to IMMINENT.
verify_cannabis_entity$0.045Entity verification: corporate structure, multi-state registrations, inactive entities, CFPB complaints. Returns MSO compliance exposure score.
analyze_market_viability$0.045Market viability by state: BLS employment, FRED GDP, legislative favorability. Returns viabilityLevel: NON_VIABLE to PRIME.
monitor_state_enforcement$0.045Enforcement monitoring: Federal Register penalties, CFPB complaints, regulatory website changes for a state or named entity.
score_mso_portfolio_risk$0.045MSO portfolio risk: multi-jurisdiction compliance exposure, dissolved entities, illegal-state presence, structural opacity. Returns exposureLevel.
generate_regulatory_briefing$0.045Full briefing: all 7 sources, all 4 scoring models, composite score, FAVORABLE / PROCEED_WITH_CAUTION / HIGH_RISK / DO_NOT_ENTER verdict.

Tool parameters

ToolParameterTypeRequiredDescription
assess_state_regulatory_riskstatestringYesUS state name or abbreviation (e.g., "California", "CO")
assess_state_regulatory_riskmarketstringNoMarket segment: recreational, medical, or hemp
track_federal_cannabis_policytopicstringNoSpecific policy topic: rescheduling, banking, interstate commerce
verify_cannabis_entityentitystringYesCannabis company or MSO name
verify_cannabis_entityjurisdictionstringNoState or jurisdiction filter to narrow entity search
analyze_market_viabilitystatestringYesUS state or region
analyze_market_viabilitymarketstringNoMarket segment: recreational, medical, or hemp
monitor_state_enforcementstatestringNoState to monitor; omit for a national enforcement scan
monitor_state_enforcemententitystringNoSpecific entity name to track alongside state monitoring
score_mso_portfolio_riskmsostringYesMulti-state operator name
generate_regulatory_briefingentitystringYesCannabis company, MSO, or state market name
generate_regulatory_briefingstatestringNoUS state for market context within the briefing

Tool call examples

Score state regulatory risk for a specific market segment:

{
  "tool": "assess_state_regulatory_risk",
  "arguments": {
    "state": "California",
    "market": "recreational"
  }
}

Track federal rescheduling momentum:

{
  "tool": "track_federal_cannabis_policy",
  "arguments": {
    "topic": "rescheduling"
  }
}

Generate a full regulatory briefing for an MSO:

{
  "tool": "generate_regulatory_briefing",
  "arguments": {
    "entity": "Pinnacle Cannabis Group",
    "state": "Illinois"
  }
}

Output example

Representative response from generate_regulatory_briefing for a mid-size multi-state operator:

{
  "entity": "Pinnacle Cannabis Group",
  "compositeScore": 61,
  "verdict": "PROCEED_WITH_CAUTION",
  "stateRegulatoryRisk": {
    "score": 44,
    "regulationCount": 8,
    "enforcementActions": 2,
    "complaintCount": 7,
    "riskLevel": "ELEVATED",
    "signals": [
      "2 enforcement actions — active regulatory crackdown",
      "7 consumer complaints — compliance friction"
    ]
  },
  "federalRescheduling": {
    "score": 58,
    "billCount": 4,
    "regulationCount": 2,
    "momentum": "BUILDING",
    "signals": [
      "4 rescheduling/legalization bills in Congress",
      "2 DEA/HHS rescheduling-related regulations"
    ]
  },
  "msoCompliance": {
    "score": 38,
    "entityCount": 11,
    "jurisdictionCount": 6,
    "inactiveEntities": 3,
    "exposureLevel": "ELEVATED",
    "signals": [
      "Operations across 6 jurisdictions — complex multi-state compliance",
      "3 dissolved/inactive entities — corporate housekeeping issues"
    ]
  },
  "marketViability": {
    "score": 68,
    "economicStrength": 22,
    "employmentGrowth": 21,
    "viabilityLevel": "ATTRACTIVE",
    "signals": [
      "Strong employment and wage indicators — robust consumer market",
      "2 favorable cannabis bills — legislative tailwind"
    ]
  },
  "allSignals": [
    "2 enforcement actions — active regulatory crackdown",
    "7 consumer complaints — compliance friction",
    "4 rescheduling/legalization bills in Congress",
    "2 DEA/HHS rescheduling-related regulations",
    "Operations across 6 jurisdictions — complex multi-state compliance",
    "3 dissolved/inactive entities — corporate housekeeping issues",
    "Strong employment and wage indicators — robust consumer market",
    "2 favorable cannabis bills — legislative tailwind"
  ],
  "recommendations": [
    "Monitor federal rescheduling — may unlock banking and interstate commerce",
    "Conduct state-by-state compliance audit for multi-state operations",
    "Clean up inactive corporate entities before regulatory review"
  ]
}

Output fields

FieldTypeDescription
entitystringThe entity name or state market queried
compositeScorenumber0-100 weighted composite score: viability 30% + federal momentum 20% + state risk inverted 25% + MSO exposure inverted 25%
verdictstringFAVORABLE / PROCEED_WITH_CAUTION / HIGH_RISK / DO_NOT_ENTER
stateRegulatoryRisk.scorenumber0-100 state regulatory risk score
stateRegulatoryRisk.regulationCountnumberTotal Federal Register entries found
stateRegulatoryRisk.enforcementActionsnumberCount of enforcement/penalty actions in Federal Register
stateRegulatoryRisk.complaintCountnumberCFPB consumer complaint count
stateRegulatoryRisk.riskLevelstringLOW / MODERATE / ELEVATED / HIGH / EXTREME
stateRegulatoryRisk.signalsarrayHuman-readable descriptions of the signals driving the risk score
federalRescheduling.scorenumber0-100 rescheduling momentum score
federalRescheduling.billCountnumberCount of rescheduling/legalization bills found in Congress
federalRescheduling.regulationCountnumberDEA/HHS rescheduling-related Federal Register entries
federalRescheduling.momentumstringSTALLED / SLOW / BUILDING / STRONG / IMMINENT
federalRescheduling.signalsarrayCongressional and regulatory momentum signal descriptions
msoCompliance.scorenumber0-100 MSO compliance exposure score
msoCompliance.entityCountnumberTotal corporate entities found in OpenCorporates
msoCompliance.jurisdictionCountnumberCount of distinct jurisdictions across all entities
msoCompliance.inactiveEntitiesnumberCount of dissolved or inactive corporate entities
msoCompliance.exposureLevelstringLOW / MODERATE / ELEVATED / HIGH / CRITICAL
msoCompliance.signalsarrayCorporate structure and jurisdiction risk signal descriptions
marketViability.scorenumber0-100 market viability score — higher means more viable
marketViability.economicStrengthnumberFRED economic indicator sub-score
marketViability.employmentGrowthnumberBLS employment and wage strength sub-score
marketViability.viabilityLevelstringNON_VIABLE / MARGINAL / VIABLE / ATTRACTIVE / PRIME
marketViability.signalsarrayEconomic and legislative market viability signal descriptions
allSignalsarrayAll signals from all four scoring models combined in order
recommendationsarrayActionable compliance guidance generated from score thresholds

How much does it cost to run cannabis regulatory intelligence queries?

This MCP server uses pay-per-event pricing — every tool call costs $0.045. All 7 tools share the same flat rate. Platform compute is included. There is no monthly subscription.

ScenarioTool callsCost per callTotal cost
Quick test — single state risk check1$0.045$0.045
Weekly check — 5 state scans5$0.045$0.23
MSO portfolio review — 20 tool calls20$0.045$0.90
Monthly full briefings — 50 calls50$0.045$2.25
Enterprise compliance automation — 500 calls500$0.045$22.50

You can set a maximum spending limit per run to control costs. The actor stops when your budget is reached and returns a structured error for the current call — all previous results in the run are preserved.

Compare this to dedicated cannabis compliance platforms like CannaRegs or cannabis-specialized legal databases that charge $300-800/month with annual contract commitments. With this MCP server, most compliance teams spend under $10/month with full programmatic control and no lock-in.

How to connect this MCP server

Claude Desktop

Add the server to your claude_desktop_config.json:

{
  "mcpServers": {
    "cannabis-regulatory": {
      "url": "https://cannabis-regulatory-intelligence-mcp.apify.actor/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_APIFY_TOKEN"
      }
    }
  }
}

Cursor / Windsurf / Cline

Add the MCP endpoint in your editor's MCP settings panel:

URL:  https://cannabis-regulatory-intelligence-mcp.apify.actor/mcp
Auth: Bearer YOUR_APIFY_TOKEN

Python

import requests
import json

response = requests.post(
    "https://cannabis-regulatory-intelligence-mcp.apify.actor/mcp",
    headers={
        "Content-Type": "application/json",
        "Authorization": "Bearer YOUR_API_TOKEN"
    },
    json={
        "jsonrpc": "2.0",
        "method": "tools/call",
        "params": {
            "name": "generate_regulatory_briefing",
            "arguments": {
                "entity": "Trulieve",
                "state": "Florida"
            }
        },
        "id": 1
    }
)

result = response.json()
briefing = json.loads(result["result"]["content"][0]["text"])
print(f"Verdict: {briefing['verdict']} (composite score: {briefing['compositeScore']})")
for rec in briefing["recommendations"]:
    print(f"  - {rec}")

JavaScript

const response = await fetch(
  "https://cannabis-regulatory-intelligence-mcp.apify.actor/mcp",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Authorization": "Bearer YOUR_API_TOKEN",
    },
    body: JSON.stringify({
      jsonrpc: "2.0",
      method: "tools/call",
      params: {
        name: "assess_state_regulatory_risk",
        arguments: {
          state: "Illinois",
          market: "recreational",
        },
      },
      id: 1,
    }),
  }
);

const result = await response.json();
const data = JSON.parse(result.result.content[0].text);
console.log(`IL Regulatory Risk: ${data.stateRegulatoryRisk.score}/100 (${data.stateRegulatoryRisk.riskLevel})`);
for (const signal of data.stateRegulatoryRisk.signals) {
  console.log(`  Signal: ${signal}`);
}

cURL

# Assess state regulatory risk
curl -X POST "https://cannabis-regulatory-intelligence-mcp.apify.actor/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "assess_state_regulatory_risk",
      "arguments": {
        "state": "New York",
        "market": "recreational"
      }
    },
    "id": 1
  }'

# Generate a full regulatory briefing for an MSO
curl -X POST "https://cannabis-regulatory-intelligence-mcp.apify.actor/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "generate_regulatory_briefing",
      "arguments": {
        "entity": "Green Thumb Industries",
        "state": "Illinois"
      }
    },
    "id": 2
  }'

How Cannabis Regulatory Intelligence MCP works

Parallel data orchestration

When a tool call arrives, runActorsParallel() in actor-client.ts fans out to 3-7 downstream Apify actors simultaneously using Promise.allSettled(). Each downstream actor runs with a 256 MB memory budget and a 120-second timeout. Failed individual source queries return an empty array to the scoring model rather than throwing — the scoring models receive empty arrays for any failed source and compute accordingly. This design ensures the MCP never hangs on a single slow data source and always returns a scored result.

The 7 downstream actors and their hard-coded Apify IDs: Federal Register Search (8bZkbWKlXQrDq0ZgK), Congress Bill Search (9fFHwTkD3V1HOyhYd), OpenCorporates Search (x0a1Q4g0MLc7h15Im), BLS Economic Data (7IoF52qtM0SrQcCDG), FRED Economic Data (gz0VOFSLZkFwhqOS8), Website Change Monitor (qcxKU2ReRjP5NmlZR), and CFPB Consumer Complaints (OuMDkYU3IROUS0AEj).

Scoring model architecture

The four scoring models in scoring.ts use bounded sub-scores with hard maximums to prevent any single data signal from dominating the composite. The State Regulatory Risk model caps enforcement action contribution at 35 points, congressional activity at 25, CFPB complaints at 20, and website changes at 20 — applied via Math.min() at every sub-score boundary.

The MSO Compliance model classifies each corporate jurisdiction found in OpenCorporates against a hardcoded legal status map: 22 recreational-legal states, 13 medical-only states, and 10 states where cannabis remains illegal. An entity registered in Idaho (illegal) contributes 8 points of illegal-state risk; an entity in Colorado (recreational-legal) contributes 0. Inactive or dissolved entities add both a ratio-based penalty and a per-entity penalty.

The composite briefing applies weighted coefficients: market viability at 30% (positive signal), federal rescheduling momentum at 20% (positive), state regulatory risk at 25% inverted (lower risk = higher composite), and MSO exposure at 25% inverted. Two override conditions then apply: a CRITICAL MSO exposure or EXTREME state risk forces DO_NOT_ENTER regardless of composite arithmetic.

MCP server transport

The server uses StreamableHTTPServerTransport from @modelcontextprotocol/sdk v1.12.1. A new McpServer instance is created per POST request to /mcp, connected to a fresh transport instance, and torn down when the HTTP connection closes via the res.on('close') handler. The server runs in Apify Standby mode on ACTOR_STANDBY_PORT (default 8080), keeping it persistently alive for MCP client connections with no cold-start latency on each query.

Tips for best results

  1. Use generate_regulatory_briefing for new market entry decisions. It runs all 7 data sources and all 4 scoring models in one call at the same $0.045 price as any other tool. The composite verdict and recommendations are more actionable than running four individual tools separately — and cost the same.

  2. Scope to a market segment for cleaner signals. Adding "market": "recreational" or "market": "hemp" narrows Federal Register and Congress searches to segment-specific regulatory activity, reducing noise from unrelated cannabis policy areas.

  3. Run score_mso_portfolio_risk before verify_cannabis_entity. The portfolio tool gives you the full entity count and jurisdiction map. Use specific jurisdiction names from that output to run targeted verify_cannabis_entity calls with a jurisdiction filter on high-risk states only.

  4. Set a spending limit on automated runs. When scheduling daily or weekly compliance monitoring for a large portfolio, set maxTotalChargeUsd in your run configuration. A $5/run budget covers 111 tool calls — enough for most portfolio scans with a hard cost ceiling.

  5. Interpret momentum scores directionally, not as probability. A BUILDING score (40-59) means congressional activity is increasing but no floor vote is imminent. A STRONG score (60-79) means bills have advanced past committee. Use it as a trend indicator for briefings, not a prediction of legal outcomes.

  6. Cross-reference CFPB complaint counts with entity verification. High complaint counts in monitor_state_enforcement without a corresponding entity in verify_cannabis_entity suggests the company may operate under a different registered name — a signal worth pursuing in due diligence.

  7. Export briefing JSON to your compliance tracker via webhook. The structured generate_regulatory_briefing output maps cleanly to a spreadsheet or CRM record. Use Apify's webhook integration to POST results to a Google Sheet or HubSpot automatically after each run.

  8. Combine with Regulatory Change Tracker for event-driven scoring. Configure the Regulatory Change Tracker to watch state cannabis agency websites, then trigger assess_state_regulatory_risk automatically when a change is detected — giving you on-demand scoring tied to real regulatory events rather than a fixed schedule.

Combine with other Apify actors

ActorHow to combine
Regulatory Change TrackerWatch state cannabis agency websites for policy changes; trigger assess_state_regulatory_risk automatically when changes are detected for event-driven compliance scoring
SEC EDGAR Filing AnalyzerCross-reference cannabis MSO financial disclosures with score_mso_portfolio_risk output to validate that SEC-disclosed risk factors match the live compliance scoring
Company Deep ResearchRun after verify_cannabis_entity to enrich the corporate structure with news coverage, executive history, and press mentions for a complete due diligence package
Litigation Risk ReportAdd civil litigation exposure to the compliance picture for any high-exposure entity surfaced by score_mso_portfolio_risk
Startup Due DiligenceCombine with analyze_market_viability for a joint market + company assessment of early-stage cannabis investment targets
WHOIS Domain LookupConfirm a cannabis company's web presence aligns with its registered corporate entities when verifying MSO structure
Federal Contract IntelligenceIdentify cannabis-adjacent government contractors who may face federal compliance conflicts; cross-reference with entity verification output

Limitations

  • No real-time state license database access. Most state cannabis licensing databases do not expose public APIs. This server scores regulatory risk using federal proxies (Federal Register, Congress, CFPB), not direct state licensing system queries.
  • Federal Register data is published retrospectively. Proposed rules appear only after formal notice-and-comment procedures begin. Informal regulatory guidance, enforcement letters, and agency communications before Federal Register publication are not captured.
  • OpenCorporates coverage varies by jurisdiction. Some states have sparse corporate registry data in OpenCorporates. For those states, verify_cannabis_entity may return fewer entities than actually exist, which can understate MSO compliance exposure scores.
  • CFPB complaints reflect financial services friction, not cannabis enforcement directly. Complaint counts are used as a proxy for compliance friction in cannabis-adjacent banking relationships. A high complaint count does not necessarily indicate direct regulatory enforcement against the entity.
  • The rescheduling momentum score is not a legal opinion. The federal rescheduling score reflects the volume and status of congressional and regulatory activity. It does not predict legal outcomes and does not constitute legal advice.
  • Website Change Monitor depends on pre-indexed sites. The tool tracks changes on sites already in the Website Change Monitor actor's dataset. New state agency sites not yet indexed will not contribute to regulatory change signals.
  • Market viability scores assume continued state-level legality. If a state reversed its legalization status, the viability model would not update until new BLS and FRED data reflecting the change entered the source feeds.
  • All tool calls consume charges even if data sources return sparse results. The charge event fires when the tool call begins. Running queries for very niche entity names or obscure topics may return little data but still incur the per-call cost.

Integrations

  • Zapier — trigger weekly state risk scans and push HIGH_RISK or DO_NOT_ENTER verdicts to a compliance task management system or legal team inbox
  • Make — automate MSO portfolio risk scoring on a schedule, branching on verdict to send differentiated alerts to legal, compliance, and executive teams
  • Google Sheets — export regulatory briefing JSON into a live compliance dashboard that tracks all active state markets and flags changes over time
  • Apify API — call tools programmatically from internal compliance systems, CRM-triggered due diligence workflows, or portfolio monitoring pipelines
  • Webhooks — route HIGH_RISK or DO_NOT_ENTER verdicts to Slack, PagerDuty, or a legal team email automatically after each run
  • LangChain / LlamaIndex — expose cannabis regulatory intelligence as a retrieval tool in RAG pipelines for compliance Q&A systems, legal research assistants, or investment analysis agents

Troubleshooting

  • Verdict is DO_NOT_ENTER despite a state that appears favorable. Check the msoCompliance.exposureLevel field. The briefing model overrides the composite score to DO_NOT_ENTER when MSO exposure reaches CRITICAL regardless of other sub-scores. Run verify_cannabis_entity separately to inspect the specific entities and jurisdictions driving the high exposure rating.

  • All scores are zero or very low. The underlying data sources returned no results for the query. Verify the entity name spelling and try alternate forms (e.g., "Green Thumb" instead of "Green Thumb Industries LLC"). For state queries, use the full state name ("California" not "Cali"). If the entity is newly formed, its OpenCorporates and CFPB records may be sparse.

  • Tool call returns a spending limit error. Your run has reached its configured maxTotalChargeUsd budget. Increase the limit in your Apify run configuration or start a new run. Results from earlier tool calls within the same run are preserved in the dataset.

  • Federal rescheduling momentum shows STALLED despite active news coverage. The momentum model scores based on Federal Register entries and Congress bill status, not news sentiment or reported agency statements. If DEA activity is in early informal stages before Federal Register publication, the model will show lower momentum than media coverage suggests. The score reflects official documented activity.

  • OpenCorporates returns few entities for a known MSO. MSOs often operate under numerous subsidiaries with non-obvious names. Try the parent holding company name, a state-specific subsidiary name (e.g., "Pinnacle Cannabis CO LLC"), or the consumer brand name as separate queries.

Responsible use

  • This server accesses only publicly available US government databases and public corporate registries (Federal Register, Congress.gov, BLS.gov, FRED, CFPB, OpenCorporates).
  • Cannabis regulatory data reflects laws that vary by jurisdiction. Scores and verdicts are analytical screening tools, not legal opinions. Consult qualified cannabis counsel for compliance decisions.
  • Comply with applicable privacy laws when using entity data in due diligence or business decisions.
  • Do not use extracted data to facilitate illegal cannabis transactions in jurisdictions where cannabis remains prohibited.
  • For guidance on data use legality, see Apify's guide.

FAQ

How many cannabis regulatory tool calls can I make in one run? There is no hard cap on tool calls per run. Set a maxTotalChargeUsd spending limit per run to control costs. At $0.045 per call, a $5 budget covers 111 tool calls — enough to scan all 50 states or generate briefings for a full MSO portfolio in a single automated run.

Does this MCP server track state-by-state cannabis licensing directly? Not directly. Most state cannabis licensing databases do not expose public APIs. The server scores state regulatory risk using federal proxies: Federal Register enforcement actions, congressional activity, CFPB complaint patterns, and state agency website changes. For raw license counts, check your state's cannabis control board website.

How current is the cannabis regulatory intelligence data? Federal Register and Congress data is fetched live at query time from the source APIs. FRED and BLS data reflects the latest available government release. There is no caching layer — every tool call queries the live data source, so results reflect the regulatory environment at the moment you call the tool.

Can I track SAFE Banking Act progress with this MCP server? Yes. Use track_federal_cannabis_policy with "topic": "banking". The tool queries Congress for bills matching "cannabis banking" and "SAFE banking," scores their advancement status, and returns a momentum reading based on whether any have passed committee or floor votes.

How does the cannabis regulatory composite score work? The composite score weights four sub-models: market viability (30%), federal rescheduling momentum (20%), state regulatory risk inverted (25%), and MSO compliance exposure inverted (25%). Two override conditions apply: a CRITICAL MSO exposure or EXTREME state risk forces DO_NOT_ENTER regardless of the composite arithmetic result.

Is it legal to use this data for cannabis business decisions? All data sources are publicly available US government databases and public corporate registries. There is no scraping of restricted systems. For guidance on data use legality, see Apify's guide. This MCP server does not constitute legal advice — consult qualified cannabis counsel for compliance decisions.

How is this different from CannaRegs or other cannabis compliance databases? CannaRegs and similar platforms provide curated human-reviewed state regulatory content at $300-800/month with long-term contracts. This MCP server provides programmatic access to live federal data sources at $0.045 per query with no subscription, designed for AI agent workflows and automated screening at scale. The two complement each other: this server is better for automated portfolio monitoring and scoring; curated platforms are better for reading full regulatory text.

Can I analyze hemp and CBD separately from THC cannabis? Yes. Pass "market": "hemp" to any state risk or viability tool. This scopes Federal Register and Congress queries to hemp-specific regulatory activity, which operates under a different federal framework (2018 Farm Bill vs. Controlled Substances Act) and carries different risk profiles.

What does the DO_NOT_ENTER verdict mean exactly? DO_NOT_ENTER is returned in three cases: (a) the composite score falls below 25, (b) MSO compliance exposure reaches CRITICAL (score 80+), or (c) state regulatory risk reaches EXTREME (score 80+). Conditions (b) and (c) are hard overrides — even a high-viability market returns DO_NOT_ENTER if the entity has critical structural compliance exposure.

Can I schedule automated cannabis compliance checks weekly? Yes. The Apify platform supports scheduling runs at any interval (daily, weekly, custom cron). Configure a scheduled task that calls score_mso_portfolio_risk or monitor_state_enforcement for your portfolio, then route HIGH_RISK or DO_NOT_ENTER verdicts to a Slack channel or email via webhook.

How accurate is the MSO compliance exposure score? The score is based on OpenCorporates corporate registry data, which covers 140+ jurisdictions but has variable completeness by state. The model is calibrated to flag structural complexity, entity hygiene issues (dissolved/inactive entities), and high-risk jurisdiction presence. It is a screening tool designed to identify entities warranting deeper manual review, not a definitive compliance audit replacement.

Can I integrate this with a LangChain or LlamaIndex pipeline? Yes. The server exposes a standard MCP endpoint at https://cannabis-regulatory-intelligence-mcp.apify.actor/mcp. Any MCP-compatible client library can connect and call tools as part of a larger AI pipeline, including LangChain and LlamaIndex integrations. See Apify's integration docs for setup guidance.

Help us improve

If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:

  1. Go to Account Settings > Privacy
  2. Enable Share runs with public Actor creators

This lets us see your run details when something goes wrong, so we can fix issues faster. Your data is only visible to the actor developer, not publicly.

Support

Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom solutions or enterprise integrations — including custom state compliance models, additional data sources, or private deployment options — reach out through the Apify platform.

How it works

01

Configure

Set your parameters in the Apify Console or pass them via API.

02

Run

Click Start, trigger via API, webhook, or set up a schedule.

03

Get results

Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.

Use cases

Sales Teams

Build targeted lead lists with verified contact data.

Marketing

Research competitors and identify outreach opportunities.

Data Teams

Automate data collection pipelines with scheduled runs.

Developers

Integrate via REST API or use as an MCP tool in AI workflows.

Ready to try Cannabis Regulatory Intelligence MCP Server?

Start for free on Apify. No credit card required.

Open on Apify Store