Conversation
…t content/structuredContent (SEP-1865) - Server capabilities now explicitly declare the io.modelcontextprotocol/ui extension per the ext-apps Capability Negotiation section, instead of relying on implicit support. - syncro_tickets_get now returns a human-readable text summary in `content` and moves the full ticket + _card payload into `structuredContent`, matching the SEP-1865 content/structuredContent split instead of JSON-stringifying the whole payload into content. - Updated tests/domains/tickets.test.ts and tests/mcp-apps.test.ts to assert the new split and the capability declaration. Part of a fleet-wide mechanical SEP-1865 compliance backport.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 10 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughThe ticket-get operation now returns concise text and exposes the full ticket payload through ChangesMCP Apps support
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The ticket response and MCP Apps capability declaration preserve their intended client contracts. No actionable merge risk remains. 🚥 Pre-merge checks | ✅ 5 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (5 passed)
Full details: Changelog EntryExplanation The PR changes runtime behavior in
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
✨ Simplify code
Comment |
SEP-1865 compliance backport (mechanical)
Part of a fleet-wide mechanical SEP-1865 compliance backport across WYRE-AI MCP servers. A compliance audit found zero MUST-level violations but two consistent SHOULD-level gaps. This PR closes both for syncro-mcp, touching only the capability declaration and the content/structuredContent split for the card-attached tool. No refactors, no dependency bumps, no card-building logic changes.
1. Explicit
io.modelcontextprotocol/uicapability declarationPer the ext-apps spec's Capability Negotiation section, servers negotiate MCP Apps support via the standard extensions capability mechanism (SEP-1724). syncro-mcp was not declaring this, relying on implicit support.
Before (
src/mcp-server.ts):After:
2.
content/structuredContentseparationsyncro_tickets_getpreviously JSON-stringified the entire ticket payload (including the_cardUI attachment) into a singlecontenttext block. SEP-1865 expectscontentto carry a human-readable summary andstructuredContentto carry the machine-readable payload.Before (
src/domains/tickets.ts):After:
payload(ticket data +_cardwhen present) moves tostructuredContent;contentnow carries a concise one-line summary instead of a JSON dump.Tests updated
tests/domains/tickets.test.ts—syncro_tickets_gettest now asserts onstructuredContentinstead of parsingcontent[0].textas JSON.tests/mcp-apps.test.ts— added:contentis plain text (not JSON-parseable) and contains the summary, whilestructuredContentcarries the full payload.io.modelcontextprotocol/uiincapabilities.extensions.Test output (real, from this branch)
Build output
(clean, no errors, no output —
tscsucceeded)No pre-existing test failures encountered; full suite is green before and after.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by CodeRabbit