Skip to main content
Glama
Angeltooth

US Gambling Regulations MCP Server

by Angeltooth

US Gambling Regulations MCP Server

A Model Context Protocol (MCP) server providing comprehensive gambling licensing information across US states, UK, Spain, Malta, and Gibraltar.

Overview

This MCP server provides detailed, up-to-date information about gambling regulations, licensing requirements, fees, and compliance obligations across US states. It's designed to help legal professionals, gaming operators, compliance officers, and researchers access accurate US regulatory data quickly.

Related MCP server: contractor-license-mcp-server

Features

US State Coverage (32 States)

Comprehensive data for 32 US states including:

  • License types and categories

  • Application and renewal fees

  • Tax structures and rates

  • Compliance requirements

  • Market data and statistics

  • Regulatory contact information

  • Problem gambling resources

Key Capabilities

  • License Information - Detailed breakdown of all license types per jurisdiction

  • Fee Calculations - Calculate licensing fees based on projected revenue

  • Compliance Requirements - Comprehensive compliance obligations

  • Jurisdiction Comparisons - Compare regulations across states/countries

  • Market Data - Launch dates, revenue statistics, operator counts

  • Recent Updates - 2024-2025 regulatory changes

Installation

Prerequisites

  • Node.js 18 or higher

  • npm or yarn

  • Claude Desktop app

Setup

  1. Clone the repository:

cd /Users/adamavery/us-gambling-regulations-mcp/
  1. Install dependencies:

npm install
  1. Build the TypeScript server:

npx tsc
  1. Configure Claude Desktop:

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "us-gambling-regulations": {
      "command": "node",
      "args": ["/Users/adamavery/us-gambling-regulations-mcp/build/index.js"]
    }
  }
}
  1. Restart Claude Desktop

Available Tools

US State Tools

us-gambling-regulations:get_license_types

Get detailed information about gambling license types for a specific US state.

Parameters:

  • state (string, required): State jurisdiction (use kebab-case: new-jersey, pennsylvania, nevada, etc.)

Example:

Get license types for New Jersey

us-gambling-regulations:calculate_fees

Calculate licensing fees based on projected revenue for a specific state.

Parameters:

  • state (string, required): State jurisdiction

  • license_type (string, required): Type of license (e.g., 'sports-betting', 'online-casino')

  • projected_revenue (number, required): Projected annual gross gaming revenue in USD

Example:

Calculate sports betting fees for Pennsylvania with projected revenue of $50 million

us-gambling-regulations:compare_jurisdictions

Compare gambling regulations between multiple states.

Parameters:

  • states (array, required): List of states to compare (minimum 2)

  • aspect (string, required): Aspect to compare - 'licensing', 'fees', 'compliance', 'taxes', or 'all'

Example:

Compare licensing requirements between New Jersey, Pennsylvania, and Nevada

us-gambling-regulations:get_compliance_requirements

Get specific compliance requirements for one or more states.

Parameters:

  • states (array, required): List of state jurisdictions

Example:

What are the compliance requirements for online casino operators in Michigan?

us-gambling-regulations:get_regulatory_updates

Get recent regulatory changes and updates for specific states.

Parameters:

  • states (array, required): States to get updates for

Example:

Show me recent regulatory updates for Illinois and New York

us-gambling-regulations:calculate_market_size

Calculate potential market size and revenue projections for a state.

Parameters:

  • state (string, required): State jurisdiction

Example:

What's the market size projection for sports betting in Ohio?

State Coverage

Fully Enhanced States (90%+ Complete)

  • Arkansas (92%)

  • Louisiana (92%)

  • Illinois (90%)

  • Nevada (90%)

  • New Jersey (90%)

  • Pennsylvania (90%)

  • Michigan (100%)

Well-Documented States (85-89%)

  • Arizona (85%)

  • Colorado (80%+)

  • Connecticut (65%+)

  • Delaware (85%)

  • Florida (85%)

  • Indiana (88%)

  • Iowa (85%)

  • Kansas (78%+)

  • Kentucky (83%)

  • Maine (~85-90%)

  • Maryland (80%+)

  • Massachusetts (82%)

  • Mississippi (~85-90%)

  • New Hampshire (75%+)

  • New York (88%)

  • North Carolina (82%)

  • Ohio (85%)

  • Oregon (70-75%+)

  • Rhode Island (88%)

  • Tennessee (85%)

  • Vermont (~85-88%)

  • Virginia (85%)

  • Washington (88%)

  • Washington DC (~85-88%)

  • West Virginia (85%)

  • Wyoming (85%)

  • Puerto Rico (~85-88%)

Data Structure

State data files are located in /data/states/completed/[state-name].json

Each state file includes:

{
  "state_name": "state-name",
  "state": "State Name",
  "state_code": "XX",
  "regulator": "Regulatory Authority Name",
  "regulation_source": "Legal citations",
  "license_types": {
    "license_type_id": {
      "description": "...",
      "eligibility": [...],
      "application_fee": 0,
      "requirements": [...]
    }
  },
  "tax_structure": {...},
  "compliance_requirements": {...},
  "market_data": {...},
  "enforcement": {...},
  "contact_information": {...},
  "data_quality": {
    "completeness_score": 90,
    "data_extraction_date": "2025-10-08"
  }
}

Development

Adding New States

  1. Research state gambling regulations thoroughly

  2. Create comprehensive data file using the template structure

  3. Ensure state_name field uses lowercase, hyphenated format

  4. Target 90%+ completeness score

  5. Include all sections: licensing, fees, taxes, compliance, market data, enforcement, contacts

Updating Existing States

  1. Modify the JSON file in /data/states/completed/

  2. Update data_extraction_date field

  3. Rebuild TypeScript: npx tsc

  4. Restart Claude Desktop

Testing

After making changes:

npx tsc
# Restart Claude Desktop
# Test with: "Get license types for [state-name]"

Data Quality Standards

For 90%+ completeness:

  1. Comprehensive license types - All categories with fees, requirements, durations

  2. Tax structure - Rates, bases, collection frequency, revenue allocation

  3. Fee calculations - Breakdowns for all license types

  4. Compliance requirements - Responsible gaming, age verification, geolocation, internal controls, reporting

  5. Market data - Launch dates, handle/revenue, current operators

  6. Enforcement - Regulatory authority, penalties, recent actions

  7. Application process - Steps, timeline, forms required

  8. Contact information - Regulator details, problem gambling resources

  9. Regulatory updates - Recent changes, upcoming legislation

  10. Competitive analysis - Market strengths and challenges

Use Cases

"What are the licensing requirements for online sports betting in Pennsylvania?"

Fee Planning

"Calculate the licensing fees for an online casino in New Jersey with projected revenue of $25 million"

Market Entry Analysis

"Compare sports betting regulations between Illinois, Michigan, and Ohio"

Compliance Assessment

"What are the responsible gaming requirements for operators in Nevada?"

Market Intelligence

"Show me the market size and operator count for sports betting in New York"

Contributing

State enhancement workflow:

  1. Identify lowest completion state

  2. Research regulations thoroughly

  3. Create comprehensive enhancement script

  4. Test and verify completeness

  5. Document completion score increase

Support

For questions or issues:

  • Check state data files in /data/states/completed/

  • Verify Claude Desktop configuration

  • Ensure TypeScript is compiled: npx tsc

  • Restart Claude Desktop after changes

License

[Add your license information]

Changelog

October 2025

  • Enhanced 6 states to 80%+ completion: Connecticut, Oregon, New Hampshire, Kansas, Colorado, Maryland

  • Fixed Arkansas (45% → 92%) and Louisiana (78% → 92%)

  • Added comprehensive compliance requirements

  • Updated market data through Q3 2025

  • Added 2024-2025 regulatory changes

Recent Updates

  • 32 states in database

  • UK, Spain, Malta, Gibraltar coverage

  • Fee calculation tools

  • Market size projections

  • Regulatory update tracking

Roadmap

  • Enhance remaining states to 90%+ completion

  • Add tribal gaming compact details

  • Include historical regulatory timeline

  • Add license application checklists

  • Include sample compliance documents


Current Status: 32 US states, 12 states at 90%+ completion

Available Tools

6 tools
calculate_feesB

Calculate licensing fees based on projected revenue for a specific state

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesState jurisdiction for fee calculation
license_typeYesType of gambling license (e.g., 'sports-betting', 'online-casino', 'interactive-gaming')
projected_revenueYesProjected annual gross gaming revenue in USD

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It merely states that fees are calculated, without revealing what output format to expect (e.g., total amount, breakdown), whether calculations are estimates, or any jurisdiction-specific logic. This is insufficient for a financial calculation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the verb and core purpose. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description must clarify what users will receive. It does not mention return format, edge cases, or that the result may be an estimate. This leaves significant gaps for a calculation tool operating across multiple states.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema descriptions provide meaningful context (e.g., 'Projected annual gross gaming revenue in USD' includes units; license_type includes examples). The tool description itself adds no parameter details, so the baseline 3 is appropriate given the schema's contribution.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Calculate') and resource ('licensing fees') with a clear scope ('based on projected revenue for a specific state'). It distinguishes from siblings like calculate_market_size by focusing on fees, not market size.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (when projected revenue and a state are known) but does not explicitly mention alternatives or exclusions. It lacks direct comparisons to sibling tools, but the context of requiring projected revenue makes the intended use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_market_sizeB

Calculate potential market size and revenue projections for a state based on available market data

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesState jurisdiction for market size calculation

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden of behavioral disclosure. It mentions 'based on available market data' but doesn't disclose whether data is locally available, how projections are made, or if the operation is read-only. It also lacks details on limitations or assumptions, leaving uncertainty about the tool's internal behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that gets straight to the point. It avoids fluff while including essential scope ('for a state') and a qualifier ('potential') that adds nuance without excess.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (1 required param, no output schema), but the description leaves uncertainty about output format and data sources. It is adequate for basic understanding but lacks contextual depth, such as whether it returns a numeric value, a report, or requires specific state codes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully documents the 'state' parameter, and the description's phrase 'for a state' aligns with it. With 100% schema coverage, the description adds no additional semantic meaning beyond the schema, matching the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's function—calculating market size and revenue projections for a state—with a specific verb and resource. It is distinct from sibling tools like calculate_fees or compare_jurisdictions, which deal with different aspects of regulatory analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool, what prerequisites exist, or how it relates to sibling tools. It does not state when to choose this over calculate_fees or get_license_types, leaving the agent without decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_jurisdictionsA

Compare gambling regulations between multiple states

ParametersJSON Schema
NameRequiredDescriptionDefault
aspectYesRegulatory aspect to compare
statesYesStates to compare (minimum 2)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility for behavioral disclosure. It only states the high-level action and does not disclose output format, handling of missing data, or any limitations of the comparison, leaving significant behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no filler, effectively conveying the core function. It is appropriately sized and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the schema covers inputs well, the lack of any output description and minimal behavioral context means an agent has incomplete information to anticipate the tool's response. The description is adequate but not comprehensive given no annotations or output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides complete descriptions for both parameters, including the enum for 'aspect' and the min 2 requirement for 'states'. The description adds no additional parameter-level detail beyond what the schema offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly uses the verb 'compare' and identifies the resource as 'gambling regulations' between multiple states, which distinguishes it from sibling tools that focus on single-state details like licensing or fees. This makes the tool's purpose immediately obvious and distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a use case (comparing states) but does not explicitly mention when to choose this tool over alternatives or when not to use it. No alternative tools or exclusions are referenced, so guidance is limited to an implied context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_compliance_requirementsB

