@adcp/sdk 12.0.1 → 12.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/index.d.mts +2 -2
- package/dist/lib/index.d.ts +2 -2
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +2 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +3 -1
- package/dist/lib/index.mjs.map +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/adcp-server.d.ts.map +1 -1
- package/dist/lib/server/adcp-server.js +18 -0
- package/dist/lib/server/adcp-server.js.map +1 -1
- package/dist/lib/server/adcp-server.mjs +15 -0
- package/dist/lib/server/adcp-server.mjs.map +1 -1
- package/dist/lib/server/create-adcp-server.d.mts +24 -0
- package/dist/lib/server/create-adcp-server.d.ts +24 -0
- package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
- package/dist/lib/server/create-adcp-server.js +24 -2
- package/dist/lib/server/create-adcp-server.js.map +1 -1
- package/dist/lib/server/create-adcp-server.mjs +29 -2
- package/dist/lib/server/create-adcp-server.mjs.map +1 -1
- package/dist/lib/server/index.d.mts +3 -1
- package/dist/lib/server/index.d.ts +3 -1
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +3 -0
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/server/index.mjs +2 -0
- package/dist/lib/server/index.mjs.map +1 -1
- package/dist/lib/server/legacy/v5/index.d.mts +1 -1
- package/dist/lib/server/legacy/v5/index.d.ts +1 -1
- package/dist/lib/server/legacy/v5/index.d.ts.map +1 -1
- package/dist/lib/server/legacy/v5/index.js.map +1 -1
- package/dist/lib/server/legacy/v5/index.mjs.map +1 -1
- package/dist/lib/server/mcp-app.d.mts +57 -0
- package/dist/lib/server/mcp-app.d.ts +58 -0
- package/dist/lib/server/mcp-app.d.ts.map +1 -0
- package/dist/lib/server/mcp-app.js +110 -0
- package/dist/lib/server/mcp-app.js.map +1 -0
- package/dist/lib/server/mcp-app.mjs +83 -0
- package/dist/lib/server/mcp-app.mjs.map +1 -0
- package/dist/lib/server/mcp-modern-server.d.ts.map +1 -1
- package/dist/lib/server/mcp-modern-server.js +23 -1
- package/dist/lib/server/mcp-modern-server.js.map +1 -1
- package/dist/lib/server/mcp-modern-server.mjs +24 -1
- package/dist/lib/server/mcp-modern-server.mjs.map +1 -1
- package/dist/lib/version.d.mts +3 -3
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/dist/lib/version.js.map +1 -1
- package/dist/lib/version.mjs +3 -3
- package/dist/lib/version.mjs.map +1 -1
- package/docs/guides/BUILD-AN-AGENT.md +70 -0
- package/package.json +1 -1
|
@@ -562,6 +562,76 @@ createAdcpServerFromPlatform(platform, {
|
|
|
562
562
|
|
|
563
563
|
See [SIGNING-GUIDE.md](./SIGNING-GUIDE.md) for the full walkthrough: key generation, JWKS publication, brand.json, conformance testing, and KMS-backed production deployment.
|
|
564
564
|
|
|
565
|
+
### Portable MCP Apps for custom tools
|
|
566
|
+
|
|
567
|
+
Use `resources` with custom-tool `_meta.ui` to attach one host-neutral MCP
|
|
568
|
+
App to a tool. The framework registers the `ui://` resource on both legacy
|
|
569
|
+
MCP connections and every modern per-request server reconstruction; the same
|
|
570
|
+
configuration therefore works in compliant Claude, ChatGPT, and future hosts.
|
|
571
|
+
|
|
572
|
+
```typescript
|
|
573
|
+
import {
|
|
574
|
+
createAdcpServerFromPlatform,
|
|
575
|
+
MCP_APP_RESOURCE_MIME_TYPE,
|
|
576
|
+
} from '@adcp/sdk/server';
|
|
577
|
+
|
|
578
|
+
const server = createAdcpServerFromPlatform(platform, {
|
|
579
|
+
name: 'My Publisher',
|
|
580
|
+
version: '1.0.0',
|
|
581
|
+
resources: [
|
|
582
|
+
{
|
|
583
|
+
name: 'creative_upload',
|
|
584
|
+
uri: 'ui://creative/upload',
|
|
585
|
+
mimeType: MCP_APP_RESOURCE_MIME_TYPE,
|
|
586
|
+
_meta: {
|
|
587
|
+
ui: {
|
|
588
|
+
csp: {
|
|
589
|
+
connectDomains: ['https://uploads.example.com'],
|
|
590
|
+
resourceDomains: ['https://assets.example.com'],
|
|
591
|
+
},
|
|
592
|
+
prefersBorder: true,
|
|
593
|
+
},
|
|
594
|
+
},
|
|
595
|
+
handler: async () => renderUploadApp(),
|
|
596
|
+
},
|
|
597
|
+
],
|
|
598
|
+
customTools: {
|
|
599
|
+
upload_creative_asset: {
|
|
600
|
+
description: 'Open the creative upload flow.',
|
|
601
|
+
_meta: { ui: { resourceUri: 'ui://creative/upload' } },
|
|
602
|
+
handler: async () => ({
|
|
603
|
+
// Required text-only fallback for hosts without MCP Apps support.
|
|
604
|
+
content: [{ type: 'text', text: 'Upload a creative asset.' }],
|
|
605
|
+
}),
|
|
606
|
+
},
|
|
607
|
+
prepare_creative_upload: {
|
|
608
|
+
_meta: { ui: { visibility: ['app'] } },
|
|
609
|
+
handler: prepareCreativeUpload,
|
|
610
|
+
},
|
|
611
|
+
finalize_creative_upload: {
|
|
612
|
+
_meta: { ui: { visibility: ['app'] } },
|
|
613
|
+
handler: finalizeCreativeUpload,
|
|
614
|
+
},
|
|
615
|
+
},
|
|
616
|
+
});
|
|
617
|
+
```
|
|
618
|
+
|
|
619
|
+
MCP App resources always use a `ui://` URI and
|
|
620
|
+
`text/html;profile=mcp-app`; the public types and construction-time checks
|
|
621
|
+
reject other shapes. The resource `_meta.ui` object carries CSP domains,
|
|
622
|
+
permissions, a dedicated host domain, and border preference, and is emitted
|
|
623
|
+
consistently by both `resources/list` and `resources/read`.
|
|
624
|
+
|
|
625
|
+
`ui.visibility` is host routing metadata, not an authorization boundary.
|
|
626
|
+
App-only handlers must still authenticate and authorize every request, and
|
|
627
|
+
tools should always return meaningful text content so clients that do not
|
|
628
|
+
negotiate `io.modelcontextprotocol/ui` degrade gracefully. A startup warning
|
|
629
|
+
identifies any tool `resourceUri` that does not match a configured resource.
|
|
630
|
+
Resource handlers intentionally receive no authentication material: the HTML
|
|
631
|
+
bundle must be principal-independent and cache-safe. Fetch tenant data or mint
|
|
632
|
+
short-lived upload URLs through authenticated app-only tools after the app has
|
|
633
|
+
loaded.
|
|
634
|
+
|
|
565
635
|
### createTaskCapableServer (Low-Level)
|
|
566
636
|
|
|
567
637
|
For advanced cases where you need direct control over MCP tool registration, schema wiring, and response formatting. `createAdcpServerFromPlatform` calls into this internally.
|