bmlt-enabled avatar

BMLT Meetings

bmlt-enabled/bmlt-server-mcp

A streamable HTTP server that connects Claude and other MCP clients to the BMLT aggregator, which federates 85% of Narcotics Anonymous meetings worldwide into a single searchable directory. Exposes six read-only tools: geocoded meeting search with filters for format, venue type, and service body; single meeting lookup; format and service body enumeration; server info; and root server discovery. Built on Laravel with Nominatim or Google geocoding. Ships with Docker Compose and includes an allowlist for the optional root server override argument to prevent SSRF. Reach for this when you need AI-accessible NA meeting data without running a local stdio subprocess or when you want to host a shared instance for multiple clients.

tools
6
transport
HTTP
last updated
May 18, 2026

Install

From registry metadata
$ npx add-mcp https://mcp.bmlt.app/mcp --name bmlt-server-mcp

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http bmlt-server-mcp https://mcp.bmlt.app/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 6 tools

Verified live against the running server on Nov 6, 2026.

search_meetingsSearch Narcotics Anonymous meetings on a BMLT root server. Filter by location (address or lat/lng + radius), weekday, time of day, format, venue type (in-person / virtual / hybrid), and service body. Returns a trimmed summary by default; pass data_format='full' for the raw BML...18 params

Search Narcotics Anonymous meetings on a BMLT root server. Filter by location (address or lat/lng + radius), weekday, time of day, format, venue type (in-person / virtual / hybrid), and service body. Returns a trimmed summary by default; pass data_format='full' for the raw BML...

Parameters* required
addressstring
Free-form address to search near (geocoded server-side). Ignored if latitude+longitude are provided.
data_formatstring
"summary" returns a curated subset of fields (default). "full" returns the raw BMLT response.one of summary · fulldefault: summary
format_idsarray
BMLT format IDs to require. Use list_formats to discover IDs (e.g. Open, Closed, Speaker, Beginners).
languagestring
Language code for format names (e.g. "en", "es", "de", "fr").
latitudenumber
Latitude in decimal degrees. Pair with longitude for an exact-coordinate search.
longitudenumber
Longitude in decimal degrees. Pair with latitude for an exact-coordinate search.
pageinteger
Page number (1-indexed). Used with page_size.default: 1
page_sizeinteger
Results per page. Omit to return all matches.
radius_kmnumber
Search radius in kilometers. Takes precedence over radius_miles when both are provided. Ignored when no coordinates are provided.
radius_milesnumber
Search radius in miles. Defaults to 10. Ignored if radius_km is provided or no coordinates are given.default: 10
recursive_servicesboolean
When service_body_ids is set, also include their children. Default true.default: true
root_server_urlstring
Override the configured BMLT root server URL. Must be allowlisted unless BMLT_ALLOW_ANY_ROOT=true.
search_textstring
Free-text search across meeting name, location, and notes.
service_body_idsarray
Restrict to specific service bodies (regions/areas). Use list_service_bodies to discover IDs.
starts_afterstring
Earliest start time as 24h "HH:MM" (e.g. "18:00").
starts_beforestring
Latest start time as 24h "HH:MM" (e.g. "21:30").
venue_typesarray
Venue type filter. 1=In-person, 2=Virtual, 3=Hybrid.
weekdaysarray
Weekday filter. 1=Sunday, 2=Monday, ..., 7=Saturday. Example: [2,4,6] for Mon/Wed/Fri.
get_meetingFetch the full record for a single meeting by its BMLT id_bigint.2 params

Fetch the full record for a single meeting by its BMLT id_bigint.

Parameters* required
id*integer
BMLT meeting id_bigint.
root_server_urlstring
Override the configured BMLT root server URL.
list_formatsList available meeting formats (Open, Closed, Speaker, Beginners, language tags, etc.) so the caller can map human-friendly format names to BMLT format IDs.5 params

List available meeting formats (Open, Closed, Speaker, Beginners, language tags, etc.) so the caller can map human-friendly format names to BMLT format IDs.

Parameters* required
format_idsarray
Restrict to specific format IDs.
include_unusedboolean
Include formats not currently assigned to any meeting. Default false.default: false
key_stringsarray
Restrict to formats matching these short codes (e.g. ["O", "C", "SP"]).
languagestring
Language code for format names (e.g. "en", "es", "fr"). Defaults to server default.
root_server_urlstring
Override the configured BMLT root server URL.
list_service_bodiesList BMLT service bodies (zones, regions, areas, groups). Useful for translating "Northern California Region" to a service body ID for use with search_meetings.4 params

List BMLT service bodies (zones, regions, areas, groups). Useful for translating "Northern California Region" to a service body ID for use with search_meetings.

Parameters* required
include_childrenboolean
Also include child service bodies of the requested IDs.default: false
include_parentsboolean
Also include parent service bodies of the requested IDs.default: false
root_server_urlstring
Override the configured BMLT root server URL.
service_body_idsarray
Restrict to specific service body IDs.
get_server_infoReturn capabilities, version, languages, and default coordinates for a BMLT root server.1 params

Return capabilities, version, languages, and default coordinates for a BMLT root server.

Parameters* required
root_server_urlstring
Override the configured BMLT root server URL.
list_root_serversList public BMLT root servers known to the BMLT aggregator. Use the returned root_server_url values with other tools to query a specific server.1 params

List public BMLT root servers known to the BMLT aggregator. Use the returned root_server_url values with other tools to query a specific server.

Parameters* required
name_containsstring
Case-insensitive substring filter applied to the server name.

Sponsors

Readme

bmlt-server-mcp

A streamable HTTP Model Context Protocol server that exposes BMLT (Basic Meeting List Toolbox — the Narcotics Anonymous meeting directory) as a set of read-only tools that AI assistants can call directly.

BMLT hosts approximately 85% of Narcotics Anonymous meetings worldwide; the default backend is the BMLT aggregator, which federates every public BMLT root server (server list) into a single search surface — effectively the authoritative AI-accessible source for finding NA meetings.

MCP is an open protocol, so any compatible client works: Claude (Code, Desktop, web), ChatGPT (Connectors and the Responses API), Google Gemini, Cursor, Windsurf, Zed, Cline, Continue, and others.

Unlike the npm bmlt-mcp-server (stdio-only, runs as a local subprocess), this server speaks MCP over HTTP and is meant to be hosted once and consumed remotely.


View the full README on GitHub

Details

Repository
github.com/bmlt-enabled/bmlt-server-mcp
Website
mcp.bmlt.app
Category
Search & Web Crawling
Transport
HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026

Related Search & Web Crawling MCP servers

View all
1brightwayai avatarVideo Analyzerbrightwayai/video-analyzerAnalyze videos: extract frames, transcribe audio, generate storyboard breakdowns.0stars
2brunosrz avatarVectorabrunosrz/vectoraAI assistant with RAG, web search, filesystem and memory. MCP sub-agent for Claude Code.0stars
3buzzer avatarIMAP Mailbuzzer/imap-mcpRead and search IMAP mailboxes and create drafts. Sending and deleting are not possible.0stars
4chhavimishra avatarOriginselect Mcp Serverchhavimishra/originselect-mcp-serverSearch ethical, origin-verified products and brands by country of origin0stars
5chrischall avatarHomes Mcpchrischall/homes-mcphomes.com real-estate for Claude — search, property details, photos, compare, mortgage math0stars
6ciscoriordan avatarparsec-edgar: SEC EDGAR filingsciscoriordan/parsec-edgarSearch SEC EDGAR, list company filings, and read 10-K, 10-Q and 8-K filings one Item at a time0stars