spike: MCP elicitations PoC (do not merge) - #359
Draft
barryroodt wants to merge 20 commits into
Draft
Conversation
…ad of repo literal
…-issues input_required
…n guard, fail-fast partial config
…e covers staging adapter
…red — replays cannot double-POST
…cret stores, happy path
…substrings and encodings
…ret-isolation claims
…etime counterexample
…g, not human presence
barryroodt
force-pushed
the
barryroodt/mcp-elicitations-poc
branch
from
August 12, 2026 08:30
ecdf8b4 to
59af11a
Compare
Coverage Report for CI Build 31578643635Coverage decreased (-0.001%) to 96.512%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
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.
Do not merge. This is a record of the MCP elicitations spike, opened so the findings and the test suite are reviewable in one place instead of a Slack summary.
packages/mcp-elicitations-pocisprivate: trueand sits outsiderelease-please-config.json.Based on
main, not onraulb/spike-mcp-v2. The PoC package pins@modelcontextprotocol/{client,node,server}@2.0.0directly rather thancatalog:, so it already validates against the v2 SDK end state while the rest of the workspace stays on v1. Both majors coexist under different package names. The lockfile change is additive (+89, -0) and no existing package is touched.What it answers
FINDINGS.md carries the per-risk verdicts. Two of them are why this is worth reading:
jtienforcement needs one atomic store shared across every server instance. Two instances with separate stores both accept the same replay (replay-dedupe.test.ts). Fail-closed on a store outage is not built.risk-4 is a PASS with a caveat worth naming in the RFC: the PoC hand-authors capability gating inside one tool. That is the wrong shape to ship, since the approved design puts routing in the shared server runtime.
Checks
The new
Elicitations PoCworkflow runstypecheckplusvitest runon this package (8 files, 49 tests, no network, no credentials). The existingTestsjob stays filtered to the three published packages, so it reports nothing about this package by design. That is deliberate, not an oversight.Manual path
README.md.
pnpm --filter @supabase/mcp-elicitations-poc devbrings up form mode on:3900/mcp, URL mode on:3902/mcp, and the mock connect page on:3901/connect. Drive it from MCP Inspector's web UI in Chrome, with the connection's Protocol Era set to Modern (2026-07-28). It defaults to Legacy, which silently exercises the deterministic token path instead. The Inspector CLI never declares elicitation capability, so it cannot reach MRTR at all (NOTES.risk5.md).Real staging project creation is env-gated behind
MANAGEMENT_API_URL+MANAGEMENT_API_TOKENand restricted to https +*.supabase.green. Mock mode is the default and needs no account.Not included
Two later spikes on session correlation and auth-grant derivation are still local. They carry no tests and no FINDINGS entry, so they would weaken the record. I'll fold them in as a risk-7 if they turn out to matter for the RFC.