BMLT Meetings
Server Details
Search Narcotics Anonymous meetings worldwide via the BMLT directory.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- bmlt-enabled/bmlt-server-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.1/5 across 6 of 6 tools scored.
Each tool has a clearly distinct purpose: fetching a single meeting, server info, formats, root servers, service bodies, and searching meetings. No overlap or ambiguity.
All tools follow a consistent verb_noun pattern (e.g., get_meeting, list_root_servers, search_meetings), making it easy for agents to predict and select tools.
With 6 tools, the set is well-scoped for a meeting directory server, covering essential operations without being overly sparse or bloated.
The tools cover the full lifecycle for a read-only meeting directory: listing metadata (servers, service bodies, formats), searching meetings with filters, and fetching details. No obvious gaps.
Available Tools
6 toolsget_meetingGet a single meeting by IDRead-onlyIdempotentInspect
Fetch the full record for a single meeting by its BMLT id_bigint.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | BMLT meeting id_bigint. | |
| root_server_url | No | Override the configured BMLT root server URL. |
get_server_infoGet BMLT root server infoRead-onlyIdempotentInspect
Return capabilities, version, languages, and default coordinates for a BMLT root server.
| Name | Required | Description | Default |
|---|---|---|---|
| root_server_url | No | Override the configured BMLT root server URL. |
list_formatsList meeting formatsRead-onlyIdempotentInspect
List available meeting formats (Open, Closed, Speaker, Beginners, language tags, etc.) so the caller can map human-friendly format names to BMLT format IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Language code for format names (e.g. "en", "es", "fr"). Defaults to server default. | |
| format_ids | No | Restrict to specific format IDs. | |
| key_strings | No | Restrict to formats matching these short codes (e.g. ["O", "C", "SP"]). | |
| include_unused | No | Include formats not currently assigned to any meeting. Default false. | |
| root_server_url | No | Override the configured BMLT root server URL. |
list_root_serversList known BMLT root serversRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name_contains | No | Case-insensitive substring filter applied to the server name. |
list_service_bodiesList service bodies (regions / areas)Read-onlyIdempotentInspect
List BMLT service bodies (zones, regions, areas, groups). Useful for translating "Northern California Region" to a service body ID for use with search_meetings.
| Name | Required | Description | Default |
|---|---|---|---|
| include_parents | No | Also include parent service bodies of the requested IDs. | |
| root_server_url | No | Override the configured BMLT root server URL. | |
| include_children | No | Also include child service bodies of the requested IDs. | |
| service_body_ids | No | Restrict to specific service body IDs. |
search_meetingsSearch Narcotics Anonymous meetingsRead-onlyIdempotentInspect
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 BMLT response.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-indexed). Used with page_size. | |
| address | No | Free-form address to search near (geocoded server-side). Ignored if latitude+longitude are provided. | |
| language | No | Language code for format names (e.g. "en", "es", "de", "fr"). | |
| latitude | No | Latitude in decimal degrees. Pair with longitude for an exact-coordinate search. | |
| weekdays | No | Weekday filter. 1=Sunday, 2=Monday, ..., 7=Saturday. Example: [2,4,6] for Mon/Wed/Fri. | |
| longitude | No | Longitude in decimal degrees. Pair with latitude for an exact-coordinate search. | |
| page_size | No | Results per page. Omit to return all matches. | |
| radius_km | No | Search radius in kilometers. Takes precedence over radius_miles when both are provided. Ignored when no coordinates are provided. | |
| format_ids | No | BMLT format IDs to require. Use list_formats to discover IDs (e.g. Open, Closed, Speaker, Beginners). | |
| data_format | No | "summary" returns a curated subset of fields (default). "full" returns the raw BMLT response. | summary |
| search_text | No | Free-text search across meeting name, location, and notes. | |
| venue_types | No | Venue type filter. 1=In-person, 2=Virtual, 3=Hybrid. | |
| radius_miles | No | Search radius in miles. Defaults to 10. Ignored if radius_km is provided or no coordinates are given. | |
| starts_after | No | Earliest start time as 24h "HH:MM" (e.g. "18:00"). | |
| starts_before | No | Latest start time as 24h "HH:MM" (e.g. "21:30"). | |
| root_server_url | No | Override the configured BMLT root server URL. Must be allowlisted unless BMLT_ALLOW_ANY_ROOT=true. | |
| service_body_ids | No | Restrict to specific service bodies (regions/areas). Use list_service_bodies to discover IDs. | |
| recursive_services | No | When service_body_ids is set, also include their children. Default true. |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!