Get specific compliance requirements for one or more states

ParametersJSON Schema
NameRequiredDescriptionDefault
statesYesList of state jurisdictions

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It only states the action and scope, without specifying return format, handling of invalid states, or whether results are jurisdiction-specific.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no fluff, immediately stating the action and target. It is concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description is minimal. It doesn't explain what 'specific compliance requirements' means or what the response looks like, leaving ambiguity despite its simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes the 'states' parameter as 'List of state jurisdictions', and the description adds 'one or more states'. This is consistent but adds little beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' and identifies the resource 'compliance requirements' with scope 'for one or more states'. This clearly distinguishes it from sibling tools like calculate_fees or get_regulatory_updates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention any prerequisites, complementary tools, or situations where a different tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_license_typesC

Get detailed information about gambling license types for a specific US state

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesState jurisdiction (use kebab-case: new-jersey, pennsylvania, nevada, etc.)

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description carries no behavioral disclosure. It does not state whether the operation is read-only, what happens on invalid state inputs, whether any authentication is required, or what kind of 'detailed information' will be returned. The description simply restates the tool's purpose without adding any behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the core purpose. There is no unnecessary padding or repetition. For a tool with one parameter and a straightforward function, this length is appropriate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description needs to compensate by explaining what 'detailed information' includes and what the caller can expect. It does not describe the return format, potential errors, or any caveats. The description is too sparse to be considered complete for an agent to reliably invoke and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the 'state' parameter with examples of kebab-case values, giving 100% coverage. The tool description itself does not add any parameter-specific meaning beyond what the schema provides. Since schema coverage is high, the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: getting detailed information about gambling license types for a specific US state. It uses a specific verb ('Get') and resource ('gambling license types'). While it doesn't explicitly distinguish itself from sibling tools like 'get_compliance_requirements' or 'compare_jurisdictions', the focus on license types is reasonably distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools like 'calculate_fees' or 'compare_jurisdictions', nor does it specify any prerequisites or exclusions. Usage is only implicit through the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_regulatory_updatesA

Get recent regulatory changes and updates for specific states

ParametersJSON Schema
NameRequiredDescriptionDefault
statesYesStates to get updates for

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the full burden. It adds 'recent' and 'specific states' as behavioral scoping, but does not disclose what 'recent' means, the output structure, or any limitations. Still, as a read tool, safety is implied and no contradictions exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler words, effectively communicating the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no annotations or output schema, the description provides a basic understanding but lacks details about the return value, the meaning of 'recent', or how it differs from related tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'states' parameter, which is already described in the schema. The description's phrase 'specific states' simply mirrors the schema without adding extra meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' with a clear resource ('recent regulatory changes and updates') and scope ('for specific states'). It is distinct from sibling tools like 'get_license_types' and 'get_compliance_requirements'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of context, exclusions, or conditions under which this tool should be chosen over sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a distinct aspect of US gambling regulations: license types, fee calculation, jurisdiction comparison, compliance requirements, regulatory updates, and market size. No two tools have overlapping purposes, making selection unambiguous.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using lowercase snake_case (get_*, calculate_*, compare_*). The naming is predictable and uniform throughout the set.

Tool Count5/5

With 6 tools, the server is well-scoped for its purpose. It provides a focused set of capabilities without being overly sparse or bloated, each tool earning its place.

Completeness4/5

The tool set covers core regulatory needs: license types, fees, compliance, updates, and market analysis. Missing is a general state overview or direct legal status tool, but agents can work around this with existing tools.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to 529,000+ US statute sections across all 50 states and federal codes for comprehensive legal research. Supports semantic search, citation graph traversal, jurisdictional comparisons, and regulatory risk analysis through natural language queries.
    55
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Real-time contractor license verification across 45 US states. Verifies license status, expiration, and disciplinary history directly against state licensing board portals.
    4
    106
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Angeltooth/us-gambling-regulations-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server