Skip to content

docs(mcp): troubleshooting row covers the MCP enum validation error - #34

Merged
ghchinoy merged 1 commit into
mainfrom
docs/mcp-enum-error
Sep 29, 2026
Merged

ghchinoy merged 1 commit into
mainfrom
docs/mcp-enum-error

Conversation

@ghchinoy

Copy link
Copy Markdown
Owner

Follow-up to #23 (and to the troubleshooting table from #17 / #22).

Since #23, each MCP tool's backend property is an enum of the configured backends. The MCP SDK therefore rejects an unknown backend before our handler runs, with
validating /properties/backend: enum: vertex does not equal any of: [local]
instead of the allow-list's backend "vertex" is not enabled on this gateway (available: local). The troubleshooting row only listed the second message, so MCP users couldn't match the error they actually see.

The row in docs/reference/studio-mcp-api.md §3.4 (synced to docs-site/) now lists both messages and where each appears.

Verification (binary v0.1.2-4-gd1a3246)

Surface backend: "vertex" on a local-only server
stdio dgem mcp --local, decide_custom_questions enum: vertex does not equal any of: [local]
dgem serve --local, POST /mcp same enum error
dgem serve --local, POST /api/decide/support_triage backend "vertex" is not enabled on this gateway (available: local)
stdio dgem mcp --local, locate_bounding_boxes (no enum on local-only by design) allow-list error

scripts/docs_link_check.py, the docs-site build and make check-public pass.

Note: make docs-sync-check currently fails on main, but not because of this PR. #29 added PROP-17 to docs/experiments/proposed.md without syncing docs-site/. I left it alone because open PR #33 edits the same file; running scripts/docs_sync_page.py experiments/proposed.md there (or after it merges) fixes it. This PR's page passes the check.

Since #23 each MCP tool's backend property is an enum of the configured
backends, so the MCP SDK rejects an unknown backend before the handler
runs with 'validating /properties/backend: enum: <x> does not equal any
of: [...]', not the allow-list's 'backend ... is not enabled' text. The
troubleshooting row now lists both messages and where each appears (HTTP
API, and locate_bounding_boxes on a local-only server, still return the
allow-list text).

Verified with v0.1.2-4-gd1a3246: stdio dgem mcp --local and dgem serve
--local /mcp both return the enum error; /api/decide and
locate_bounding_boxes return the allow-list error.
@ghchinoy
ghchinoy merged commit 5402351 into main Sep 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant