@noodleseed/agent-kit 0.48.2 → 0.50.0
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/manifest.json +249 -249
- package/package.json +1 -1
- package/skills/claude-code/SKILL.md +1 -1
- package/skills/claude-code/authoring-mcp-servers/SKILL.md +1 -1
- package/skills/claude-code/building-mcp-apps/SKILL.md +1 -1
- package/skills/claude-code/connecting-apis-to-mcp/SKILL.md +1 -1
- package/skills/claude-code/debugging-mcp-delivery/SKILL.md +1 -1
- package/skills/claude-code/deploying-mcp-services/SKILL.md +1 -1
- package/skills/claude-code/designing-mcp-products/SKILL.md +1 -1
- package/skills/claude-code/embedding-mcp-assistants/SKILL.md +1 -1
- package/skills/claude-code/examples/customer-auth/README.md +38 -4
- package/skills/claude-code/examples/customer-auth/src/server.ts +5 -0
- package/skills/claude-code/examples/customer-auth/test/server.test.ts +13 -0
- package/skills/claude-code/executing-noodle-plans/SKILL.md +1 -1
- package/skills/claude-code/publishing-mcp-integrations/SKILL.md +1 -1
- package/skills/claude-code/references/authoring-workflow.md +23 -0
- package/skills/claude-code/references/embedded-assistant.md +17 -4
- package/skills/claude-code/references/troubleshooting.md +7 -0
- package/skills/claude-code/reporting-noodle-feedback/SKILL.md +1 -1
- package/skills/claude-code/verifying-mcp-delivery/SKILL.md +1 -1
- package/skills/codex/SKILL.md +1 -1
- package/skills/codex/authoring-mcp-servers/SKILL.md +1 -1
- package/skills/codex/building-mcp-apps/SKILL.md +1 -1
- package/skills/codex/connecting-apis-to-mcp/SKILL.md +1 -1
- package/skills/codex/debugging-mcp-delivery/SKILL.md +1 -1
- package/skills/codex/deploying-mcp-services/SKILL.md +1 -1
- package/skills/codex/designing-mcp-products/SKILL.md +1 -1
- package/skills/codex/embedding-mcp-assistants/SKILL.md +1 -1
- package/skills/codex/examples/customer-auth/README.md +38 -4
- package/skills/codex/examples/customer-auth/src/server.ts +5 -0
- package/skills/codex/examples/customer-auth/test/server.test.ts +13 -0
- package/skills/codex/executing-noodle-plans/SKILL.md +1 -1
- package/skills/codex/publishing-mcp-integrations/SKILL.md +1 -1
- package/skills/codex/references/authoring-workflow.md +23 -0
- package/skills/codex/references/embedded-assistant.md +17 -4
- package/skills/codex/references/troubleshooting.md +7 -0
- package/skills/codex/reporting-noodle-feedback/SKILL.md +1 -1
- package/skills/codex/verifying-mcp-delivery/SKILL.md +1 -1
|
@@ -110,7 +110,9 @@ Do not put these model values in the embedding SaaS environment. A production de
|
|
|
110
110
|
|
|
111
111
|
## Access modes and customer auth
|
|
112
112
|
|
|
113
|
-
Session exchange authenticates with the backend client credentials, so the embed works under any `--access` mode.
|
|
113
|
+
Session exchange authenticates with the backend client credentials, so the embed works under any `--access` mode. The assistant does not select direct MCP access or protected-resource discovery. If protected-resource metadata advertises an unexpected issuer, inspect the exact active deployment before changing auth by following `references/troubleshooting.md`.
|
|
114
|
+
|
|
115
|
+
Add `--access customers` only when verified end customers should also call the MCP endpoint directly. That mode requires `server.auth`; `noodle deploy` preflights the rule locally and fails with `server_auth_required` before contacting the service. Fix by adding auth to server options:
|
|
114
116
|
|
|
115
117
|
```ts
|
|
116
118
|
auth: customerAuth.federatedOidc({
|
|
@@ -154,7 +156,12 @@ export async function POST(request: Request) {
|
|
|
154
156
|
clientId: process.env.NOODLE_ASSISTANT_CLIENT_ID!,
|
|
155
157
|
clientSecret: process.env.NOODLE_ASSISTANT_CLIENT_SECRET!,
|
|
156
158
|
origin: process.env.PUBLIC_APP_ORIGIN!,
|
|
157
|
-
user: {
|
|
159
|
+
user: {
|
|
160
|
+
id: user.id,
|
|
161
|
+
email: user.email,
|
|
162
|
+
roles: user.roles,
|
|
163
|
+
scopes: user.scopes,
|
|
164
|
+
},
|
|
158
165
|
context,
|
|
159
166
|
// Saved, backend-verified user preferences outrank browser hints.
|
|
160
167
|
preferences: { locale: user.locale, timeZone: user.timeZone },
|
|
@@ -163,7 +170,7 @@ export async function POST(request: Request) {
|
|
|
163
170
|
}
|
|
164
171
|
```
|
|
165
172
|
|
|
166
|
-
Authenticate before exchange. Source `origin` from trusted server configuration or strictly match the request origin against the same exact allowlist; never accept an arbitrary request header. Treat page context as untrusted model context, never authorization. Forward the helper response unchanged.
|
|
173
|
+
Authenticate before exchange. Pass backend-verified `user.roles` and OAuth-style `user.scopes` separately; they govern the same per-tool authorization rules as verified MCP bearer claims. Source `origin` from trusted server configuration or strictly match the request origin against the same exact allowlist; never accept an arbitrary request header. Treat page context as untrusted model context, never authorization. Forward the helper response unchanged.
|
|
167
174
|
|
|
168
175
|
`serviceUrl` is the Noodle Seed control-plane base URL: the value `noodle assistant clients create` prints, also stored as `serviceUrl` in `deployment.json`. It is NOT the deployment MCP endpoint (`url`, which ends in `/v1/mcp` and rejects session exchange). Never probe or guess endpoints with real credentials.
|
|
169
176
|
|
|
@@ -204,7 +211,13 @@ The embedding developer defines what authenticated session context the assistant
|
|
|
204
211
|
```ts
|
|
205
212
|
const session = await createAssistantSession({
|
|
206
213
|
serviceUrl, clientId, clientSecret, origin,
|
|
207
|
-
user: {
|
|
214
|
+
user: {
|
|
215
|
+
id: user.id,
|
|
216
|
+
email: user.email,
|
|
217
|
+
name: user.name,
|
|
218
|
+
roles: user.roles,
|
|
219
|
+
scopes: user.scopes,
|
|
220
|
+
},
|
|
208
221
|
claims: { displayName: user.name, accountTier: account.tier, region: account.region },
|
|
209
222
|
});
|
|
210
223
|
```
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
## Contents
|
|
4
4
|
|
|
5
5
|
- First moves
|
|
6
|
+
- Customer-auth metadata
|
|
6
7
|
- Symptom map
|
|
7
8
|
|
|
8
9
|
## First moves
|
|
@@ -11,6 +12,12 @@ Re-run the local gates before debugging in-host: `noodle validate`, `noodle chec
|
|
|
11
12
|
|
|
12
13
|
For protocol/conformance checks, the headless harness is `@mcpjam/cli`, not a `noodle` subcommand. Use it against a local `noodle dev` URL without an access token, or against hosted URLs through the host/OAuth flow printed by `noodle connect`.
|
|
13
14
|
|
|
15
|
+
## Customer-auth metadata
|
|
16
|
+
|
|
17
|
+
Adding `embeddedAssistant(...)` does not select the MCP access mode or authorization server. Before changing auth, inspect the exact active deployment with `noodle deployments list --org <org> --app <app> --env <env> --json` and match its active deployment ID, server version, and access mode to the endpoint being tested.
|
|
18
|
+
|
|
19
|
+
For `customers` access, Direct or federated customer auth must advertise the configured tenant issuer; a managed Noodle bridge must advertise the Noodle authorization server. Owner-only access advertises the platform authorization server. If a direct or federated `customers` deployment still advertises the platform issuer, treat it as `customer_auth_state_inconsistent` and escalate with the endpoint, active deployment ID, and sanitized protected-resource metadata. Do not proxy, rewrite, rotate, or redeploy to hide the mismatch. Never share bearer tokens, refresh tokens, client secrets, or credential files.
|
|
20
|
+
|
|
14
21
|
## Symptom map
|
|
15
22
|
|
|
16
23
|
| Symptom | Likely cause | Fix |
|
|
@@ -3,7 +3,7 @@ name: reporting-noodle-feedback
|
|
|
3
3
|
description: "Use when a Noodle Seed bug, misleading instruction, missing capability, or concrete product improvement should be proposed to the user."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.50.0 hash:0f404109f4845683 -->
|
|
7
7
|
|
|
8
8
|
# reporting-noodle-feedback
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: verifying-mcp-delivery
|
|
|
3
3
|
description: "Use when proving a Noodle Seed MCP project works at a named compile, local, connector, App, host, deployment, or production evidence level."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.50.0 hash:6ef6ef551e26b78e -->
|
|
7
7
|
|
|
8
8
|
# verifying-mcp-delivery
|
|
9
9
|
|