@agent-native/core 0.22.25 → 0.22.27

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.
@@ -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. The scopes are:
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 app's full action surface is available as MCP tools, plus the `ask-agent` meta-tool that runs the full agent loop (the same entry point [A2A](/docs/a2a-protocol) uses). Ask your agent to do real work and it hands back a link straight into the running app:
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,7 +193,13 @@ 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 declares `mcpApp`, the server advertises `extensions["io.modelcontextprotocol/ui"]`, includes both `_meta.ui.resourceUri` and the legacy-compatible `_meta["ui/resourceUri"]` in `tools/list`, and serves the HTML UI through `resources/list` + `resources/read` as `text/html;profile=mcp-app`.
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
 
@@ -223,13 +239,15 @@ relays the same host actions over `agentNative.mcpHost.*` postMessage
223
239
  requests. Keep the result shape identical for both paths: return a focused
224
240
  `link` and concise structured content.
225
241
 
226
- The resource shell owns the outer host size. Keep embedded app routes
227
- internally scrollable and let the launcher report a bounded intrinsic height
228
- rather than the full document height; otherwise host auto-resize can turn a
229
- normal app page into a very tall chat artifact. A changed shell only affects
230
- new MCP App resources and new tool calls. Old ChatGPT/Claude conversation
231
- frames can keep the previous resource behavior, so verify sizing with a fresh
232
- inline render before judging a fix.
242
+ The resource shell owns the outer host size. `embedApp({ height })` defaults
243
+ to `560px`, clamps the shell to `320-900px`, and reserves `44px` for the small
244
+ toolbar, so the route viewport is `height - 44px`. Keep embedded app routes
245
+ internally scrollable and let the launcher report that bounded intrinsic
246
+ height rather than the full document height; otherwise host auto-resize can
247
+ turn a normal app page into a very tall chat artifact. A changed shell only
248
+ affects new MCP App resources and new tool calls. Old ChatGPT/Claude
249
+ conversation frames can keep the previous resource behavior, so verify sizing
250
+ with a fresh inline render before judging a fix.
233
251
 
234
252
  Claude uses the single-frame transplant path by default. You can also force it
235
253
  in other hosts with `embedMode: "transplant"` or `frame: "transplant"` when
@@ -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. Do not rely on host auto-resize measuring the full
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.22.25",
3
+ "version": "0.22.27",
4
4
  "type": "module",
5
5
  "description": "Framework for agent-native application development — where AI agents and UI share state via files",
6
6
  "license": "MIT",