Motley — NYC Neighborhoods, Schools & Admissions
What this MCP does
Finds, compares, and ranks NYC neighborhoods and schools, with admissions guidance, safety, activities, resources, and location lookup.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Max schools to return'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 200, 'minimum': 0, 'description': 'Number of schools to skip, for paging'}, 'borough': {'enum': ['Manhattan', 'Brooklyn', 'Queens', 'Bronx', 'Staten Island'], 'type': 'string', 'description': 'Limit to one borough. Omit unless the family named one.'}, 'district': {'type': 'array', 'items': {'type': 'integer', 'maximum': 32, 'minimum': 1}, 'maxItems': 8, 'minItems': 1, 'description': "Community school district numbers, 1-32. A borough is NOT a district â\x80\x94 for 'schools in the Bronx' use `borough` and omit this. Never guess one."}, 'governance': {'type': 'array', 'items': {'enum': ['public', 'charter', 'private'], 'type': 'string'}, 'maxItems': 3, 'minItems': 1, 'description': 'School type. Omit unless the family named one.'}, 'grade_band': {'enum': ['prek', 'elementary', 'middle', 'high'], 'type': 'string', 'description': 'prek (K-12 schools that also run 3-K/pre-K), elementary (K-5), middle (6-8), high (9-12)'}, 'admissions_method': {'type': 'array', 'items': {'enum': ['zoned', 'unscreened', 'limited_unscreened', 'screened', 'ed_opt', 'audition', 'shsat', 'charter_lottery', 'private_admissions', 'prek_universal'], 'type': 'string'}, 'maxItems': 10, 'minItems': 1, 'description': 'How the school admits students; matches a school admitting by ANY listed method. Call get-admissions-methods or explain-admissions-method for what each one means.'}, 'program_categories': {'type': 'array', 'items': {'enum': ['academic', 'arts', 'sports', 'stem', 'language', 'extracurricular'], 'type': 'string'}, 'maxItems': 6, 'minItems': 1, 'description': "Program focus; matches a school offering ANY listed focus. 'arts' covers art, music, dance, drama and theater; 'extracurricular' means clubs. Tagged on public and charter schools ONLY."}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['total', 'returned', 'filters_applied', 'schools'], 'properties': {'total': {'type': 'number'}, 'schools': {'type': 'array', 'items': {'type': 'object', 'required': ['dbn', 'name', 'address', 'governance', 'grade_levels', 'district', 'neighborhood', 'nta_code', 'borough', 'slug'], 'properties': {'dbn': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': ['string', 'null']}, 'address': {'type': ['string', 'null']}, 'borough': {'type': ['string', 'null']}, 'district': {'type': ['number', 'null']}, 'nta_code': {'type': ['string', 'null']}, 'programs': {'type': 'array', 'items': {'type': 'object', 'required': ['category', 'label', 'examples'], 'properties': {'label': {'type': 'string'}, 'category': {'type': 'string'}, 'examples': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'governance': {'type': ['string', 'null']}, 'grade_levels': {'type': ['string', 'null']}, 'neighborhood': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'returned': {'type': 'number'}, 'filters_applied': {'type': 'object', 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['nta_codes'], 'properties': {'nta_codes': {'type': 'array', 'items': {'type': 'string', 'maxLength': 6}, 'maxItems': 6, 'minItems': 2, 'description': '2â\x80\x936 NTA codes to compare side by side (from search-neighborhoods). Unscored codes are dropped.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['neighborhoods', 'metrics', 'scores_as_of'], 'properties': {'metrics': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'values', 'leader_nta_code'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}, 'values': {'type': 'array', 'items': {'type': 'object', 'required': ['nta_code', 'score', 'band', 'phrase'], 'properties': {'band': {'type': 'string'}, 'score': {'type': ['number', 'null']}, 'phrase': {'type': 'string'}, 'nta_code': {'type': 'string'}}, 'additionalProperties': False}}, 'leader_nta_code': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'scores_as_of': {'type': ['string', 'null']}, 'neighborhoods': {'type': 'array', 'items': {'type': 'object', 'required': ['nta_code', 'nta_name', 'borough_name', 'slug'], 'properties': {'slug': {'type': ['string', 'null']}, 'nta_code': {'type': 'string'}, 'nta_name': {'type': ['string', 'null']}, 'borough_name': {'type': ['string', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['method'], 'properties': {'method': {'type': 'string', 'description': 'An admission method key (shsat, audition, screened, ed_opt, limited_unscreened, unscreened, zoned, charter_lottery, private_admissions, prek_universal) OR an early entry point (three-k, pre-k, kindergarten, gifted-talented).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['kind', 'key', 'label', 'short', 'full', 'typical_window'], 'properties': {'key': {'type': 'string'}, 'full': {'type': 'string'}, 'kind': {'enum': ['entry_point', 'method'], 'type': 'string'}, 'label': {'type': 'string'}, 'short': {'type': 'string'}, 'stage': {'type': 'string'}, 'program_count': {'type': 'number'}, 'typical_window': {'type': 'string'}, 'special_requirements': {'type': 'object', 'required': ['badge', 'headline', 'requirements', 'extra_documents'], 'properties': {'badge': {'type': 'string'}, 'headline': {'type': 'string'}, 'requirements': {'type': 'array', 'items': {'type': 'string'}}, 'extra_documents': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'required', 'notes'], 'properties': {'label': {'type': 'string'}, 'notes': {'type': 'string'}, 'required': {'type': 'boolean'}}, 'additionalProperties': False}}}, 'additionalProperties': False}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'lat': {'type': 'number', 'maximum': 40.92, 'minimum': 40.49, 'description': 'Latitude (NYC box). Provide with lng instead of an address.'}, 'lng': {'type': 'number', 'maximum': -73.68, 'minimum': -74.26, 'description': 'Longitude (NYC box). Provide with lat instead of an address.'}, 'address': {'type': 'string', 'minLength': 3, 'description': 'A NYC street address or place name (e.g. "350 5th Ave, Manhattan"). Geocoded via OpenStreetMap, NYC-bounded. Provide this OR lat+lng.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query', 'nta'], 'properties': {'nta': {'type': 'object', 'required': ['nta_code', 'nta_name', 'borough', 'borough_name', 'slug'], 'properties': {'slug': {'type': ['string', 'null']}, 'borough': {'type': ['number', 'null']}, 'nta_code': {'type': 'string'}, 'nta_name': {'type': ['string', 'null']}, 'borough_name': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'query': {'type': 'object', 'required': ['address', 'lat', 'lng'], 'properties': {'lat': {'type': ['number', 'null']}, 'lng': {'type': ['number', 'null']}, 'address': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['nta_code'], 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Max activities to return (ignored when count_only)'}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0, 'description': 'Number of activities to skip, for paging through the full list'}, 'nta_code': {'type': 'string', 'maxLength': 6, 'description': 'NTA code'}, 'count_only': {'type': 'boolean', 'default': False, 'description': 'Return only category counts'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['total'], 'properties': {'total': {'type': 'number'}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dbn'], 'properties': {'dbn': {'type': 'string', 'maxLength': 40, 'description': 'School DBN (e.g. 02M475 for Stuyvesant, 13K430 for Brooklyn Tech)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dbn', 'school_name', 'governance', 'note', 'programs'], 'properties': {'dbn': {'type': 'string'}, 'note': {'type': 'string'}, 'programs': {'type': 'array', 'items': {'type': 'object', 'required': ['program', 'method', 'seats', 'applicants', 'apps_per_seat', 'offer_rate', 'fill_rate', 'competitiveness', 'description'], 'properties': {'seats': {'type': ['number', 'null']}, 'method': {'type': ['string', 'null']}, 'program': {'type': ['string', 'null']}, 'fill_rate': {'type': ['number', 'null']}, 'applicants': {'type': ['number', 'null']}, 'offer_rate': {'type': ['number', 'null']}, 'description': {'type': ['string', 'null']}, 'apps_per_seat': {'type': ['number', 'null']}, 'competitiveness': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'governance': {'type': ['string', 'null']}, 'school_name': {'type': ['string', 'null']}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'band': {'enum': ['middle', 'high'], 'type': 'string', 'description': 'Filter the MS/HS methods to one grade band'}, 'governance': {'enum': ['public', 'charter'], 'type': 'string', 'description': 'Filter the MS/HS program counts to public or charter schools'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['note', 'filters', 'entry_points', 'methods'], 'properties': {'note': {'type': 'string'}, 'filters': {'type': 'object', 'required': ['band', 'governance'], 'properties': {'band': {'type': ['string', 'null']}, 'governance': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'methods': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'short', 'full', 'typical_window', 'program_count', 'special_badge'], 'properties': {'key': {'type': 'string'}, 'full': {'type': 'string'}, 'label': {'type': 'string'}, 'short': {'type': 'string'}, 'program_count': {'type': 'number'}, 'special_badge': {'type': ['string', 'null']}, 'typical_window': {'type': 'string'}}, 'additionalProperties': False}}, 'entry_points': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'stage', 'short', 'full', 'typical_window'], 'properties': {'key': {'type': 'string'}, 'full': {'type': 'string'}, 'label': {'type': 'string'}, 'short': {'type': 'string'}, 'stage': {'type': 'string'}, 'typical_window': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['nta_code'], 'properties': {'limit': {'type': 'number', 'default': 5, 'maximum': 20, 'minimum': 1, 'description': 'Number of comparable neighborhoods'}, 'nta_code': {'type': 'string', 'maxLength': 6, 'description': 'NTA code to find similar neighborhoods for'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['source', 'comparables'], 'properties': {'source': {'type': 'object', 'required': ['nta_code', 'nta_name', 'borough', 'borough_name', 'viability_score', 'scores_as_of'], 'properties': {'borough': {'type': ['number', 'null']}, 'nta_code': {'type': 'string'}, 'nta_name': {'type': 'string'}, 'borough_name': {'type': ['string', 'null']}, 'scores_as_of': {'type': ['string', 'null']}, 'viability_score': {'type': 'number'}}, 'additionalProperties': False}, 'comparables': {'type': 'array', 'items': {'type': 'object', 'required': ['nta_code', 'nta_name', 'similarity'], 'properties': {'nta_code': {'type': 'string'}, 'nta_name': {'type': ['string', 'null']}, 'similarity': {'type': 'number'}}, 'additionalProperties': True}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['nta_code'], 'properties': {'nta_code': {'type': 'string', 'maxLength': 6, 'description': 'NTA code (e.g. BK0101)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['nta_code', 'nta_name', 'borough', 'borough_name'], 'properties': {'borough': {'type': ['number', 'null']}, 'nta_code': {'type': 'string'}, 'nta_name': {'type': ['string', 'null']}, 'borough_name': {'type': ['string', 'null']}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['nta_code'], 'properties': {'nta_code': {'type': 'string', 'maxLength': 6, 'description': 'NTA code (e.g. BK0101)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['nta_code', 'nta_name', 'borough', 'borough_name', 'summary'], 'properties': {'borough': {'type': ['number', 'null']}, 'summary': {'type': 'string'}, 'nta_code': {'type': 'string'}, 'nta_name': {'type': ['string', 'null']}, 'borough_name': {'type': ['string', 'null']}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['nta_code'], 'properties': {'nta_code': {'type': 'string', 'maxLength': 6, 'description': 'NTA code'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ntaCode'], 'properties': {'ntaCode': {'type': 'string'}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['nta_code'], 'properties': {'nta_code': {'type': 'string', 'maxLength': 6, 'description': 'NTA code'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ntaCode'], 'properties': {'ntaCode': {'type': 'string'}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['nta_code'], 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Max schools to return (ignored when count_only)'}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0, 'description': 'Number of schools to skip, for paging through the full list'}, 'nta_code': {'type': 'string', 'maxLength': 6, 'description': 'NTA code'}, 'count_only': {'type': 'boolean', 'default': False, 'description': 'Return only counts by governance type'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['total'], 'properties': {'total': {'type': 'number'}}, 'additionalProperties': True}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'How many top neighborhoods to return'}, 'borough': {'enum': ['Manhattan', 'Brooklyn', 'Queens', 'Bronx', 'Staten Island'], 'type': 'string', 'description': 'Restrict the ranking to one borough'}, 'weights': {'type': 'object', 'properties': {'safety_score': {'type': 'number', 'minimum': 0}, 'wealth_index': {'type': 'number', 'minimum': 0}, 'family_density': {'type': 'number', 'minimum': 0}, 'health_environment': {'type': 'number', 'minimum': 0}, 'education_orientation': {'type': 'number', 'minimum': 0}, 'transit_accessibility': {'type': 'number', 'minimum': 0}, 'neighborhood_stability': {'type': 'number', 'minimum': 0}}, 'description': 'Per-metric importance (0+; higher = matters more). Any subset; normalized internally. Overrides priorities when both are given.', 'additionalProperties': False}, 'priorities': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Ranked priority keywords, most important first â\x80\x94 e.g. ["safety","schools","affordability"]. Mapped to metric weights with rank decay (used only when `weights` is absent).'}, 'min_population': {'type': 'integer', 'default': 1000, 'minimum': 0, 'description': 'Residential floor â\x80\x94 drops parks/cemeteries/airports that score ~100 by having almost no residents (default 1000).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['weights_used', 'scope', 'count', 'scores_as_of', 'neighborhoods'], 'properties': {'count': {'type': 'number'}, 'scope': {'type': 'object', 'required': ['borough'], 'properties': {'borough': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'scores_as_of': {'type': ['string', 'null']}, 'weights_used': {'type': 'object', 'required': ['family_density', 'education_orientation', 'wealth_index', 'neighborhood_stability', 'transit_accessibility', 'safety_score', 'health_environment'], 'properties': {'safety_score': {'type': 'number', 'minimum': 0}, 'wealth_index': {'type': 'number', 'minimum': 0}, 'family_density': {'type': 'number', 'minimum': 0}, 'health_environment': {'type': 'number', 'minimum': 0}, 'education_orientation': {'type': 'number', 'minimum': 0}, 'transit_accessibility': {'type': 'number', 'minimum': 0}, 'neighborhood_stability': {'type': 'number', 'minimum': 0}}, 'additionalProperties': False}, 'neighborhoods': {'type': 'array', 'items': {'type': 'object', 'required': ['rank', 'nta_code', 'nta_name', 'borough_name', 'slug', 'fit_score', 'scores'], 'properties': {'rank': {'type': 'number'}, 'slug': {'type': ['string', 'null']}, 'scores': {'type': 'object', 'required': ['family_density', 'education_orientation', 'wealth_index', 'neighborhood_stability', 'transit_accessibility', 'safety_score', 'health_environment'], 'properties': {'safety_score': {'$ref': '#/properties/weights_used/properties/safety_score'}, 'wealth_index': {'$ref': '#/properties/weights_used/properties/wealth_index'}, 'family_density': {'$ref': '#/properties/weights_used/properties/family_density'}, 'health_environment': {'$ref': '#/properties/weights_used/properties/health_environment'}, 'education_orientation': {'$ref': '#/properties/weights_used/properties/education_orientation'}, 'transit_accessibility': {'$ref': '#/properties/weights_used/properties/transit_accessibility'}, 'neighborhood_stability': {'$ref': '#/properties/weights_used/properties/neighborhood_stability'}}, 'additionalProperties': False}, 'nta_code': {'type': 'string'}, 'nta_name': {'type': ['string', 'null']}, 'fit_score': {'type': 'number'}, 'borough_name': {'type': ['string', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Max results'}, 'query': {'type': 'string', 'description': 'Search NTA name (case-insensitive)'}, 'borough': {'enum': ['Manhattan', 'Brooklyn', 'Queens', 'Bronx', 'Staten Island'], 'type': 'string', 'description': 'Filter by borough'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['count', 'neighborhoods'], 'properties': {'count': {'type': 'number', 'description': 'Number of neighborhoods returned'}, 'neighborhoods': {'type': 'array', 'items': {'type': 'object', 'required': ['nta_code', 'nta_name', 'borough', 'borough_name'], 'properties': {'lat': {'type': ['number', 'null']}, 'lng': {'type': ['number', 'null']}, 'slug': {'type': ['string', 'null']}, 'borough': {'type': ['number', 'null']}, 'nta_code': {'type': 'string'}, 'nta_name': {'type': ['string', 'null']}, 'borough_name': {'type': ['string', 'null']}}, 'additionalProperties': True}}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
MYOPL Pickleball Public Knowledge
Provides pickleball rule and help information, public player ratings, and discovery of courts, clubs, and open play by location.
MaCalculatriceEnLigne
Provides calculators for French and Belgian taxes, salaries, pensions, VAT, loans, health metrics, education scores, fitness, and…
SupplyGraph.AI Data
Provides China-focused location, surrounding-area, company, industry-chain, property, population, retail, and regional business i…
Microburbs Australian Property Data
Provides Australian property, suburb, valuation, sales, rental, zoning, school, risk, geospatial, and census statistics.
gisgp
Provides GIS geocoding, routing, spatial transformations, ArcGIS layer inspection and export, and location due diligence for haza…
HiveLearn
Creates and manages courses, lessons, quizzes, enrollments, learning tracks, events, certificates, resources, progress, and commu…
concordance
Provides deterministic claim verification and audit receipts, along with Bible references, commentary, geography, indexed knowled…
opportunity-exchange
Provides governed Saskatchewan labor-market, wage, housing, community-economy, workforce-pathway, procurement, and business-readi…