{"specVersion":"1.0","host":{"displayName":"Market Lens","identifier":"did:web:marketlens.authengine.ai","documentationUrl":"https://marketlens.authengine.ai/"},"entries":[{"identifier":"urn:air:marketlens.authengine.ai:mcp:market-lens-tools","displayName":"Market Lens site tools","type":"application/mcp-server-card+json","description":"11 in-page WebMCP tools over a geospatial targeting engine: 6 read-only lookups and 5 that run an analysis or move the view the person is looking at. Rankings come from public aggregate US Census, CDC PLACES, and travel-time data. No tool accepts personal, clinical, or payment details.","tags":["webmcp","geospatial","market-analysis","site-selection"],"capabilities":["get_engine_status","list_verticals","list_runs","get_run_detail","get_current_view","find_business","rank_zips","find_lookalike_markets","map_competitor_overlap","plan_new_sites","show_run"],"representativeQueries":["which ZIP codes should this practice target","find markets that look like the one my clinic is already in","where are competitors capturing my catchment","where should we open the next clinic"],"data":{"name":"market-lens-site-tools","description":"In-page WebMCP tools over a geospatial targeting engine. Scores and ranks geographies using public aggregate demographic and health data. Targets geographies, never individuals.","tools":[{"name":"get_engine_status","title":"Engine status","description":"Returns whether the data lake is ingested and usable, which states have travel-time data, and the vintage of every dataset. Call this first if a run fails: the usual cause is a region that has not been ingested yet.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":false}},{"name":"list_verticals","title":"List scoring recipes","description":"Returns the available verticals and, for each, the evidence columns and weights its scoring recipe uses. Weights are explicit on purpose: every rank this tool produces can be explained from them.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":false}},{"name":"list_runs","title":"List previous runs","description":"Returns recent analysis runs with their id, mode, parameters, and timestamp. Use it to find a run to open or compare rather than recomputing one.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":false}},{"name":"get_run_detail","title":"Run detail","description":"Returns the scored rows, parameters, methodology, and data vintages for one run. Returns the top 15 rows by default; set full to true for every row.","inputSchema":{"type":"object","properties":{"run_id":{"type":"string","description":"Run id, from list_runs or get_current_view."},"full":{"type":"boolean","description":"Return every row instead of the top 15."}},"required":["run_id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":false}},{"name":"get_current_view","title":"What the person is looking at","description":"Returns the run currently displayed on screen, the active analysis mode, and the current table sort. Use this to ground a question like \"why is this one ranked first\" in what the person can actually see, instead of guessing or starting a new run.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":false}},{"name":"find_business","title":"Find a business","description":"Looks up a business by name and returns candidate matches with addresses, from the NPPES provider registry and Google Places. Use it to turn \"Texas Orthopedics Austin\" into an address you can pass to an analysis tool.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Business name, optionally with a city or state."}},"required":["query"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true}},{"name":"rank_zips","title":"Rank the ZIP codes around a practice","description":"Scores and ranks the ZIP areas (ZCTAs) around a location for local SEO and GEO targeting, using public aggregate demographic and health data plus competitor density. Returns a ranked table with the evidence behind each row, and opens it on the map.","inputSchema":{"type":"object","properties":{"location":{"type":"string","description":"Street address of the practice or site, or \"lat,lng\". Use find_business first if you only have a business name."},"vertical":{"type":"string","description":"Scoring recipe to use. Call list_verticals for the valid values."},"radius_miles":{"type":"number","minimum":1,"maximum":100,"description":"Search radius in miles. Defaults to 25."}},"required":["location","vertical"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"untrustedContentHint":false}},{"name":"find_lookalike_markets","title":"Find lookalike markets","description":"Finds markets whose drive-time catchment demographically resembles the seed location, at least a set travel time away. Useful for planning expansion into a market that looks like one that already works. Opens the result on the map.","inputSchema":{"type":"object","properties":{"location":{"type":"string","description":"Street address of the practice or site, or \"lat,lng\". Use find_business first if you only have a business name."},"vertical":{"type":"string","description":"Scoring recipe to use. Call list_verticals for the valid values."},"states":{"type":"string","description":"Comma-separated two-letter state codes to search, e.g. \"TX,OK\". Travel-time data is mirrored per state at ingest, so only ingested states can be searched."},"drive_minutes":{"type":"number","minimum":5,"maximum":60,"description":"Catchment size in drive minutes. Defaults to 20."},"scope":{"type":"string","enum":["any","out-of-metro","same-metro"],"description":"Restrict candidates by metro relative to the seed. Defaults to out-of-metro."}},"required":["location","vertical","states"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"untrustedContentHint":false}},{"name":"map_competitor_overlap","title":"Map competitor overlap","description":"Maps where a practice catchment is contested by competitors, using a Huff gravity model over travel times, and ranks competitors by how much of the catchment they capture. Opens the pressure map.","inputSchema":{"type":"object","properties":{"location":{"type":"string","description":"Street address of the practice or site, or \"lat,lng\". Use find_business first if you only have a business name."},"vertical":{"type":"string","description":"Scoring recipe to use. Call list_verticals for the valid values."},"states":{"type":"string","description":"Comma-separated two-letter state codes to search, e.g. \"TX,OK\". Travel-time data is mirrored per state at ingest, so only ingested states can be searched."},"drive_minutes":{"type":"number","minimum":5,"maximum":60,"description":"Catchment size in drive minutes. Defaults to 20."}},"required":["location","vertical","states"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"untrustedContentHint":false}},{"name":"plan_new_sites","title":"Plan where to add clinics","description":"For an existing network, builds a demand surface, measures what the current sites already cover, finds the white space, and proposes where to put a given number of new sites. Opens the result on the map.","inputSchema":{"type":"object","properties":{"location":{"type":"string","description":"Street address of the practice or site, or \"lat,lng\". Use find_business first if you only have a business name."},"vertical":{"type":"string","description":"Scoring recipe to use. Call list_verticals for the valid values."},"states":{"type":"string","description":"Comma-separated two-letter state codes to search, e.g. \"TX,OK\". Travel-time data is mirrored per state at ingest, so only ingested states can be searched."},"new_sites":{"type":"number","minimum":1,"maximum":20,"description":"How many new sites to place. Defaults to 3."},"strategy":{"type":"string","enum":["greenfield","add-on"],"description":"greenfield opens new markets; add-on densifies the existing footprint."}},"required":["location","vertical","states"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"untrustedContentHint":false}},{"name":"show_run","title":"Open a run on screen","description":"Opens an existing run in the interface so the person can see the map and table for it. Use it after list_runs to put a past result in front of them rather than describing it.","inputSchema":{"type":"object","properties":{"run_id":{"type":"string","description":"Run id, from list_runs."}},"required":["run_id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"untrustedContentHint":false}}]}}]}