Add geocoding disambiguation with elicitations#98
Open
mattpodwysocki wants to merge 5 commits intomainfrom
Open
Add geocoding disambiguation with elicitations#98mattpodwysocki wants to merge 5 commits intomainfrom
mattpodwysocki wants to merge 5 commits intomainfrom
Conversation
mattpodwysocki
added a commit
that referenced
this pull request
Jan 15, 2026
…servers Technical deep-dive comparing Mapbox MCP Server against competitors: Key Findings: - Mapbox: 24 tools (most comprehensive) - TomTom: 11 tools - Google Grounding Lite: 3 tools - Google Community: 7 tools Mapbox Unique Strengths: - 9 offline geospatial tools (only server with offline capabilities) - Most sophisticated routing (multi-waypoint, exclusions, constraints) - Only server with map matching for GPS trace cleanup - Only server with travel time matrices - Production-ready monitoring (OpenTelemetry) - MCP protocol leadership (Resources, MCP-UI, Elicitations in progress) Competitor Strengths: - TomTom: Real-time traffic incidents (unique) - Google Grounding: Weather data (unique) - Google Community: Reviews/ratings, elevation data Document includes: - Complete tool inventory for all servers - Feature comparison matrices - Use case fit analysis - Deployment options - Pricing comparison - Roadmap (mentions elicitations in progress - PRs #98, #99) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Updates the MCP SDK from 1.25.1 to 1.25.2 and recreates the output validation patch for the new version. The patch continues to convert strict output schema validation errors to warnings, allowing tools to gracefully handle schema mismatches. Changes: - Update @modelcontextprotocol/sdk from ^1.25.1 to ^1.25.2 - Recreate SDK patch for version 1.25.2 - Remove obsolete 1.25.1 patch file - All 397 tests pass with new SDK version Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Implement elicitation support for SearchAndGeocodeTool - When 2-10 results are returned, present user with selection form - User can select specific result or decline to see all results - Falls back gracefully if elicitation fails or is unsupported - Uses enum with enumNames for better UX in supporting clients Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Test elicitation triggers when 2-10 results returned - Test no elicitation with 1 result or >10 results - Test user accepts elicitation (returns selected result) - Test user declines elicitation (returns all results) - Test graceful fallback when elicitation fails - Test graceful fallback when server not installed - Test enumNames are correctly formatted with location labels - Mock server.elicitInput and sendLoggingMessage for testing All 25 SearchAndGeocodeTool tests passing. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
7d8cab3 to
2e0a0fe
Compare
package.json
Outdated
| "@mcp-ui/server": "^6.1.0", | ||
| "@modelcontextprotocol/ext-apps": "^1.1.1", | ||
| "@modelcontextprotocol/sdk": "^1.27.1", | ||
| "@mcp-ui/server": "^5.13.1", |
There was a problem hiding this comment.
@mcp-ui/server 5.16.3 / package.json
Total vulnerabilities: 3
| Critical: 1 | High: 2 | Medium: 0 | Low: 0 |
|---|
| Vulnerability ID | Severity | CVSS | Fixed in | Status |
|---|---|---|---|---|
| CVE-2026-29045 | 9.8 | - |
Open | |
| CVE-2026-2391 | 7.5 | - |
Open | |
| CVE-2026-29087 | - | - |
Open |
package.json
Outdated
| "@modelcontextprotocol/ext-apps": "^1.1.1", | ||
| "@modelcontextprotocol/sdk": "^1.27.1", | ||
| "@mcp-ui/server": "^5.13.1", | ||
| "@modelcontextprotocol/sdk": "^1.25.2", |
There was a problem hiding this comment.
@modelcontextprotocol/sdk 1.25.2 / package.json
Total vulnerabilities: 4
| Critical: 1 | High: 3 | Medium: 0 | Low: 0 |
|---|
| Vulnerability ID | Severity | CVSS | Fixed in | Status |
|---|---|---|---|---|
| CVE-2026-29045 | 9.8 | - |
Open | |
| CVE-2026-2391 | 7.5 | - |
Open | |
| CVE-2026-29087 | - | - |
Open | |
| CVE-2026-25536 | - | 1.26.0 |
Open |
Runs npm audit fix to address 3 high severity vulnerabilities: - @hono/node-server < 1.19.10 (authorization bypass) - @modelcontextprotocol/sdk 1.10.0–1.25.3 (cross-client data leak) - hono <= 4.12.6 (JWT algorithm confusion, XSS) Also restores package.json from main to include @turf/turf and correct @mcp-ui/server version lost during rebase. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Geocoding Disambiguation with Elicitations
Overview
Implements elicitation support in the
search_and_geocode_toolto improve accuracy when searching for ambiguous location names. When the Mapbox Search API returns multiple results (2-10), the tool presents an interactive selection form to let users choose the correct location instead of returning all results.What are Elicitations?
Elicitations are part of the MCP specification that allow servers to request additional information from users through the client during tool execution. They support two modes:
Changes
SearchAndGeocodeToolto useserver.elicitInput()when 2-10 results are returnedenumwithenumNamesfor better UXUser Experience
Before:
After:
Client Support
Test plan
{"q": "Springfield"}— should trigger elicitation{"q": "Paris"}— single result, no elicitation🤖 Generated with Claude Code