@noodleseed/agent-kit 0.58.2 → 0.60.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 +277 -245
- package/package.json +1 -1
- package/skills/claude-code/SKILL.md +5 -3
- 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 +4 -5
- 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 +16 -11
- 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 +1 -1
- package/skills/claude-code/references/embedded-assistant.md +31 -2
- package/skills/claude-code/references/examples.md +0 -1
- package/skills/claude-code/references/wrap-existing-app.md +65 -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/claude-code/wrapping-existing-applications/SKILL.md +49 -0
- package/skills/codex/SKILL.md +5 -3
- 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 +4 -5
- 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 +16 -11
- 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 +1 -1
- package/skills/codex/references/embedded-assistant.md +31 -2
- package/skills/codex/references/examples.md +0 -1
- package/skills/codex/references/wrap-existing-app.md +65 -0
- package/skills/codex/reporting-noodle-feedback/SKILL.md +1 -1
- package/skills/codex/verifying-mcp-delivery/SKILL.md +1 -1
- package/skills/codex/wrapping-existing-applications/SKILL.md +49 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noodleseed/agent-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.60.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Self-checking, self-updating agent skills for the Noodle Seed CLI. Authored in this repo by @noodle-borg/agent-kit; this is the published, independently-versioned canonical skills artifact the CLI fetches and verifies.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -3,7 +3,7 @@ name: noodle-seed
|
|
|
3
3
|
description: "Use when building, validating, testing, deploying, or operating a local or hosted Noodle Seed MCP server or app authored in TypeScript with the noodle CLI."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:d83543258e5ca5ff -->
|
|
7
7
|
|
|
8
8
|
# Noodle Seed
|
|
9
9
|
|
|
@@ -19,15 +19,16 @@ If the request is unrelated to the Noodle MCP surface, stop here: follow the pro
|
|
|
19
19
|
|
|
20
20
|
Choose exactly one primary route from the user outcome below, then load the selected sibling skill and hand off the request. Read that primary reference in full; read supporting references only when the sibling or observed evidence requires them. Do not reread the corpus or restart discovery after the handoff.
|
|
21
21
|
|
|
22
|
-
Apply this precedence when wording overlaps: concrete failure evidence takes the debugging route; an MCP App/UI outcome takes the App route;
|
|
22
|
+
Apply this precedence when wording overlaps: concrete failure evidence takes the debugging route; an MCP App/UI outcome takes the App route; an existing application with no stable, usable API or specification takes `wrapping-existing-applications`; only when all four API-evidence inputs exist—an API base URL, authentication scheme, representative safe read, and observed response—use `connecting-apis-to-mcp`; missing, stale, inaccessible, undocumented-only, or otherwise unusable evidence remains in `wrapping-existing-applications`; both integration routes take precedence over generic server building; hosted inspection is debugging read-only; hosted mutation requires the explicitly requested deployment route.
|
|
23
23
|
|
|
24
24
|
Negative routing examples: “Inspect hosted logs/status” → `inspect-hosted` (read-only). “Prepare for deployment” → the applicable build or verification route and stop with a handoff; preparation does not authorize `link`, hosted config, deployment, rollback, host writes, or submission. “Keep this local” → a build or verification route, never a hosted route.
|
|
25
25
|
|
|
26
26
|
| User outcome | Load sibling skill | Canonical playbook | Done when |
|
|
27
27
|
| :--- | :--- | :--- | :--- |
|
|
28
28
|
| Turn a vague MCP product idea into a bounded design before implementation | `designing-mcp-products` | `references/experience-design.md` (`references/authoring-workflow.md`) | The product contract identifies the user benefit, model boundary, evidence, and next implementation skill. |
|
|
29
|
+
| Plan how to wrap an existing application that has no stable usable public API | `wrapping-existing-applications` | `references/wrap-existing-app.md` (`references/authoring-workflow.md`, `references/tool-design.md`) | A sanitized identity-first capability map and repository-scoped implementation plan are presented for approval before mutation. |
|
|
29
30
|
| Create or extend a headless MCP server whose external API contract is already modeled | `authoring-mcp-servers` | `references/build-an-mcp-server.md` (`references/authoring-workflow.md`, `references/sdk-surface.md`) | The requested server behavior is locally validated and tested; connector reads have real-output evidence. |
|
|
30
|
-
| Connect a real API when
|
|
31
|
+
| Connect a real API only when all four API-evidence inputs exist: API base URL, authentication scheme, representative safe read, and observed response | `connecting-apis-to-mcp` | `references/connect-an-api.md` (`references/authoring-workflow.md`) | A representative live read returns populated, intentionally mapped fields without exposing credentials. |
|
|
31
32
|
| Build or change an MCP App, widget, or host-visible UI | `building-mcp-apps` | `references/build-an-mcp-app.md` (`references/experience-design.md`, `references/widgets-and-apps.md`) | The UI has a stated user benefit, passes the requested checks, and degrades to useful text. |
|
|
32
33
|
| Validate, test, or prove a project at a named delivery evidence level | `verifying-mcp-delivery` | `references/verify-and-recover.md` (`references/test-in-hosts.md`) | The failing evidence layer is repaired and rerun, or the remaining blocker and exact next action are reported. |
|
|
33
34
|
| Diagnose or recover an existing project with concrete local or hosted failure evidence | `debugging-mcp-delivery` | `references/verify-and-recover.md` (`references/troubleshooting.md`, `references/inspect-hosted.md`) | The failing layer is repaired and rerun, or the stable blocker and exact next action are reported. |
|
|
@@ -63,6 +64,7 @@ This is a lookup catalog, not a discovery checklist. Return here only when the s
|
|
|
63
64
|
- `references/tool-design.md` — intent-shaped tools, titles and annotations, bounded outputs, tool-surface budget, and context provisioning.
|
|
64
65
|
- `references/embedded-assistant.md` — HTTPS origins, managed model config, deploy sequencing, session exchange, browser mounting, and credential boundaries.
|
|
65
66
|
- `references/connect-an-api.md` — secure credentials, probe the live API, model the observed shape, and prove real output.
|
|
67
|
+
- `references/wrap-existing-app.md` — read-only identity-first planning for an existing application with no stable usable API.
|
|
66
68
|
- `references/build-an-mcp-app.md` — product-fit, output-boundary, fallback, and evidence workflow for an MCP App.
|
|
67
69
|
- `references/experience-design.md` — design an app experience: funnel boundary, grounding, two users, display modes, and wireframe.
|
|
68
70
|
- `references/widgets-and-apps.md` — MCP Apps, typed views, widget hooks, output shaping, and CSP.
|
|
@@ -3,7 +3,7 @@ name: authoring-mcp-servers
|
|
|
3
3
|
description: "Use when creating or extending a headless Noodle Seed MCP server, tool, resource, prompt, or typed model-facing capability."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:0b2fd8c7e43fc69f -->
|
|
7
7
|
|
|
8
8
|
# authoring-mcp-servers
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: building-mcp-apps
|
|
|
3
3
|
description: "Use when a Noodle Seed MCP App, widget, interactive card, visual interaction, or host-visible UI is the primary requested outcome."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:f7fa54992c8d7692 -->
|
|
7
7
|
|
|
8
8
|
# building-mcp-apps
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: connecting-apis-to-mcp
|
|
3
|
-
description: "Use when
|
|
3
|
+
description: "Use when all four API-evidence inputs exist—and only then: API base URL, authentication scheme, representative safe read, and observed response."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:21bbd3ec441ffd30 -->
|
|
7
7
|
|
|
8
8
|
# connecting-apis-to-mcp
|
|
9
9
|
|
|
@@ -11,13 +11,12 @@ Connect a real API using managed credentials and mappings proven against observe
|
|
|
11
11
|
|
|
12
12
|
## Use when
|
|
13
13
|
|
|
14
|
-
- Connect this
|
|
15
|
-
- Use these API credentials for a real connector.
|
|
14
|
+
- Connect this API after confirming its base URL, authentication scheme, safe read, and observed response.
|
|
16
15
|
|
|
17
16
|
## Do not use when
|
|
18
17
|
|
|
19
18
|
- Do not use for static local behavior.
|
|
20
|
-
- Do not use when
|
|
19
|
+
- Do not use when all available API evidence is stale, inaccessible, undocumented-only, or otherwise unusable.
|
|
21
20
|
|
|
22
21
|
## Required inputs
|
|
23
22
|
|
|
@@ -3,7 +3,7 @@ name: debugging-mcp-delivery
|
|
|
3
3
|
description: "Use when an existing Noodle Seed MCP project has a concrete validation, runtime, connector, App, host, deployment, or production failure."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:aa715bae12041d7c -->
|
|
7
7
|
|
|
8
8
|
# debugging-mcp-delivery
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: deploying-mcp-services
|
|
|
3
3
|
description: "Use when the user explicitly requests a Noodle Seed hosted link, configuration write, deployment, access change, rollback, or connection write."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:93e735b7ffb45df1 -->
|
|
7
7
|
|
|
8
8
|
# deploying-mcp-services
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: designing-mcp-products
|
|
|
3
3
|
description: "Use when a Noodle Seed MCP product idea needs conversational fit, user benefit, scope, interaction, or evidence design before implementation."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:76cce86729cffbee -->
|
|
7
7
|
|
|
8
8
|
# designing-mcp-products
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: embedding-mcp-assistants
|
|
|
3
3
|
description: "Use when embedding a Noodle assistant into an existing SaaS or web application with browser, identity, session, and credential boundaries."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:cc54a67f21c0ecdb -->
|
|
7
7
|
|
|
8
8
|
# embedding-mcp-assistants
|
|
9
9
|
|
|
@@ -4,9 +4,9 @@ This curated example owns the customer/end-user authentication capability slot.
|
|
|
4
4
|
can protect an MCP endpoint with direct OIDC, retain role/scope-based tool authorization, and route ordinary
|
|
5
5
|
reads and confirmed actions to the API origin selected by the verified customer's identity provider.
|
|
6
6
|
|
|
7
|
-
It also owns the customer-branded embedded-assistant presentation showcase.
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
It also owns the customer-branded embedded-assistant presentation showcase. Direct MCP calls obtain the
|
|
8
|
+
route from the verified OIDC claim; embedded sessions obtain it from the authenticated customer backend's
|
|
9
|
+
session exchange. Both paths keep the URL outside tool/model/browser-visible state.
|
|
10
10
|
|
|
11
11
|
The public developer entrypoint is [`src/server.ts`](src/server.ts). It exposes a deliberately small MCP
|
|
12
12
|
surface for organization discovery and app lifecycle operations:
|
|
@@ -171,7 +171,9 @@ and refresh, then maps approved versions of this app/environment to `noodleseed-
|
|
|
171
171
|
apps and environments use distinct audiences.
|
|
172
172
|
|
|
173
173
|
Run `noodle auth doctor src/server.ts` before sharing. Its bounded, read-only probes never register a client.
|
|
174
|
-
Adding the embedded assistant does not choose or rewrite MCP customer auth.
|
|
174
|
+
Adding the embedded assistant does not choose or rewrite MCP customer auth. Its authenticated backend may
|
|
175
|
+
bind `routing.endpoints.customer_api` during assistant-session exchange from server-owned membership data;
|
|
176
|
+
direct MCP requests continue to resolve the same endpoint from the configured verified OIDC claim.
|
|
175
177
|
|
|
176
178
|
## Per-tool authorization remains independent
|
|
177
179
|
|
|
@@ -210,10 +212,10 @@ fulfil({ input, connectors }) {
|
|
|
210
212
|
The broker exchanges a short-lived, platform-signed assertion at the fixed token endpoint and caches the
|
|
211
213
|
result by caller, connector, scopes, and a route fingerprint. The assertion carries only the route key and
|
|
212
214
|
fingerprint, never the URL. The MCP access token is never forwarded to the customer API. The exchange wire
|
|
213
|
-
contract lives in
|
|
215
|
+
contract lives in docs/spec/connectors.md.
|
|
214
216
|
|
|
215
217
|
Firebase and Microsoft remain supported managed adapters; their provider-specific contracts and tests live
|
|
216
|
-
in
|
|
218
|
+
in docs/spec/auth-and-policy.md and the SharePoint flagship.
|
|
217
219
|
|
|
218
220
|
## Supabase direct-OIDC access-token hook
|
|
219
221
|
|
|
@@ -331,9 +333,11 @@ The embedded assistant uses a customer-supplied OpenAI Chat Completions-compatib
|
|
|
331
333
|
managed values at the Noodle deployment environment; none of these values belongs in the customer web
|
|
332
334
|
application environment, and the API key never reaches the browser:
|
|
333
335
|
|
|
334
|
-
The assistant session carries a verified user, tenant, deployment, roles, and scopes
|
|
335
|
-
|
|
336
|
-
|
|
336
|
+
The assistant session carries a verified user, tenant, deployment, roles, and scopes. For this flagship's
|
|
337
|
+
routed tools, the embedding backend resolves the signed-in user's cluster from server-owned membership data
|
|
338
|
+
and passes `routing: { endpoints: { customer_api: cluster.apiBaseUrl } }` to
|
|
339
|
+
`createAssistantSession`. Noodle validates and privately stores that route; it is not returned to the
|
|
340
|
+
browser. Do not copy the route into page context, session claims, tool input, or model instructions.
|
|
337
341
|
|
|
338
342
|
```bash
|
|
339
343
|
noodle variables set ASSISTANT_MODEL_BASE_URL https://model.example.com/v1 --scope env
|
|
@@ -536,8 +540,9 @@ After deployment, use the assistant doctor to verify the embed client, model, an
|
|
|
536
540
|
noodle assistant doctor --user-id <real-test-user> --origin "$PUBLIC_APP_ORIGIN" --org <org> --app <app> --env <env>
|
|
537
541
|
```
|
|
538
542
|
|
|
539
|
-
|
|
540
|
-
|
|
543
|
+
The doctor does not invent or test an application-specific customer route. Prove routed assistant tools by
|
|
544
|
+
having the authenticated embedding backend pass the user's server-verified endpoint during session
|
|
545
|
+
exchange, then invoke one representative safe read.
|
|
541
546
|
|
|
542
547
|
If the application deliberately sends a first turn on mount, do not combine a persistent "sent" ref with a
|
|
543
548
|
mount effect. React Strict Mode can abort that provisional request and then suppress the stable remount.
|
|
@@ -3,7 +3,7 @@ name: executing-noodle-plans
|
|
|
3
3
|
description: "Use when the user asks to execute an approved, decision-complete implementation plan for a Noodle Seed project task by task with test-first changes, review, recovery, and final verification."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:6a9f132ddb79352e -->
|
|
7
7
|
|
|
8
8
|
# Execute a Noodle Seed implementation plan
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: publishing-mcp-integrations
|
|
|
3
3
|
description: "Use when preparing, reviewing, or submitting a Noodle Seed MCP integration to a host or app directory."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:efffbf82007f935d -->
|
|
7
7
|
|
|
8
8
|
# publishing-mcp-integrations
|
|
9
9
|
|
|
@@ -230,7 +230,7 @@ Role values are trusted only from the explicitly configured claim path (or the p
|
|
|
230
230
|
|
|
231
231
|
Use delegated connector auth when the downstream API must enforce its own per-user authorization — a shared service credential plus a forwarded user id would bypass it. Three shapes exist; pick by who owns the downstream:
|
|
232
232
|
|
|
233
|
-
- **`delegatedTokenExchange`** — your own API. The platform signs a short-lived, verifiable assertion of the signed-in user and exchanges it at a token endpoint you implement (RFC 8693). It works with verified customer OIDC identities and the built-in Firebase/Microsoft adapters; no per-user OAuth enrollment. Embedded-assistant sessions
|
|
233
|
+
- **`delegatedTokenExchange`** — your own API. The platform signs a short-lived, verifiable assertion of the signed-in user and exchanges it at a token endpoint you implement (RFC 8693). It works with verified customer OIDC identities and the built-in Firebase/Microsoft adapters; no per-user OAuth enrollment. Embedded-assistant sessions can bind customer-routed connectors when the authenticated embedding backend resolves each route from server-owned tenancy data and passes it during session exchange. Browser input, page context, session claims, and tool arguments cannot supply or override that private route authority.
|
|
234
234
|
- **`delegatedOAuth` with `provider: "firebase" | "microsoft"`** — Noodle-managed bridge providers using stored per-user refresh tokens. Requires the matching `customerAuth` bridge; any other provider string is the compile error `unsupported_delegated_provider`.
|
|
235
235
|
- **`delegatedSessionCookie`** — Firebase-managed session-cookie apps only; not a generic mechanism.
|
|
236
236
|
|
|
@@ -128,13 +128,13 @@ noodle assistant clients create --name web --org <org> --app <app> --env <env>
|
|
|
128
128
|
|
|
129
129
|
The CLI writes `{ clientId, clientSecret }` to a mode-`0600` file and prints only its path. Move the values into the SaaS backend secret manager without printing or committing them. Rotation invalidates the previous secret.
|
|
130
130
|
|
|
131
|
-
Validate the active deployment, backend credential, exact origin, and delegated credential exchanges
|
|
131
|
+
Validate the active deployment, backend credential, exact origin, and delegated credential exchanges that do not require an application-specific customer route:
|
|
132
132
|
|
|
133
133
|
```sh
|
|
134
134
|
noodle assistant doctor --origin "$PUBLIC_APP_ORIGIN" --org <org> --app <app> --env <env>
|
|
135
135
|
```
|
|
136
136
|
|
|
137
|
-
The doctor reads `NOODLE_ASSISTANT_CLIENT_ID` / `NOODLE_ASSISTANT_CLIENT_SECRET` or the saved mode-0600 client file and never prints the secret. Pass `--user-id <real-test-user>` only when the downstream exchange requires an existing application user.
|
|
137
|
+
The doctor reads `NOODLE_ASSISTANT_CLIENT_ID` / `NOODLE_ASSISTANT_CLIENT_SECRET` or the saved mode-0600 client file and never prints the secret. Pass `--user-id <real-test-user>` only when the downstream exchange requires an existing application user. The assistant doctor does not supply application-specific routes; after the backend mints a routed session, invoke one representative safe read to verify its route-bound exchange and connector together.
|
|
138
138
|
|
|
139
139
|
## Integrate the customer backend
|
|
140
140
|
|
|
@@ -171,6 +171,32 @@ Authenticate before exchange. Pass backend-verified `user.roles` and OAuth-style
|
|
|
171
171
|
|
|
172
172
|
`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.
|
|
173
173
|
|
|
174
|
+
### Route customer endpoints from the backend
|
|
175
|
+
|
|
176
|
+
When a connector uses `customerEndpoint("customer_api", ...)`, resolve the signed-in user's API base URL from authenticated, server-owned tenancy data and bind it during session exchange:
|
|
177
|
+
|
|
178
|
+
```ts
|
|
179
|
+
const user = await requireCurrentUser(request);
|
|
180
|
+
const account = await requireAccountMembership(user.id);
|
|
181
|
+
|
|
182
|
+
const session = await createAssistantSession({
|
|
183
|
+
serviceUrl,
|
|
184
|
+
clientId,
|
|
185
|
+
clientSecret,
|
|
186
|
+
origin,
|
|
187
|
+
user: { id: user.id, email: user.email },
|
|
188
|
+
routing: {
|
|
189
|
+
endpoints: {
|
|
190
|
+
customer_api: account.clusterApiBaseUrl,
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
});
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
The browser does not send `routing`. Authenticate the user and validate account/cluster membership before selecting the URL. Never read it from page context, request headers, session claims, tool arguments, or model output. The endpoint key must match the authored `customerEndpoint` name. Noodle validates the canonical HTTPS URL against the active artifact policy, stores it only in the private short-lived session, and omits it from the session response and caller identity.
|
|
197
|
+
|
|
198
|
+
Routing is optional: static tools continue to work, while a tool whose endpoint was omitted fails closed with `connector_route_unavailable` before credential or connector egress. A confirmed routed action binds a URL-blind fingerprint at proposal time and rejects a missing or changed route on acceptance.
|
|
199
|
+
|
|
174
200
|
## Ground time and ambient facts
|
|
175
201
|
|
|
176
202
|
Every assistant turn receives a server-authoritative instant and user-local date/time. Locale and IANA time zone resolve in this order: backend-verified `preferences` from session exchange, fresh per-turn browser `clientContext` hints, `server.context.defaults`, then platform defaults (`en-US`/`UTC`). Browser hints affect presentation and relative-date interpretation only; they are untrusted and never authorize a tool.
|
|
@@ -515,6 +541,7 @@ Devtools privacy gate: default model and connector exercises to synthetic or moc
|
|
|
515
541
|
- An expired turn re-exchanges once; interaction decisions never auto-retry. An explicit same-decision repeat returns the stored outcome without executing again.
|
|
516
542
|
- Accept, decline, and cancel are single-use. Only accept executes; the server ignores replacement tool arguments.
|
|
517
543
|
- Wrong-origin and malformed-origin requests fail closed.
|
|
544
|
+
- Browser-controlled fields cannot select or override `routing.endpoints`; a customer-routed connector uses only the backend-verified session route.
|
|
518
545
|
- Run the production-equivalent host build after regenerating environment bindings.
|
|
519
546
|
- In a real browser, submit with the keyboard, inspect console and network failures, complete session exchange and one tool turn, and render one linked App before claiming the host works.
|
|
520
547
|
|
|
@@ -530,6 +557,8 @@ Devtools privacy gate: default model and connector exercises to synthetic or moc
|
|
|
530
557
|
| Validate rejects an origin | Non-loopback HTTP origin in `allowedOrigins` | Use the exact HTTPS production origin; HTTP is only for `localhost`/`127.0.0.1` |
|
|
531
558
|
| Session exchange returns 404 | `serviceUrl` points at the deployment MCP endpoint | Use the control-plane service URL printed by `noodle assistant clients create` |
|
|
532
559
|
| Session exchange returns 403 `origin is not allowed` | Request origin differs from `allowedOrigins` character-for-character | Align the exact scheme/host/port on both sides and redeploy |
|
|
560
|
+
| Session exchange returns `400` with `invalid assistant routing` | The authenticated backend supplied an unknown endpoint name or a malformed/policy-disallowed URL | Resolve the route from server-owned membership, use the exact authored endpoint name, and ensure the canonical HTTPS URL satisfies its active `customerEndpoint` policy; the error never reflects the URL |
|
|
561
|
+
| A routed assistant tool returns `connector_route_unavailable` | The authenticated backend omitted that endpoint during session exchange | Pass the server-verified route as `routing.endpoints.<name>` when minting a new session; keep it out of browser input |
|
|
533
562
|
| Host session 503 | A required backend environment name is absent or mapped into the wrong deployment environment | Run `noodle assistant embed --check --json`, repair the host CI mapping, then probe the session route again |
|
|
534
563
|
| `HEAD` on a widget or session path looks broken | The route contract is `GET` for the hosted sandbox/widget document or `POST` for session exchange; `HEAD` is not the product flow | Exercise the documented method and inspect its response instead of inferring readiness from `HEAD` |
|
|
535
564
|
| Local server reports `listen EPERM` | The coding sandbox blocked loopback binding before application behavior ran | Rerun the same local/browser test with approved loopback permissions; do not change product code |
|
|
@@ -27,7 +27,6 @@ Paths are relative to this skill directory. Assets (images/fonts) are omitted fr
|
|
|
27
27
|
| `bitcoin` | API-key HTTP connector, custom auth header, and compute normalization. |
|
|
28
28
|
| `sharepoint` | Microsoft SharePoint delegated Microsoft Entra auth and Graph tools. |
|
|
29
29
|
| `internal-ops-demo` | Governed internal connectivity — tools/resources/prompts, role-shaped output. |
|
|
30
|
-
| `docs-assistant` | Docs/knowledge assistant grounding coding agents in the live docs export. |
|
|
31
30
|
|
|
32
31
|
## Canonical server.ts
|
|
33
32
|
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Outcome
|
|
2
|
+
|
|
3
|
+
Produce a sanitized, repository-grounded plan for wrapping an existing application with a focused Noodle Seed MCP server. Discovery is read-only: present the capability map and implementation phases in the conversation, then stop before writing a plan or source file until the user explicitly authorizes that local mutation and repository.
|
|
4
|
+
|
|
5
|
+
## Contents
|
|
6
|
+
|
|
7
|
+
- Use when
|
|
8
|
+
- Do not use when
|
|
9
|
+
- Required inputs
|
|
10
|
+
- Workflow
|
|
11
|
+
- Verification evidence
|
|
12
|
+
- Recovery paths
|
|
13
|
+
- Stop conditions
|
|
14
|
+
|
|
15
|
+
## Use when
|
|
16
|
+
|
|
17
|
+
- An existing web application has internal HTTP handlers, framework-owned server calls, or inline database-backed logic but no stable, usable public API or specification.
|
|
18
|
+
- The user wants a decision-complete integration plan before changing the application or Noodle project.
|
|
19
|
+
|
|
20
|
+
## Do not use when
|
|
21
|
+
|
|
22
|
+
- Only when all four API-evidence inputs exist—an API base URL, authentication scheme, representative safe read, and observed response—use the API-connection route. If any input is missing, stale, inaccessible, undocumented-only, or otherwise unusable, remain on the existing-application planning route.
|
|
23
|
+
- The request is already-approved implementation, failure diagnosis, deployment, publication, or a host-visible App outcome; use that owning route.
|
|
24
|
+
- Source access is unavailable and the user expects a repository-grounded plan. Return the bounded evidence checklist instead of inventing routes or schemas.
|
|
25
|
+
|
|
26
|
+
## Required inputs
|
|
27
|
+
|
|
28
|
+
Confirm the repository or repositories in scope, the user jobs to expose, the requested stopping point, which identity provider authenticates end users, whether callers are the owner's staff or the application's customers, and whether the relevant deployment has one static preconfigured downstream origin.
|
|
29
|
+
|
|
30
|
+
Never read or print `.env` / `.env.noodle` values, credential stores, browser cookies, production records, secret-bearing logs, or customer payloads. Inspect source, route declarations, authentication middleware, tests, and non-secret configuration declarations only. Record sanitized capability descriptions and source locations, never copied customer code or data.
|
|
31
|
+
|
|
32
|
+
## Workflow
|
|
33
|
+
|
|
34
|
+
1. **Establish authority.** Name every repository in scope and whether the user requested discovery, a draft plan, local implementation, or a higher evidence level. Discovery alone authorizes no file or hosted mutation.
|
|
35
|
+
2. **Ask identity first.** Before connector design, ask which identity provider authenticates end users and whether MCP callers are staff or customers. Separate **inbound MCP identity** from **downstream application authorization**. A supported provider can simplify inbound configuration; it does not automatically authorize downstream calls. An application session is not itself an inbound customer identity. Without a standards-based issuer, current production choices are the staff/service-credential path or a customer-built standards-based authorization server; the generic identity bridge is demand-gated and not shipped.
|
|
36
|
+
3. **Choose downstream authorization honestly.** A shared service credential provides attribution, not per-user authorization, and should be least-privilege. Once Noodle has a verified caller identity, a delegated path requires one compatible token endpoint, whether existing or newly added, plus bearer acceptance in the relevant middleware. That endpoint does not solve the inbound session-only identity gap. Logic without a stable HTTP entry point may also need a thin HTTP handler over the existing business function.
|
|
37
|
+
4. **Choose routing.** Use one static `http` connector with one static preconfigured downstream origin so the same server can serve embedded and external MCP clients. The canonical no-API path is a small application-owned integration layer with stable HTTPS handlers over existing business functions. Any downstream origin receiving a service or delegated credential must use HTTPS. Reject redirects for requests carrying service or delegated credentials; require the final HTTPS origin to be configured directly. If the application requires multi-origin routing or has no stable HTTP origin, stop, report a blocker, and hand off to the existing owning routing workflow. Browser input, model text, page context, tool arguments, and caller input cannot select an origin.
|
|
38
|
+
5. **Map jobs, not routes.** For each user job record a sanitized source location, current HTTP/auth boundary, read or action effect, route-adapter need, proposed intent-shaped tool, minimal typed result, confirmation need, and verification evidence. Treat five to twelve tools as a normal budget, not a minimum; a smaller product should ship fewer. Design intent tools, not one tool per internal route.
|
|
39
|
+
6. **Reject unstable seams.** Do not call an unstable server-call protocol whose identifier or serialization changes across builds. Never use direct database access, including ORM or SQL; it bypasses application authorization and business rules. Do not log in and copy a browser session into the runtime; copying a browser session or its credentials into the runtime is prohibited. Do not treat a service credential as per-user authorization. Propose a narrow application-owned HTTP handler instead.
|
|
40
|
+
7. **Separate implementation ownership.** Produce an existing-application phase for handlers/auth/tests, a Noodle-project phase for TypeScript connector/tools/fakes/tests, and a cross-surface verification phase. If repositories differ, create separate repository-scoped plans and approval boundaries.
|
|
41
|
+
8. **Present and stop.** Show the capability map, identity/routing decision, minimum honest application changes, rejected alternatives, test matrix, risks, and phases in the conversation. A design approval is review only. Local implementation requires an explicit “proceed” for the named repository. Local implementation approval does not authorize hosted configuration, live writes, deployment, publication, or issue-state changes; those require their own authority.
|
|
42
|
+
9. **Hand off approved work.** Once a decision-complete local plan is explicitly authorized, persist it when repository workflow requires and hand it to `executing-noodle-plans`. Use the existing server-authoring and API-connection playbooks for implementation and real-output evidence; do not add another task loop here.
|
|
43
|
+
|
|
44
|
+
## Verification evidence
|
|
45
|
+
|
|
46
|
+
- **Discovery:** repository instructions, stable HTTP boundaries, auth middleware, and tests were inspected read-only without secret values or copied customer data.
|
|
47
|
+
- **Decision:** inbound identity, downstream authorization, one static preconfigured downstream origin, and required application changes are explicit rather than inferred.
|
|
48
|
+
- **Product:** each proposed tool maps to a user job, typed result, effect, and backing operation within the stated surface budget.
|
|
49
|
+
- **Plan:** application, Noodle, and cross-surface phases name files or subsystems, tests, blockers, approval boundaries, and the first unproven layer.
|
|
50
|
+
- **Conformance boundary:** a later representative safe `noodle tools call` can prove one observed mapping; it does not prove general schema conformance. A dedicated conformance feature is separate.
|
|
51
|
+
|
|
52
|
+
## Recovery paths
|
|
53
|
+
|
|
54
|
+
- Unknown identity provider or caller population: stop before choosing customer auth or delegated credentials and ask that one question.
|
|
55
|
+
- No source access: provide the exact route/auth/test evidence checklist and report that no repository-grounded plan was produced.
|
|
56
|
+
- Stable origin but no safe stable HTTP boundary: plan the smallest application-owned stable HTTPS adapter over existing business functions instead of calling a private server protocol.
|
|
57
|
+
- A multi-origin requirement or no stable HTTP origin: stop, report the routing blocker, and hand off to the existing owning routing workflow; browser, model, tool, and caller input cannot select an origin.
|
|
58
|
+
- Missing safe live verification input or working credential: leave that evidence explicitly unproven and name the exact prerequisite. A missing reachable service or action sandbox is handled the same way.
|
|
59
|
+
|
|
60
|
+
## Stop conditions
|
|
61
|
+
|
|
62
|
+
- Stop after presenting the draft capability map and plan until the user explicitly approves the next local mutation and repository.
|
|
63
|
+
- Stop before live writes, hosted configuration, deployment, publication, or issue-state mutation without separate explicit authorization.
|
|
64
|
+
- Stop blocked and hand off to the existing owning routing workflow only when the application requires multi-origin routing or has no stable HTTP origin.
|
|
65
|
+
- This workflow does not add an importer, generate manifests or IR, or implement live schema probing, inference, or diffing.
|
|
@@ -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.60.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.60.0 hash:6ef6ef551e26b78e -->
|
|
7
7
|
|
|
8
8
|
# verifying-mcp-delivery
|
|
9
9
|
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wrapping-existing-applications
|
|
3
|
+
description: "Use when an existing application has no stable usable API and needs a read-only, identity-first Noodle Seed integration plan before implementation."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:eccc3c158dcafba8 -->
|
|
7
|
+
|
|
8
|
+
# wrapping-existing-applications
|
|
9
|
+
|
|
10
|
+
Produce the smallest safe, repository-grounded existing-application integration plan before any mutation.
|
|
11
|
+
|
|
12
|
+
## Use when
|
|
13
|
+
|
|
14
|
+
- Plan how to wrap an existing application that has no usable public API.
|
|
15
|
+
- Map internal application capabilities into an approved Noodle Seed implementation plan.
|
|
16
|
+
|
|
17
|
+
## Do not use when
|
|
18
|
+
|
|
19
|
+
- Do not use when all four API-evidence inputs exist—an API base URL, authentication scheme, representative safe read, and observed response; use `connecting-apis-to-mcp`. Missing, stale, inaccessible, undocumented-only, or otherwise unusable API evidence remains in `wrapping-existing-applications`.
|
|
20
|
+
- Do not use to execute an approved plan, diagnose a concrete failure, or mutate hosted state.
|
|
21
|
+
|
|
22
|
+
## Required inputs
|
|
23
|
+
|
|
24
|
+
- Repository scope and requested stopping point.
|
|
25
|
+
- Target user jobs.
|
|
26
|
+
- End-user identity provider and caller population.
|
|
27
|
+
- One static preconfigured downstream origin, or a routing blocker and owning-workflow handoff.
|
|
28
|
+
|
|
29
|
+
## Workflow
|
|
30
|
+
|
|
31
|
+
Read and follow the canonical playbook `references/wrap-existing-app.md` at `../noodle-seed/references/wrap-existing-app.md`. It owns the workflow; do not recreate it here or load the command catalog speculatively.
|
|
32
|
+
Load `references/authoring-workflow.md` at `../noodle-seed/references/authoring-workflow.md` only when the playbook or observed evidence names that concern.
|
|
33
|
+
Load `references/tool-design.md` at `../noodle-seed/references/tool-design.md` only when the playbook or observed evidence names that concern.
|
|
34
|
+
|
|
35
|
+
## Verification evidence
|
|
36
|
+
|
|
37
|
+
A sanitized capability map and repository-scoped plan state identity, authorization, routing, application changes, tool budget, tests, blockers, and the first unproven layer.
|
|
38
|
+
|
|
39
|
+
## Recovery paths
|
|
40
|
+
|
|
41
|
+
With a stable origin but no safe stable HTTP boundary, plan the smallest application-owned stable HTTPS adapter over existing business functions. If a safe live verification input or working credential is missing, leave that evidence explicitly unproven and name the exact prerequisite. Only multi-origin routing or no stable HTTP origin blocks and hands off to the existing owning routing workflow.
|
|
42
|
+
|
|
43
|
+
## Stop conditions
|
|
44
|
+
|
|
45
|
+
Stop after presenting the draft plan and before any file or hosted mutation until the user explicitly authorizes the exact next action and target.
|
|
46
|
+
|
|
47
|
+
## Handoff contract
|
|
48
|
+
|
|
49
|
+
Pass the selected outcome, explicit target, changed files, commands run, passing evidence, first unproven evidence layer, sanitized failure, remaining authority, and exact next action. The receiving skill continues from that layer; do not restart discovery or discard prior proof.
|
package/skills/codex/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: noodle-seed
|
|
|
3
3
|
description: "Use when building, validating, testing, deploying, or operating a local or hosted Noodle Seed MCP server or app authored in TypeScript with the noodle CLI."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:d83543258e5ca5ff -->
|
|
7
7
|
|
|
8
8
|
# Noodle Seed
|
|
9
9
|
|
|
@@ -19,15 +19,16 @@ If the request is unrelated to the Noodle MCP surface, stop here: follow the pro
|
|
|
19
19
|
|
|
20
20
|
Choose exactly one primary route from the user outcome below, then load the selected sibling skill and hand off the request. Read that primary reference in full; read supporting references only when the sibling or observed evidence requires them. Do not reread the corpus or restart discovery after the handoff.
|
|
21
21
|
|
|
22
|
-
Apply this precedence when wording overlaps: concrete failure evidence takes the debugging route; an MCP App/UI outcome takes the App route;
|
|
22
|
+
Apply this precedence when wording overlaps: concrete failure evidence takes the debugging route; an MCP App/UI outcome takes the App route; an existing application with no stable, usable API or specification takes `wrapping-existing-applications`; only when all four API-evidence inputs exist—an API base URL, authentication scheme, representative safe read, and observed response—use `connecting-apis-to-mcp`; missing, stale, inaccessible, undocumented-only, or otherwise unusable evidence remains in `wrapping-existing-applications`; both integration routes take precedence over generic server building; hosted inspection is debugging read-only; hosted mutation requires the explicitly requested deployment route.
|
|
23
23
|
|
|
24
24
|
Negative routing examples: “Inspect hosted logs/status” → `inspect-hosted` (read-only). “Prepare for deployment” → the applicable build or verification route and stop with a handoff; preparation does not authorize `link`, hosted config, deployment, rollback, host writes, or submission. “Keep this local” → a build or verification route, never a hosted route.
|
|
25
25
|
|
|
26
26
|
| User outcome | Load sibling skill | Canonical playbook | Done when |
|
|
27
27
|
| :--- | :--- | :--- | :--- |
|
|
28
28
|
| Turn a vague MCP product idea into a bounded design before implementation | `designing-mcp-products` | `references/experience-design.md` (`references/authoring-workflow.md`) | The product contract identifies the user benefit, model boundary, evidence, and next implementation skill. |
|
|
29
|
+
| Plan how to wrap an existing application that has no stable usable public API | `wrapping-existing-applications` | `references/wrap-existing-app.md` (`references/authoring-workflow.md`, `references/tool-design.md`) | A sanitized identity-first capability map and repository-scoped implementation plan are presented for approval before mutation. |
|
|
29
30
|
| Create or extend a headless MCP server whose external API contract is already modeled | `authoring-mcp-servers` | `references/build-an-mcp-server.md` (`references/authoring-workflow.md`, `references/sdk-surface.md`) | The requested server behavior is locally validated and tested; connector reads have real-output evidence. |
|
|
30
|
-
| Connect a real API when
|
|
31
|
+
| Connect a real API only when all four API-evidence inputs exist: API base URL, authentication scheme, representative safe read, and observed response | `connecting-apis-to-mcp` | `references/connect-an-api.md` (`references/authoring-workflow.md`) | A representative live read returns populated, intentionally mapped fields without exposing credentials. |
|
|
31
32
|
| Build or change an MCP App, widget, or host-visible UI | `building-mcp-apps` | `references/build-an-mcp-app.md` (`references/experience-design.md`, `references/widgets-and-apps.md`) | The UI has a stated user benefit, passes the requested checks, and degrades to useful text. |
|
|
32
33
|
| Validate, test, or prove a project at a named delivery evidence level | `verifying-mcp-delivery` | `references/verify-and-recover.md` (`references/test-in-hosts.md`) | The failing evidence layer is repaired and rerun, or the remaining blocker and exact next action are reported. |
|
|
33
34
|
| Diagnose or recover an existing project with concrete local or hosted failure evidence | `debugging-mcp-delivery` | `references/verify-and-recover.md` (`references/troubleshooting.md`, `references/inspect-hosted.md`) | The failing layer is repaired and rerun, or the stable blocker and exact next action are reported. |
|
|
@@ -63,6 +64,7 @@ This is a lookup catalog, not a discovery checklist. Return here only when the s
|
|
|
63
64
|
- `references/tool-design.md` — intent-shaped tools, titles and annotations, bounded outputs, tool-surface budget, and context provisioning.
|
|
64
65
|
- `references/embedded-assistant.md` — HTTPS origins, managed model config, deploy sequencing, session exchange, browser mounting, and credential boundaries.
|
|
65
66
|
- `references/connect-an-api.md` — secure credentials, probe the live API, model the observed shape, and prove real output.
|
|
67
|
+
- `references/wrap-existing-app.md` — read-only identity-first planning for an existing application with no stable usable API.
|
|
66
68
|
- `references/build-an-mcp-app.md` — product-fit, output-boundary, fallback, and evidence workflow for an MCP App.
|
|
67
69
|
- `references/experience-design.md` — design an app experience: funnel boundary, grounding, two users, display modes, and wireframe.
|
|
68
70
|
- `references/widgets-and-apps.md` — MCP Apps, typed views, widget hooks, output shaping, and CSP.
|
|
@@ -3,7 +3,7 @@ name: authoring-mcp-servers
|
|
|
3
3
|
description: "Use when creating or extending a headless Noodle Seed MCP server, tool, resource, prompt, or typed model-facing capability."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:0b2fd8c7e43fc69f -->
|
|
7
7
|
|
|
8
8
|
# authoring-mcp-servers
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: building-mcp-apps
|
|
|
3
3
|
description: "Use when a Noodle Seed MCP App, widget, interactive card, visual interaction, or host-visible UI is the primary requested outcome."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:f7fa54992c8d7692 -->
|
|
7
7
|
|
|
8
8
|
# building-mcp-apps
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: connecting-apis-to-mcp
|
|
3
|
-
description: "Use when
|
|
3
|
+
description: "Use when all four API-evidence inputs exist—and only then: API base URL, authentication scheme, representative safe read, and observed response."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:21bbd3ec441ffd30 -->
|
|
7
7
|
|
|
8
8
|
# connecting-apis-to-mcp
|
|
9
9
|
|
|
@@ -11,13 +11,12 @@ Connect a real API using managed credentials and mappings proven against observe
|
|
|
11
11
|
|
|
12
12
|
## Use when
|
|
13
13
|
|
|
14
|
-
- Connect this
|
|
15
|
-
- Use these API credentials for a real connector.
|
|
14
|
+
- Connect this API after confirming its base URL, authentication scheme, safe read, and observed response.
|
|
16
15
|
|
|
17
16
|
## Do not use when
|
|
18
17
|
|
|
19
18
|
- Do not use for static local behavior.
|
|
20
|
-
- Do not use when
|
|
19
|
+
- Do not use when all available API evidence is stale, inaccessible, undocumented-only, or otherwise unusable.
|
|
21
20
|
|
|
22
21
|
## Required inputs
|
|
23
22
|
|
|
@@ -3,7 +3,7 @@ name: debugging-mcp-delivery
|
|
|
3
3
|
description: "Use when an existing Noodle Seed MCP project has a concrete validation, runtime, connector, App, host, deployment, or production failure."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:aa715bae12041d7c -->
|
|
7
7
|
|
|
8
8
|
# debugging-mcp-delivery
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: deploying-mcp-services
|
|
|
3
3
|
description: "Use when the user explicitly requests a Noodle Seed hosted link, configuration write, deployment, access change, rollback, or connection write."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:93e735b7ffb45df1 -->
|
|
7
7
|
|
|
8
8
|
# deploying-mcp-services
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: designing-mcp-products
|
|
|
3
3
|
description: "Use when a Noodle Seed MCP product idea needs conversational fit, user benefit, scope, interaction, or evidence design before implementation."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:76cce86729cffbee -->
|
|
7
7
|
|
|
8
8
|
# designing-mcp-products
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: embedding-mcp-assistants
|
|
|
3
3
|
description: "Use when embedding a Noodle assistant into an existing SaaS or web application with browser, identity, session, and credential boundaries."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.60.0 hash:cc54a67f21c0ecdb -->
|
|
7
7
|
|
|
8
8
|
# embedding-mcp-assistants
|
|
9
9
|
|