MCP 서버

BMLT Meetings

io.github.bmlt-enabled/bmlt-server-mcp
헬스케어 검색 및 리서치 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Searches the worldwide Narcotics Anonymous meeting directory by location, time, format, venue type, and service region.

get_meeting
Get a single meeting by ID
Fetch the full record for a single meeting by its BMLT id_bigint.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'description': 'BMLT meeting id_bigint.'}, 'root_server_url': {'type': 'string', 'description': 'Override the configured BMLT root server URL.'}}}
get_server_info
Get BMLT root server info
Return capabilities, version, languages, and default coordinates for a BMLT root server.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'root_server_url': {'type': 'string', 'description': 'Override the configured BMLT root server URL.'}}}
list_formats
List meeting formats
List available meeting formats (Open, Closed, Speaker, Beginners, language tags, etc.) so the caller can map human-friendly format names to BMLT format IDs.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'language': {'type': 'string', 'description': 'Language code for format names (e.g. "en", "es", "fr"). Defaults to server default.'}, 'format_ids': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Restrict to specific format IDs.'}, 'key_strings': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Restrict to formats matching these short codes (e.g. ["O", "C", "SP"]).'}, 'include_unused': {'type': 'boolean', 'default': False, 'description': 'Include formats not currently assigned to any meeting. Default false.'}, 'root_server_url': {'type': 'string', 'description': 'Override the configured BMLT root server URL.'}}}
list_root_servers
List known BMLT root servers
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.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'name_contains': {'type': 'string', 'description': 'Case-insensitive substring filter applied to the server name.'}}}
list_service_bodies
List service bodies (regions / areas)
List BMLT service bodies (zones, regions, areas, groups). Useful for translating "Northern California Region" to a service body ID for use with search_meetings.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'include_parents': {'type': 'boolean', 'default': False, 'description': 'Also include parent service bodies of the requested IDs.'}, 'root_server_url': {'type': 'string', 'description': 'Override the configured BMLT root server URL.'}, 'include_children': {'type': 'boolean', 'default': False, 'description': 'Also include child service bodies of the requested IDs.'}, 'service_body_ids': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Restrict to specific service body IDs.'}}}
search_meetings
Search Narcotics Anonymous meetings
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.
읽기 전용 멱등성
입력 스키마
{'type': 'object', 'properties': {'page': {'type': 'integer', 'default': 1, 'description': 'Page number (1-indexed). Used with page_size.'}, 'address': {'type': 'string', 'description': 'Free-form address to search near (geocoded server-side). Ignored if latitude+longitude are provided.'}, 'language': {'type': 'string', 'description': 'Language code for format names (e.g. "en", "es", "de", "fr").'}, 'latitude': {'type': 'number', 'description': 'Latitude in decimal degrees. Pair with longitude for an exact-coordinate search.'}, 'weekdays': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Weekday filter. 1=Sunday, 2=Monday, ..., 7=Saturday. Example: [2,4,6] for Mon/Wed/Fri.'}, 'longitude': {'type': 'number', 'description': 'Longitude in decimal degrees. Pair with latitude for an exact-coordinate search.'}, 'page_size': {'type': 'integer', 'description': 'Results per page. Omit to return all matches.'}, 'radius_km': {'type': 'number', 'description': 'Search radius in kilometers. Takes precedence over radius_miles when both are provided. Ignored when no coordinates are provided.'}, 'format_ids': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'BMLT format IDs to require. Use list_formats to discover IDs (e.g. Open, Closed, Speaker, Beginners).'}, 'data_format': {'enum': ['summary', 'full'], 'type': 'string', 'default': 'summary', 'description': '"summary" returns a curated subset of fields (default). "full" returns the raw BMLT response.'}, 'search_text': {'type': 'string', 'description': 'Free-text search across meeting name, location, and notes.'}, 'venue_types': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Venue type filter. 1=In-person, 2=Virtual, 3=Hybrid.'}, 'radius_miles': {'type': 'number', 'default': 10, 'description': 'Search radius in miles. Defaults to 10. Ignored if radius_km is provided or no coordinates are given.'}, 'starts_after': {'type': 'string', 'description': 'Earliest start time as 24h "HH:MM" (e.g. "18:00").'}, 'starts_before': {'type': 'string', 'description': 'Latest start time as 24h "HH:MM" (e.g. "21:30").'}, 'root_server_url': {'type': 'string', 'description': 'Override the configured BMLT root server URL. Must be allowlisted unless BMLT_ALLOW_ANY_ROOT=true.'}, 'service_body_ids': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Restrict to specific service bodies (regions/areas). Use list_service_bodies to discover IDs.'}, 'recursive_services': {'type': 'boolean', 'default': True, 'description': 'When service_body_ids is set, also include their children. Default true.'}}}
추가됨
list_root_servers
2026년 9월 17일 12:40 PM
추가됨
get_server_info
2026년 9월 17일 12:40 PM
추가됨
list_service_bodies
2026년 9월 17일 12:40 PM
추가됨
list_formats
2026년 9월 17일 12:40 PM
추가됨
get_meeting
2026년 9월 17일 12:40 PM
추가됨
search_meetings
2026년 9월 17일 12:40 PM