Every tool exposed by this MCP server, with parameters, types, defaults, and how each maps to the underlying BMLT Semantic Search API — formally specified by the BMLT Semantic OpenAPI document (OpenAPI 3.1).
https://mcp.bmlt.app/mcp
Protocol: MCP over HTTP (Streamable HTTP transport, JSON-RPC 2.0).
https://aggregator.bmltenabled.org/main_server
The BMLT aggregator federates every public BMLT root server
(server list),
so searches cover NA meetings worldwide — approximately 85% of all NA meetings publish
to one of these servers.
search_meetings — geographic + filtered meeting searchget_meeting — single meeting by IDlist_formats — meeting format codes (Open, Closed, Speaker, …)list_service_bodies — zones / regions / areas / groupsget_server_info — server capabilities & metadatalist_root_servers — every public BMLT root serversearch_meetings
Search NA meetings on the configured BMLT root server. Filter by location (address or
lat/lng + radius), weekday, time, format, venue type, and service body. Returns a
trimmed summary by default; pass data_format=full for the raw BMLT response.
Read-only, idempotent.
| Parameter | Type | Default | Description |
|---|---|---|---|
| address | string | — | Free-form address; geocoded server-side. Ignored if lat/lng are provided. |
| latitude | number | — | Decimal degrees. Pair with longitude. |
| longitude | number | — | Decimal degrees. Pair with latitude. |
| radius_miles | number | 10 | Search radius in miles. Ignored if radius_km is set or no coordinates are provided. |
| radius_km | number | — | Search radius in kilometers. Takes precedence over radius_miles. |
| weekdays | int[] | — | 1=Sun, 2=Mon, …, 7=Sat. e.g. [2,4,6]. |
| starts_after | "HH:MM" | — | Earliest start time, 24-hour. |
| starts_before | "HH:MM" | — | Latest start time, 24-hour. |
| format_ids | int[] | — | BMLT format IDs to require. Discover with list_formats. |
| venue_types | int[] | — | 1=in-person, 2=virtual, 3=hybrid. |
| service_body_ids | int[] | — | Restrict to regions/areas. Discover with list_service_bodies. |
| recursive_services | boolean | true | Include child service bodies when filtering. |
| search_text | string | — | Free-text search across name, location, notes. |
| language | string | — | Format-name language: en, es, de, fr, … |
| page_size | integer | — | Page size; omit to return all results. |
| page | integer | 1 | 1-indexed page number. |
| data_format | "summary" | "full" | summary | Field set returned. |
| root_server_url | string | — | Override the configured BMLT root server (allowlisted). |
Calls GET {root}/client_interface/json/?switcher=GetSearchResults with the
parameters mapped as follows:
| This tool | BMLT parameter |
|---|---|
| latitude | lat_val |
| longitude | long_val |
| radius_miles | geo_width |
| radius_km | geo_width_km |
| weekdays | weekdays[] |
| format_ids | formats[] |
| venue_types | venue_types[] |
| service_body_ids | services[] |
| recursive_services | recursive (1/0) |
| search_text | SearchString |
| language | lang_enum |
| starts_after | StartsAfterH, StartsAfterM |
| starts_before | StartsBeforeH, StartsBeforeM |
| page_size, page | page_size, page_num |
With data_format=summary each meeting is trimmed to:
id_bigint, meeting_name, weekday_tinyint, start_time, duration_time, time_zone,
location_text, location_street, location_municipality, location_province,
location_postal_code_1, latitude, longitude, formats, venue_type,
distance_in_miles, distance_in_km, virtual_meeting_link, phone_meeting_number,
comments, service_body_bigint
get_meetingFetch the full record for a single meeting by its BMLT id_bigint.
| Parameter | Type | Default | Description |
|---|---|---|---|
| id | integer (required) | — | BMLT id_bigint. |
| root_server_url | string | — | Override the configured root server. |
Maps to GetSearchResults&meeting_ids[]={id}.
list_formatsList meeting format codes (Open, Closed, Speaker, Beginners, language tags, …).
| Parameter | Type | Default | Description |
|---|---|---|---|
| language | string | server default | Format-name language. |
| include_unused | boolean | false | Include formats not assigned to any meeting. |
| format_ids | int[] | — | Restrict to specific format IDs. |
| key_strings | string[] | — | Restrict to short codes, e.g. ["O", "C", "SP"]. |
| root_server_url | string | — | Override the configured root server. |
Maps to GetFormats.
list_service_bodiesList zones, regions, areas, and groups, so callers can map names to IDs.
| Parameter | Type | Default | Description |
|---|---|---|---|
| service_body_ids | int[] | — | Restrict to specific IDs. |
| include_children | boolean | false | Include descendants of requested IDs. |
| include_parents | boolean | false | Include ancestors of requested IDs. |
| root_server_url | string | — | Override the configured root server. |
Maps to GetServiceBodies.
get_server_infoCapabilities, version, languages, and default coordinates for a BMLT root server.
| Parameter | Type | Default | Description |
|---|---|---|---|
| root_server_url | string | — | Override the configured root server. |
Maps to GetServerInfo.
list_root_serversPublic BMLT root servers known to the BMLT aggregator — the full list of regional BMLT installations worldwide.
| Parameter | Type | Default | Description |
|---|---|---|---|
| name_contains | string | — | Case-insensitive substring filter on server name. |
Source: serverList.json.