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
- Server Listing
- bmlt-server-mcp
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 IDARead-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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds 'full record' to hint at the return payload. However, it does not disclose error behavior (e.g., not found) or any operational details beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence: 'Fetch the full record for a single meeting by its BMLT id_bigint.' Every word earns its place, no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple get-by-ID tool with annotations covering safety. The description indicates it returns the 'full record', which partially compensates for the lack of an output schema. It does not describe error handling but is sufficient for this simple case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters described. The description only restates the id parameter as 'BMLT id_bigint', adding no new meaning beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Fetch' and identifies the resource as 'a single meeting by its BMLT id_bigint', which clearly distinguishes it from sibling search_meetings and list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly indicates this is for retrieving a single meeting when you have its id_bigint, but it does not explicitly state when to use search_meetings instead. This provides clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_infoGet BMLT root server infoARead-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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, establishing a safe, non-mutating operation. The description adds value by specifying exactly what information is returned (capabilities, version, languages, coordinates), which goes beyond the annotation stubs. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, strategically worded sentence that directly states the tool's output without waste. It front-loads the action and enumerates the key data categories, earning every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and rich annotations, the description fully covers the necessary context. It specifies the return data categories, and there is no output schema requiring elaboration. The agent has enough to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the only parameter, root_server_url, with its 'Override...' purpose. The tool description merely mentions 'for a BMLT root server' but does not add syntax or default behavior details; given 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's action ('Return') and specific data ('capabilities, version, languages, and default coordinates') for a BMLT root server. This sharply distinguishes it from sibling tools that list formats, meetings, service bodies, or search meetings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear when to use this tool: when you need root server metadata. It does not explicitly name alternatives or exclusions, but the context of 'for a BMLT root server' implies the appropriate use case, and no misleading guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_formatsList meeting formatsARead-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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description need not repeat safety. It adds useful context about what formats are (e.g., language tags) and the mapping purpose, but does not disclose behaviors like default language handling, whether unused formats are excluded by default, or return structure. This is moderate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence. It starts with the action and resource, includes concrete examples for clarity, and ends with a purpose clause. Every word earns its place with no redundancy or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema and only optional parameters, the description is adequate: it clarifies the purpose and gives examples. It could mention that the response contains format objects with IDs, but the purpose clause implies this. It is complete enough for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already explains each parameter clearly. The description adds little beyond tying 'language tags' to the language parameter and 'human-friendly format names' to key_strings, but it does not meaningfully extend parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('available meeting formats'), with concrete examples (Open, Closed, Speaker, Beginners, language tags) and a clear purpose: mapping human-friendly format names to BMLT format IDs. This distinguishes it from sibling list tools that focus on meetings, server info, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'so the caller can map human-friendly format names to BMLT format IDs.' While no alternative tools for formats exist among siblings, the context is sufficient. It does not explicitly state when not to use, but the purpose statement makes the primary usage obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_root_serversList known BMLT root serversARead-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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is known. The description adds that the tool returns public servers known to the aggregator and that returned values are usable in later calls, which is useful behavioral context beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. The first sentence states the core function; the second provides actionable guidance on using the result. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description provides enough context: it defines the scope (public/known aggregator), indicates the return value contains root_server_url, and explains how to use it. This is complete for the given complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single optional parameter, with the schema describing it as a case-insensitive substring filter. The description adds no additional meaning about the parameter, so the baseline of 3 applies—the schema handles the semantics adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('public BMLT root servers known to the BMLT aggregator'), clearly distinguishing this from sibling tools that operate on meetings, formats, and service bodies. It also notes the output values are meant for use with other tools, which reinforces its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to 'Use the returned root_server_url values with other tools to query a specific server,' providing clear downstream context. It does not compare against alternatives by name, but the guidance is sufficient for when this tool should be invoked (as a discovery step).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_service_bodiesList service bodies (regions / areas)ARead-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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds a behavioral hint about translating names to IDs, implying the output includes names and IDs. However, it does not disclose details like default behavior with no parameters, ordering, or pagination. With annotations present, a score of 3 is appropriate as it adds limited extra behavior context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loaded with the core action. The first sentence states what it does; the second adds a concrete use case. No redundant information or fluff. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (4 optional parameters, no output schema), the description is nearly complete. It explains the resource types and the primary use case (translating names to IDs). However, it doesn't explicitly state that calling with no parameters returns all service bodies, which could be inferred from the schema but is not directly stated. Slight gap, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (include_parents, include_children, service_body_ids, root_server_url) having its own description. The tool description does not add additional parameter meaning beyond the schema, so the baseline of 3 applies. It doesn't compensate for any gaps because none exist in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' with a clear resource 'BMLT service bodies,' and clarifies the domain with synonyms (zones, regions, areas, groups). It distinguishes itself from sibling list tools (list_formats, list_root_servers) by focusing on a different resource, and even connects to search_meetings by explaining the ID translation use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context: it is useful for translating human-readable names like 'Northern California Region' into service body IDs for search_meetings. This implies when to use it, though it doesn't explicitly state when not to use alternatives. The mention of search_meetings gives a clear connection to a sibling tool, but no direct exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_meetingsSearch Narcotics Anonymous meetingsARead-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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds the default 'trimmed summary' vs data_format='full' behavior, which is useful but limited. It does not mention pagination defaults, rate limits, or authentication details beyond what the schema already covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and resource, followed by a concise filter overview and return format note. Every sentence earns its place; no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 18 typed parameters and no output schema, the description explains core capabilities and default output format, and mentions the raw response option. It doesn't detail 'trimmed summary' fields or pagination, but that is acceptable given the rich schema and read-only annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 18 parameters have detailed schema descriptions, so the tool description only summarizes filter categories without adding new parameter-level information. Baseline 3 applies because schema description coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description begins with 'Search Narcotics Anonymous meetings' — a specific verb + resource — and then enumerates the filter dimensions (location, weekday, time, format, venue type, service body). This clearly distinguishes it from siblings like get_meeting (single meeting lookup) and list_formats (format catalog).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: use to search/filter meetings across multiple dimensions. It does not explicitly mention alternatives or exclusions, but the search scope is unambiguous and easily differentiated from the sibling tools by name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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!
Related MCP Servers
- AlicenseAqualityBmaintenanceSearch 12,338 curated, SAMHSA-sourced addiction treatment facilities across all 50 US states.4MIT
- Alicense-qualityAmaintenanceSearch GBIF species taxonomy, occurrence records, datasets, and publishers via MCP.1,5061Apache 2.0
- AlicenseAqualityDmaintenanceEnables searching the NIAID Data Ecosystem for biomedical research resources including datasets, clinical studies, and publications using Elasticsearch queries.3MIT
- Alicense-qualityCmaintenanceMCP server for looking up and searching US healthcare providers in the CMS NPPES NPI Registry.MIT
Your Connectors
Sign in to create a connector for this server.