@agent-native/core 0.22.26 → 0.22.28
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/action.d.ts +7 -2
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js.map +1 -1
- package/dist/client/StarfieldBackground.d.ts +6 -0
- package/dist/client/StarfieldBackground.d.ts.map +1 -0
- package/dist/client/StarfieldBackground.js +411 -0
- package/dist/client/StarfieldBackground.js.map +1 -0
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +4 -0
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -0
- package/dist/client/index.js.map +1 -1
- package/dist/index.browser.d.ts +1 -1
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/build-server.d.ts.map +1 -1
- package/dist/mcp/build-server.js +79 -70
- package/dist/mcp/build-server.js.map +1 -1
- package/dist/server/embed-route.js +2 -2
- package/dist/server/embed-route.js.map +1 -1
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +51 -13
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/server/security-headers.js +2 -2
- package/dist/server/security-headers.js.map +1 -1
- package/docs/content/actions.md +3 -1
- package/docs/content/external-agents.md +38 -12
- package/docs/content/mcp-protocol.md +7 -2
- package/package.json +1 -1
|
@@ -50,7 +50,9 @@ the connector in a chat.
|
|
|
50
50
|
|
|
51
51
|
OAuth grants are per host and per user. The host stores the tokens and
|
|
52
52
|
mediates tool/resource calls, so inline MCP App previews never receive raw
|
|
53
|
-
OAuth tokens.
|
|
53
|
+
OAuth tokens. ChatGPT can keep a reviewed or published connector's tool
|
|
54
|
+
snapshot until you refresh/review it again, so rescan the connector after MCP
|
|
55
|
+
tool or MCP App metadata changes. The scopes are:
|
|
54
56
|
|
|
55
57
|
| Scope | What it enables |
|
|
56
58
|
| ----------- | ---------------------------------------------------- |
|
|
@@ -170,7 +172,15 @@ When the client requests no explicit scope, the app grants all three so the conn
|
|
|
170
172
|
|
|
171
173
|
## What you can do once connected {#what-you-can-do}
|
|
172
174
|
|
|
173
|
-
Once your agent is connected, the
|
|
175
|
+
Once your agent is connected, the available MCP tool surface depends on the
|
|
176
|
+
host. Developer clients and bearer/static-token clients get the app's full
|
|
177
|
+
action surface plus the `ask-agent` meta-tool that runs the full agent loop
|
|
178
|
+
(the same entry point [A2A](/docs/a2a-protocol) uses). OAuth chat hosts that
|
|
179
|
+
request `mcp:apps`, including Claude and ChatGPT, get a compact app-facing
|
|
180
|
+
catalog instead: cross-app verbs such as `list_apps` and `open_app`, app-only
|
|
181
|
+
embed helpers, and actions that explicitly declare `mcpApp`. In both cases,
|
|
182
|
+
ask the agent to do real work and it hands back a link straight into the
|
|
183
|
+
running app:
|
|
174
184
|
|
|
175
185
|
```
|
|
176
186
|
> draft an email to John about the Q3 report
|
|
@@ -183,12 +193,23 @@ Click that link and Mail opens with the draft restored — focused exactly where
|
|
|
183
193
|
|
|
184
194
|
### MCP Apps compatibility {#mcp-apps-compatibility}
|
|
185
195
|
|
|
186
|
-
Agent-native apps also speak the official MCP Apps extension. When any action
|
|
196
|
+
Agent-native apps also speak the official MCP Apps extension. When any action
|
|
197
|
+
declares `mcpApp`, the server advertises
|
|
198
|
+
`extensions["io.modelcontextprotocol/ui"]`, includes `_meta.ui.resourceUri` /
|
|
199
|
+
`_meta["ui/resourceUri"]` in `tools/list`, and serves the HTML UI through
|
|
200
|
+
`resources/list` + `resources/read` as `text/html;profile=mcp-app`. Resource
|
|
201
|
+
security metadata such as CSP and sandbox permissions lives on the resource
|
|
202
|
+
entries and `resources/read` content, not on the tool descriptor.
|
|
187
203
|
|
|
188
204
|
That makes the same app surface available to every compatible host rather than building per-client shims. The current official MCP Apps client list includes Claude, Claude Desktop, VS Code GitHub Copilot, Goose, Postman, MCPJam, ChatGPT, and Cursor; host support still varies by plan, release channel, and client version, so check the [MCP extension support matrix](https://modelcontextprotocol.io/extensions/client-matrix). ChatGPT custom MCP apps are available through developer mode for Business and Enterprise/Edu workspaces on ChatGPT web; see OpenAI's [developer mode and MCP apps](https://help.openai.com/en/articles/12584461-developer-mode-and-full-mcp-apps-in-chatgpt-beta) notes.
|
|
189
205
|
|
|
190
206
|
Claude Code and other CLI-first clients still receive the same resources and metadata when they support MCP Apps, but the deep link remains the reliable fallback when a host chooses not to render an iframe. In practice, every agent-native app should be authored with both: MCP Apps for inline review/edit in capable hosts, and `link` for universal round-tripping back to the full app.
|
|
191
207
|
|
|
208
|
+
Claude and ChatGPT can cache tool and resource metadata for an existing custom
|
|
209
|
+
connector. After changing MCP App metadata, verify with a fresh tool call; if
|
|
210
|
+
the host still uses the old descriptor, reconnect the Claude connector or
|
|
211
|
+
rescan/review the ChatGPT connector so it refreshes the catalog.
|
|
212
|
+
|
|
192
213
|
### First-class MCP App bridge {#mcp-app-bridge}
|
|
193
214
|
|
|
194
215
|
MCP App embeds are route embeds, not separate mini-products. `embedApp()`
|
|
@@ -223,13 +244,15 @@ relays the same host actions over `agentNative.mcpHost.*` postMessage
|
|
|
223
244
|
requests. Keep the result shape identical for both paths: return a focused
|
|
224
245
|
`link` and concise structured content.
|
|
225
246
|
|
|
226
|
-
The resource shell owns the outer host size.
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
247
|
+
The resource shell owns the outer host size. `embedApp({ height })` defaults
|
|
248
|
+
to `560px`, clamps the shell to `320-900px`, and reserves `44px` for the small
|
|
249
|
+
toolbar, so the route viewport is `height - 44px`. Keep embedded app routes
|
|
250
|
+
internally scrollable and let the launcher report that bounded intrinsic
|
|
251
|
+
height rather than the full document height; otherwise host auto-resize can
|
|
252
|
+
turn a normal app page into a very tall chat artifact. A changed shell only
|
|
253
|
+
affects new MCP App resources and new tool calls. Old ChatGPT/Claude
|
|
254
|
+
conversation frames can keep the previous resource behavior, so verify sizing
|
|
255
|
+
with a fresh inline render before judging a fix.
|
|
233
256
|
|
|
234
257
|
Claude uses the single-frame transplant path by default. You can also force it
|
|
235
258
|
in other hosts with `embedMode: "transplant"` or `frame: "transplant"` when
|
|
@@ -370,8 +393,11 @@ Keep the existing `link` builder even when adding `mcpApp`. CLI-only clients, ol
|
|
|
370
393
|
|
|
371
394
|
`embedApp()` includes the MCP request origin in the resource CSP so the launcher
|
|
372
395
|
can fetch and, when explicitly requested, frame the signed first-party app
|
|
373
|
-
route.
|
|
374
|
-
|
|
396
|
+
route. Dispatch adds the exact origins for the granted apps to its `open_app`
|
|
397
|
+
resource so a single Dispatch connector can inline Mail, Calendar, Slides, and
|
|
398
|
+
the rest without allowing every HTTPS origin. Only pass additional frame or
|
|
399
|
+
resource domains for a custom MCP App that truly embeds a third-party player or
|
|
400
|
+
loads third-party assets.
|
|
375
401
|
|
|
376
402
|
Inside those `embedApp()` routes, `sendToAgentChat()` is embed-aware.
|
|
377
403
|
Auto-submitted prompts relay to the MCP host as `ui/update-model-context` plus
|
|
@@ -94,7 +94,9 @@ custom actions can return the same field when they already know the target
|
|
|
94
94
|
route.
|
|
95
95
|
|
|
96
96
|
The outer MCP resource reports a bounded inline height to the host and the app
|
|
97
|
-
route scrolls internally.
|
|
97
|
+
route scrolls internally. `embedApp({ height })` defaults to a `560px` shell,
|
|
98
|
+
clamps to `320-900px`, and subtracts `44px` for the wrapper toolbar before
|
|
99
|
+
sizing the route viewport. Do not rely on host auto-resize measuring the full
|
|
98
100
|
document; in ChatGPT and Claude this can make a normal full-app route appear as
|
|
99
101
|
a huge chat artifact. Host conversations also keep already-rendered iframes, so
|
|
100
102
|
after changing the resource shell or `ui://` version, test a fresh tool call
|
|
@@ -129,7 +131,10 @@ relay:
|
|
|
129
131
|
|
|
130
132
|
`embedApp()` includes the MCP request origin in the resource CSP so the
|
|
131
133
|
launcher can fetch and, when explicitly requested, frame the signed first-party
|
|
132
|
-
route.
|
|
134
|
+
route. Dispatch's `open_app` resource adds the exact origins for apps granted
|
|
135
|
+
through Dispatch, which keeps the one-connector path narrow while still letting
|
|
136
|
+
Claude/ChatGPT inline target app routes. Pass additional domains only for
|
|
137
|
+
custom third-party frames or assets.
|
|
133
138
|
|
|
134
139
|
Host-mediated open links keep the iframe from choosing its own browser target.
|
|
135
140
|
Model context updates are opt-in and hidden from the user-facing transcript.
|
package/package.json
CHANGED