@microsoft/teamsfx-core 3.0.15-beta.2026072312.0 → 3.0.15-beta.2026072911.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.
Files changed (103) hide show
  1. package/build/common/mcpToolFetcher.d.ts +61 -2
  2. package/build/common/mcpToolFetcher.d.ts.map +1 -1
  3. package/build/common/mcpToolFetcher.js +256 -34
  4. package/build/common/mcpToolFetcher.js.map +1 -1
  5. package/build/common/templates-config.json +3 -3
  6. package/build/component/generator/declarativeAgent/helper.d.ts.map +1 -1
  7. package/build/component/generator/declarativeAgent/helper.js +25 -2
  8. package/build/component/generator/declarativeAgent/helper.js.map +1 -1
  9. package/build/component/generator/openApiSpec/helper.d.ts.map +1 -1
  10. package/build/component/generator/openApiSpec/helper.js +13 -1
  11. package/build/component/generator/openApiSpec/helper.js.map +1 -1
  12. package/build/component/generator/templates/metadata/index.d.ts +15 -0
  13. package/build/component/generator/templates/metadata/index.d.ts.map +1 -1
  14. package/build/component/generator/templates/metadata/index.js +39 -0
  15. package/build/component/generator/templates/metadata/index.js.map +1 -1
  16. package/build/component/utils/mcpAuthScaffolder.d.ts +22 -0
  17. package/build/component/utils/mcpAuthScaffolder.d.ts.map +1 -1
  18. package/build/component/utils/mcpAuthScaffolder.js +30 -4
  19. package/build/component/utils/mcpAuthScaffolder.js.map +1 -1
  20. package/build/core/FxCore.declarativeAgent.d.ts.map +1 -1
  21. package/build/core/FxCore.declarativeAgent.js +61 -3
  22. package/build/core/FxCore.declarativeAgent.js.map +1 -1
  23. package/build/core/FxCore.js +1 -1
  24. package/build/core/FxCore.js.map +1 -1
  25. package/build/core/createProjectFrontDoor.d.ts.map +1 -1
  26. package/build/core/createProjectFrontDoor.js +2 -0
  27. package/build/core/createProjectFrontDoor.js.map +1 -1
  28. package/build/index.d.ts +2 -2
  29. package/build/index.d.ts.map +1 -1
  30. package/build/index.js +5 -1
  31. package/build/index.js.map +1 -1
  32. package/build/question/create.d.ts.map +1 -1
  33. package/build/question/create.js +2 -1
  34. package/build/question/create.js.map +1 -1
  35. package/build/question/other.d.ts.map +1 -1
  36. package/build/question/other.js +9 -0
  37. package/build/question/other.js.map +1 -1
  38. package/build/question/scaffold/vsc/teamsProjectTypeNode.d.ts +19 -1
  39. package/build/question/scaffold/vsc/teamsProjectTypeNode.d.ts.map +1 -1
  40. package/build/question/scaffold/vsc/teamsProjectTypeNode.js +39 -0
  41. package/build/question/scaffold/vsc/teamsProjectTypeNode.js.map +1 -1
  42. package/build/v4/collectInputs/collectInputs.d.ts +1 -1
  43. package/build/v4/collectInputs/collectInputs.d.ts.map +1 -1
  44. package/build/v4/collectInputs/collectInputs.js +13 -0
  45. package/build/v4/collectInputs/collectInputs.js.map +1 -1
  46. package/build/v4/mcp/mcpAuthAction.d.ts +8 -0
  47. package/build/v4/mcp/mcpAuthAction.d.ts.map +1 -1
  48. package/build/v4/mcp/mcpAuthAction.js +27 -12
  49. package/build/v4/mcp/mcpAuthAction.js.map +1 -1
  50. package/build/v4/mcp/mcpAuthScaffold.d.ts.map +1 -1
  51. package/build/v4/mcp/mcpAuthScaffold.js +5 -2
  52. package/build/v4/mcp/mcpAuthScaffold.js.map +1 -1
  53. package/build/v4/renderContext/buildRenderContext.d.ts.map +1 -1
  54. package/build/v4/renderContext/buildRenderContext.js +3 -4
  55. package/build/v4/renderContext/buildRenderContext.js.map +1 -1
  56. package/build/v4/runtime/whitelist.d.ts +27 -0
  57. package/build/v4/runtime/whitelist.d.ts.map +1 -1
  58. package/build/v4/runtime/whitelist.js +156 -1
  59. package/build/v4/runtime/whitelist.js.map +1 -1
  60. package/build/v4/surface/deriveCreateOptions.d.ts.map +1 -1
  61. package/build/v4/surface/deriveCreateOptions.js +5 -2
  62. package/build/v4/surface/deriveCreateOptions.js.map +1 -1
  63. package/build/v4/surface/uiPromptUI.d.ts.map +1 -1
  64. package/build/v4/surface/uiPromptUI.js +9 -4
  65. package/build/v4/surface/uiPromptUI.js.map +1 -1
  66. package/package.json +6 -6
  67. package/resource/package.nls.cs.json +56 -55
  68. package/resource/package.nls.de.json +2 -1
  69. package/resource/package.nls.es.json +55 -54
  70. package/resource/package.nls.fr.json +56 -55
  71. package/resource/package.nls.it.json +55 -54
  72. package/resource/package.nls.ja.json +56 -55
  73. package/resource/package.nls.json +8 -3
  74. package/resource/package.nls.ko.json +56 -55
  75. package/resource/package.nls.pl.json +56 -55
  76. package/resource/package.nls.pt-BR.json +56 -55
  77. package/resource/package.nls.ru.json +56 -55
  78. package/resource/package.nls.tr.json +56 -55
  79. package/resource/package.nls.zh-Hans.json +56 -55
  80. package/resource/package.nls.zh-Hant.json +56 -55
  81. package/resource/templates/package.nls.cs.json +16 -10
  82. package/resource/templates/package.nls.de.json +16 -10
  83. package/resource/templates/package.nls.es.json +16 -10
  84. package/resource/templates/package.nls.fr.json +16 -10
  85. package/resource/templates/package.nls.it.json +16 -10
  86. package/resource/templates/package.nls.ja.json +16 -10
  87. package/resource/templates/package.nls.ko.json +17 -11
  88. package/resource/templates/package.nls.pl.json +16 -10
  89. package/resource/templates/package.nls.pt-BR.json +16 -10
  90. package/resource/templates/package.nls.ru.json +16 -10
  91. package/resource/templates/package.nls.tr.json +16 -10
  92. package/resource/templates/package.nls.zh-Hans.json +16 -10
  93. package/resource/templates/package.nls.zh-Hant.json +16 -10
  94. package/templates/fallback/common.zip +0 -0
  95. package/templates/fallback/csharp.zip +0 -0
  96. package/templates/fallback/js.zip +0 -0
  97. package/templates/fallback/python.zip +0 -0
  98. package/templates/fallback/ts.zip +0 -0
  99. package/templates/metadata.zip +0 -0
  100. package/templates/v4/create-selector.json +18 -0
  101. package/templates/v4/floor.json +1 -1
  102. package/templates/v4/templates-metadata.zip +0 -0
  103. package/templates/v4/templates.zip +0 -0
@@ -14,11 +14,31 @@ export interface MCPFetchResult {
14
14
  export declare function fetchMCPTools(serverUrl: string): Promise<MCPFetchResult>;
15
15
  /** Read MCP tool definitions from a wrapped or raw JSON array. */
16
16
  export declare function readMCPToolsFromFile(filePath: string): Promise<MCPTool[]>;
17
+ /**
18
+ * What a probe learned about the URL itself, independently of whether authorization is needed.
19
+ *
20
+ * - `confirmed`: something MCP-shaped answered — either a successful `initialize` or an OAuth
21
+ * challenge. The URL is right.
22
+ * - `notEndpoint`: the server answered definitively and the answer was not MCP. The URL is
23
+ * most likely wrong.
24
+ * - `undetermined`: nothing was learned (server error, timeout, DNS or transport failure).
25
+ * Says nothing about the URL and must never be reported as a problem with it.
26
+ */
27
+ export type MCPEndpointStatus = "confirmed" | "notEndpoint" | "undetermined";
17
28
  export interface MCPAuthProbeResult {
18
29
  requiresAuth: boolean;
19
30
  authMetadataUrl?: string;
31
+ /**
32
+ * Whether the URL was confirmed to be an MCP endpoint. Reported separately from `requiresAuth`
33
+ * because it says whether the URL is right, not whether authorization is missing. A mistyped
34
+ * URL commonly still serves an ordinary page on GET — the host's landing page, say — which
35
+ * makes it look reachable; only the `initialize` POST exposes that nothing MCP is there.
36
+ */
37
+ endpointStatus: MCPEndpointStatus;
38
+ /** The HTTP status behind a `notEndpoint` verdict. Absent for the other two states. */
39
+ responseStatus?: number;
20
40
  }
21
- /** Probe an MCP streamable-HTTP endpoint for an OAuth challenge. */
41
+ /** Probe an MCP streamable-HTTP endpoint for an OAuth challenge and for the URL's validity. */
22
42
  export declare function probeMCPServerAuth(serverUrl: string): Promise<MCPAuthProbeResult>;
23
43
  export interface MCPOAuthMetadata {
24
44
  authorizationUrl: string;
@@ -26,6 +46,45 @@ export interface MCPOAuthMetadata {
26
46
  refreshUrl?: string;
27
47
  wellKnownUrl: string;
28
48
  }
49
+ /**
50
+ * Build the ordered list of authorization-server metadata URLs to probe for an issuer.
51
+ *
52
+ * Providers disagree on which discovery form they serve: RFC 8414 §3.1 mandates inserting
53
+ * `/.well-known/oauth-authorization-server` between the host and the issuer path, while
54
+ * OpenID Connect Discovery §4 appends `/.well-known/openid-configuration` to the issuer.
55
+ * Microsoft Entra, for example, serves ONLY the appended OIDC form — the RFC 8414 insertion
56
+ * form returns 404 — so probing a single form silently loses the endpoints for whole classes
57
+ * of identity providers. Candidates are deduplicated (a host-only issuer collapses the
58
+ * insertion and append forms) and returned in RFC-preference order.
59
+ */
60
+ export declare function buildWellKnownCandidates(issuer: string): string[];
61
+ /**
62
+ * Build the ordered list of authorization-server metadata URLs to probe for an MCP server that
63
+ * never pointed at an authorization server.
64
+ *
65
+ * MCP servers written against the 2025-03-26 authorization spec are their own authorization
66
+ * server: they publish RFC 8414 metadata at the origin root and ship no RFC 9728
67
+ * protected-resource document at all. Such a server answers the 401 challenge with `realm`
68
+ * alone, so `resource_metadata` discovery dead-ends and the endpoints have to be derived from
69
+ * the server URL instead. Path-derived forms are probed first, because a host exposing several
70
+ * MCP endpoints may serve per-endpoint metadata; the origin root is the last resort.
71
+ */
72
+ export declare function buildMCPServerWellKnownCandidates(mcpServerUrl: string): string[];
73
+ /**
74
+ * Build the RFC 9728 protected-resource metadata URLs to probe for an MCP server that never
75
+ * advertised one.
76
+ *
77
+ * A server only hands out its `resource_metadata` location inside a `WWW-Authenticate`
78
+ * challenge, and a server that defers authorization to the individual tool calls answers an
79
+ * unauthenticated `initialize` with a plain 200 and no challenge at all — Google's Gmail,
80
+ * Calendar and Drive servers do exactly that, yet each publishes a protected-resource document
81
+ * naming `https://accounts.google.com/`. Waiting to be told therefore loses the metadata for a
82
+ * whole class of servers, so the document is derived from the resource URL instead, as MCP's
83
+ * authorization spec requires of clients. RFC 9728 §3.1 inserts the well-known segment between
84
+ * the host and the resource path; the path-less form follows for servers that publish at the
85
+ * origin root only.
86
+ */
87
+ export declare function buildProtectedResourceCandidates(mcpServerUrl: string): string[];
29
88
  /** Resolve OAuth endpoints from MCP resource or authorization-server metadata. */
30
- export declare function resolveMCPOAuthMetadata(authMetadataUrl?: string, wellKnownUrl?: string): Promise<MCPOAuthMetadata>;
89
+ export declare function resolveMCPOAuthMetadata(authMetadataUrl?: string, wellKnownUrl?: string, mcpServerUrl?: string): Promise<MCPOAuthMetadata>;
31
90
  //# sourceMappingURL=mcpToolFetcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcpToolFetcher.d.ts","sourceRoot":"","sources":["../../src/common/mcpToolFetcher.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,GAAG,CAAC;IACjB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,2DAA2D;AAC3D,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA0E9E;AAED,kEAAkE;AAClE,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA8B/E;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,oEAAoE;AACpE,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkCvF;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,kFAAkF;AAClF,wBAAsB,uBAAuB,CAC3C,eAAe,CAAC,EAAE,MAAM,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAkC3B"}
1
+ {"version":3,"file":"mcpToolFetcher.d.ts","sourceRoot":"","sources":["../../src/common/mcpToolFetcher.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,GAAG,CAAC;IACjB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,2DAA2D;AAC3D,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA0E9E;AAED,kEAAkE;AAClE,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA8B/E;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;AAmC7E,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,cAAc,EAAE,iBAAiB,CAAC;IAClC,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA0DD,+FAA+F;AAC/F,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8CvF;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAajE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAUhF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAU/E;AA4CD,kFAAkF;AAClF,wBAAsB,uBAAuB,CAC3C,eAAe,CAAC,EAAE,MAAM,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAgD3B"}
@@ -5,6 +5,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.fetchMCPTools = fetchMCPTools;
6
6
  exports.readMCPToolsFromFile = readMCPToolsFromFile;
7
7
  exports.probeMCPServerAuth = probeMCPServerAuth;
8
+ exports.buildWellKnownCandidates = buildWellKnownCandidates;
9
+ exports.buildMCPServerWellKnownCandidates = buildMCPServerWellKnownCandidates;
10
+ exports.buildProtectedResourceCandidates = buildProtectedResourceCandidates;
8
11
  exports.resolveMCPOAuthMetadata = resolveMCPOAuthMetadata;
9
12
  const tslib_1 = require("tslib");
10
13
  const axios_1 = tslib_1.__importDefault(require("axios"));
@@ -112,7 +115,92 @@ async function readMCPToolsFromFile(filePath) {
112
115
  };
113
116
  });
114
117
  }
115
- /** Probe an MCP streamable-HTTP endpoint for an OAuth challenge. */
118
+ /** HTTP statuses treated as proof that no MCP endpoint is routed at the URL.
119
+ *
120
+ * Deliberately enumerated rather than "any 4xx": measurements across nine live servers only ever
121
+ * produced these three for a wrong URL (404 from routing, 405 from an endpoint that exists but
122
+ * rejects the method, 403 from a WAF in front of the app). Statuses such as 429 or 408 are
123
+ * transient and would slander a URL that is in fact correct. 400 is excluded on purpose: the
124
+ * transport spec requires a server to answer 400 when it rejects the `MCP-Protocol-Version`,
125
+ * so a valid endpoint may well produce one for this probe. */
126
+ const NOT_AN_ENDPOINT_STATUSES = [403, 404, 405];
127
+ /** How long to wait for a deprecated HTTP+SSE server to name its message endpoint. */
128
+ const LEGACY_SSE_TIMEOUT_MS = 5000;
129
+ /** Stop buffering an event stream that is not going to name an endpoint. */
130
+ const LEGACY_SSE_MAX_BYTES = 8192;
131
+ /**
132
+ * A 2xx alone proves nothing: a truncated URL on a host that serves a landing page answers 200
133
+ * with HTML. The JSON-RPC envelope in the payload is the actual proof. The body text is searched
134
+ * instead of the frames being parsed because that works for both `application/json` and the
135
+ * `text/event-stream` framing streamable-HTTP servers use — `jsonrpc` sits inside the `data:`
136
+ * payload either way. The quotes keep an HTML page that merely mentions the word from matching.
137
+ */
138
+ function carriesJSONRPCEnvelope(body) {
139
+ if (typeof body === "string") {
140
+ return body.includes('"jsonrpc"');
141
+ }
142
+ if (body && typeof body === "object") {
143
+ return "jsonrpc" in body;
144
+ }
145
+ return false;
146
+ }
147
+ /**
148
+ * Read an event stream only as far as the first `endpoint` event, which is how a 2024-11-05
149
+ * server announces where its messages go. Anything else — the stream ending, an error, a
150
+ * stream that just keeps talking, a server that never answers — means no such announcement.
151
+ */
152
+ function announcesLegacyMessageEndpoint(stream) {
153
+ return new Promise((resolve) => {
154
+ let buffered = "";
155
+ const settle = (found) => {
156
+ clearTimeout(timer);
157
+ stream.destroy();
158
+ resolve(found);
159
+ };
160
+ const timer = setTimeout(() => settle(false), LEGACY_SSE_TIMEOUT_MS);
161
+ stream.on("data", (chunk) => {
162
+ buffered += chunk.toString();
163
+ if (/^event:\s*endpoint\s*$/m.test(buffered)) {
164
+ settle(true);
165
+ }
166
+ else if (buffered.length > LEGACY_SSE_MAX_BYTES) {
167
+ settle(false);
168
+ }
169
+ });
170
+ stream.on("end", () => settle(false));
171
+ stream.on("error", () => settle(false));
172
+ });
173
+ }
174
+ /**
175
+ * Ask the URL, the way the MCP transport spec's backwards-compatibility rule prescribes,
176
+ * whether a deprecated HTTP+SSE server is listening there.
177
+ *
178
+ * A 2024-11-05 server has no streamable-HTTP endpoint to POST to, so it answers the
179
+ * `initialize` POST with a 4xx — the spec names 405 and 404 explicitly. Reading that 4xx as
180
+ * proof of a wrong URL would therefore condemn a whole generation of valid servers. The spec's
181
+ * own disambiguation is to open an SSE stream with GET: an HTTP+SSE server replies
182
+ * `text/event-stream` and names its message endpoint in the first event.
183
+ */
184
+ async function servesLegacySSETransport(serverUrl) {
185
+ try {
186
+ const response = await axios_1.default.get(serverUrl, {
187
+ timeout: LEGACY_SSE_TIMEOUT_MS,
188
+ responseType: "stream",
189
+ headers: { Accept: "text/event-stream" },
190
+ });
191
+ const contentType = String(response.headers?.["content-type"] ?? "");
192
+ if (!contentType.includes("text/event-stream")) {
193
+ response.data?.destroy?.();
194
+ return false;
195
+ }
196
+ return await announcesLegacyMessageEndpoint(response.data);
197
+ }
198
+ catch {
199
+ // A GET that fails says only that the old transport is not there either.
200
+ return false;
201
+ }
202
+ }
203
+ /** Probe an MCP streamable-HTTP endpoint for an OAuth challenge and for the URL's validity. */
116
204
  async function probeMCPServerAuth(serverUrl) {
117
205
  const initializeBody = {
118
206
  jsonrpc: "2.0",
@@ -125,17 +213,22 @@ async function probeMCPServerAuth(serverUrl) {
125
213
  },
126
214
  };
127
215
  try {
128
- await axios_1.default.post(serverUrl, initializeBody, {
216
+ const response = await axios_1.default.post(serverUrl, initializeBody, {
129
217
  timeout: 10000,
130
218
  headers: {
131
219
  "Content-Type": "application/json",
132
220
  Accept: "application/json, text/event-stream",
133
221
  },
134
222
  });
135
- return { requiresAuth: false };
223
+ return carriesJSONRPCEnvelope(response.data)
224
+ ? { requiresAuth: false, endpointStatus: "confirmed" }
225
+ : { requiresAuth: false, endpointStatus: "notEndpoint", responseStatus: response.status };
136
226
  }
137
227
  catch (error) {
138
- if (error?.response?.status === 401 || error?.status === 401) {
228
+ const status = error?.response?.status ?? error?.status;
229
+ if (status === 401) {
230
+ // Only something that means to be a protected resource issues an OAuth challenge, so a
231
+ // 401 confirms the endpoint just as firmly as a successful initialize does.
139
232
  const wwwAuth = error?.response?.headers?.["www-authenticate"];
140
233
  let authMetadataUrl;
141
234
  if (wwwAuth) {
@@ -144,39 +237,168 @@ async function probeMCPServerAuth(serverUrl) {
144
237
  authMetadataUrl = match[1];
145
238
  }
146
239
  }
147
- return { requiresAuth: true, authMetadataUrl };
240
+ return { requiresAuth: true, authMetadataUrl, endpointStatus: "confirmed" };
241
+ }
242
+ if (typeof status === "number" && NOT_AN_ENDPOINT_STATUSES.includes(status)) {
243
+ // The spec reads a 4xx here as "this may be the old transport", not as "wrong URL", so
244
+ // the verdict is not settled until HTTP+SSE has been ruled out.
245
+ return (await servesLegacySSETransport(serverUrl))
246
+ ? { requiresAuth: false, endpointStatus: "confirmed" }
247
+ : { requiresAuth: false, endpointStatus: "notEndpoint", responseStatus: status };
248
+ }
249
+ return { requiresAuth: false, endpointStatus: "undetermined" };
250
+ }
251
+ }
252
+ /**
253
+ * Build the ordered list of authorization-server metadata URLs to probe for an issuer.
254
+ *
255
+ * Providers disagree on which discovery form they serve: RFC 8414 §3.1 mandates inserting
256
+ * `/.well-known/oauth-authorization-server` between the host and the issuer path, while
257
+ * OpenID Connect Discovery §4 appends `/.well-known/openid-configuration` to the issuer.
258
+ * Microsoft Entra, for example, serves ONLY the appended OIDC form — the RFC 8414 insertion
259
+ * form returns 404 — so probing a single form silently loses the endpoints for whole classes
260
+ * of identity providers. Candidates are deduplicated (a host-only issuer collapses the
261
+ * insertion and append forms) and returned in RFC-preference order.
262
+ */
263
+ function buildWellKnownCandidates(issuer) {
264
+ const issuerUrl = new URL(issuer);
265
+ const origin = `${issuerUrl.protocol}//${issuerUrl.host}`;
266
+ // A trailing slash makes providers such as Notion return 404 for the insertion form.
267
+ const issuerPath = issuerUrl.pathname === "/" ? "" : issuerUrl.pathname.replace(/\/+$/, "");
268
+ return [
269
+ ...new Set([
270
+ `${origin}/.well-known/oauth-authorization-server${issuerPath}`,
271
+ `${origin}/.well-known/openid-configuration${issuerPath}`,
272
+ `${origin}${issuerPath}/.well-known/oauth-authorization-server`,
273
+ `${origin}${issuerPath}/.well-known/openid-configuration`,
274
+ ]),
275
+ ];
276
+ }
277
+ /**
278
+ * Build the ordered list of authorization-server metadata URLs to probe for an MCP server that
279
+ * never pointed at an authorization server.
280
+ *
281
+ * MCP servers written against the 2025-03-26 authorization spec are their own authorization
282
+ * server: they publish RFC 8414 metadata at the origin root and ship no RFC 9728
283
+ * protected-resource document at all. Such a server answers the 401 challenge with `realm`
284
+ * alone, so `resource_metadata` discovery dead-ends and the endpoints have to be derived from
285
+ * the server URL instead. Path-derived forms are probed first, because a host exposing several
286
+ * MCP endpoints may serve per-endpoint metadata; the origin root is the last resort.
287
+ */
288
+ function buildMCPServerWellKnownCandidates(mcpServerUrl) {
289
+ const serverUrl = new URL(mcpServerUrl);
290
+ const origin = `${serverUrl.protocol}//${serverUrl.host}`;
291
+ return [
292
+ ...new Set([
293
+ ...buildWellKnownCandidates(mcpServerUrl),
294
+ `${origin}/.well-known/oauth-authorization-server`,
295
+ `${origin}/.well-known/openid-configuration`,
296
+ ]),
297
+ ];
298
+ }
299
+ /**
300
+ * Build the RFC 9728 protected-resource metadata URLs to probe for an MCP server that never
301
+ * advertised one.
302
+ *
303
+ * A server only hands out its `resource_metadata` location inside a `WWW-Authenticate`
304
+ * challenge, and a server that defers authorization to the individual tool calls answers an
305
+ * unauthenticated `initialize` with a plain 200 and no challenge at all — Google's Gmail,
306
+ * Calendar and Drive servers do exactly that, yet each publishes a protected-resource document
307
+ * naming `https://accounts.google.com/`. Waiting to be told therefore loses the metadata for a
308
+ * whole class of servers, so the document is derived from the resource URL instead, as MCP's
309
+ * authorization spec requires of clients. RFC 9728 §3.1 inserts the well-known segment between
310
+ * the host and the resource path; the path-less form follows for servers that publish at the
311
+ * origin root only.
312
+ */
313
+ function buildProtectedResourceCandidates(mcpServerUrl) {
314
+ const serverUrl = new URL(mcpServerUrl);
315
+ const origin = `${serverUrl.protocol}//${serverUrl.host}`;
316
+ const resourcePath = serverUrl.pathname === "/" ? "" : serverUrl.pathname.replace(/\/+$/, "");
317
+ return [
318
+ ...new Set([
319
+ `${origin}/.well-known/oauth-protected-resource${resourcePath}`,
320
+ `${origin}/.well-known/oauth-protected-resource`,
321
+ ]),
322
+ ];
323
+ }
324
+ /**
325
+ * Read the RFC 9728 protected-resource document the server advertised and turn its first
326
+ * authorization server into discovery candidates. Returns an empty list when the document
327
+ * names no authorization server.
328
+ */
329
+ async function candidatesFromProtectedResourceMetadata(authMetadataUrl, canFallBack) {
330
+ let response;
331
+ try {
332
+ response = await axios_1.default.get(authMetadataUrl);
333
+ }
334
+ catch (error) {
335
+ // A server advertising a document it cannot serve is broken, but the MCP server URL may
336
+ // still lead to the authorization server, so let the caller try that before failing.
337
+ if (canFallBack) {
338
+ return [];
148
339
  }
149
- return { requiresAuth: false };
340
+ throw error;
341
+ }
342
+ const issuers = response.data?.authorization_servers;
343
+ if (response.status === 200 && Array.isArray(issuers) && issuers.length > 0) {
344
+ return buildWellKnownCandidates(issuers[0]);
150
345
  }
346
+ return [];
347
+ }
348
+ /**
349
+ * Look for a protected-resource document at the locations RFC 9728 derives from the MCP server
350
+ * URL. The first document naming an authorization server wins; a location that is absent only
351
+ * means this server publishes at the other one.
352
+ */
353
+ async function candidatesFromDerivedProtectedResource(mcpServerUrl) {
354
+ for (const candidate of buildProtectedResourceCandidates(mcpServerUrl)) {
355
+ const candidates = await candidatesFromProtectedResourceMetadata(candidate, true);
356
+ if (candidates.length > 0) {
357
+ return candidates;
358
+ }
359
+ }
360
+ return [];
151
361
  }
152
362
  /** Resolve OAuth endpoints from MCP resource or authorization-server metadata. */
153
- async function resolveMCPOAuthMetadata(authMetadataUrl, wellKnownUrl) {
154
- let resolvedWellKnownUrl = wellKnownUrl;
155
- if (!resolvedWellKnownUrl) {
156
- if (!authMetadataUrl) {
157
- throw new Error((0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthMetadataUrlNotFound"));
158
- }
159
- const response = await axios_1.default.get(authMetadataUrl);
160
- if (response.status === 200 &&
161
- response.data &&
162
- response.data.authorization_servers &&
163
- response.data.authorization_servers.length > 0) {
164
- const mcpServerMetadataUrl = response.data.authorization_servers[0];
165
- const serverUrl = new URL(mcpServerMetadataUrl);
166
- const serverPath = serverUrl.pathname === "/" ? "" : serverUrl.pathname;
167
- resolvedWellKnownUrl = `${serverUrl.protocol}//${serverUrl.host}/.well-known/oauth-authorization-server${serverPath}`;
168
- }
169
- else {
170
- throw new Error((0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpServerMetadataUrlNotFound"));
171
- }
172
- }
173
- const metadataResponse = await axios_1.default.get(resolvedWellKnownUrl);
174
- const authorizationUrl = metadataResponse.data?.authorization_endpoint;
175
- const tokenUrl = metadataResponse.data?.token_endpoint;
176
- const refreshUrl = metadataResponse.data?.refresh_endpoint;
177
- if (!authorizationUrl || !tokenUrl) {
178
- throw new Error((0, localizeUtils_1.getLocalizedString)("core.MCPForDA.authUrlNotFound"));
179
- }
180
- return { authorizationUrl, tokenUrl, refreshUrl, wellKnownUrl: resolvedWellKnownUrl };
363
+ async function resolveMCPOAuthMetadata(authMetadataUrl, wellKnownUrl, mcpServerUrl) {
364
+ let candidates;
365
+ if (wellKnownUrl) {
366
+ // An explicitly configured URL is authoritative — never substitute a guess for it.
367
+ candidates = [wellKnownUrl];
368
+ }
369
+ else {
370
+ candidates = authMetadataUrl
371
+ ? await candidatesFromProtectedResourceMetadata(authMetadataUrl, !!mcpServerUrl)
372
+ : [];
373
+ if (candidates.length === 0 && mcpServerUrl) {
374
+ // The authoritative answer, when the server publishes one, is its protected-resource
375
+ // document so try that before assuming the server is its own authorization server.
376
+ candidates = await candidatesFromDerivedProtectedResource(mcpServerUrl);
377
+ }
378
+ if (candidates.length === 0 && mcpServerUrl) {
379
+ candidates = buildMCPServerWellKnownCandidates(mcpServerUrl);
380
+ }
381
+ if (candidates.length === 0) {
382
+ throw new Error((0, localizeUtils_1.getLocalizedString)(authMetadataUrl
383
+ ? "core.MCPForDA.mcpServerMetadataUrlNotFound"
384
+ : "core.MCPForDA.mcpAuthMetadataUrlNotFound"));
385
+ }
386
+ }
387
+ for (const candidate of candidates) {
388
+ try {
389
+ const metadataResponse = await axios_1.default.get(candidate);
390
+ const authorizationUrl = metadataResponse.data?.authorization_endpoint;
391
+ const tokenUrl = metadataResponse.data?.token_endpoint;
392
+ const refreshUrl = metadataResponse.data?.refresh_endpoint;
393
+ if (authorizationUrl && tokenUrl) {
394
+ return { authorizationUrl, tokenUrl, refreshUrl, wellKnownUrl: candidate };
395
+ }
396
+ }
397
+ catch {
398
+ // A 404 / unreachable candidate just means this provider uses a different
399
+ // discovery form; keep probing and report every attempt if all of them fail.
400
+ }
401
+ }
402
+ throw new Error((0, localizeUtils_1.getLocalizedString)("core.MCPForDA.authUrlNotFound", candidates.join(", ")));
181
403
  }
182
404
  //# sourceMappingURL=mcpToolFetcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcpToolFetcher.js","sourceRoot":"","sources":["../../src/common/mcpToolFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpToolFetcher.js","sourceRoot":"","sources":["../../src/common/mcpToolFetcher.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "~6.12",
3
- "localVersion": "6.12.1-beta.2026072312.0",
3
+ "localVersion": "6.12.1-beta.2026072911.0",
4
4
  "tagPrefix": "templates@",
5
5
  "v4tagPrefix": "templates-v4@",
6
6
  "vstagPrefix": "templates-vs@",
@@ -15,7 +15,7 @@
15
15
  "useLocalTemplate": true,
16
16
  "v4": {
17
17
  "range": "~6.13",
18
- "bundled": false,
19
- "localVersion": "6.13.2026072312"
18
+ "bundled": true,
19
+ "localVersion": "6.13.2026072911"
20
20
  }
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/declarativeAgent/helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,OAAO,EAIP,OAAO,EACP,eAAe,EACf,MAAM,EAEN,oBAAoB,EACpB,MAAM,EAEN,SAAS,EACT,OAAO,EACR,MAAM,wBAAwB,CAAC;AA4BhC,OAAO,KAAK,yBAAyB,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAY3D;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAWnF;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAElF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,4BAA4B,EAAE,MAAM,GACnC,OAAO,CAAC,MAAM,CAAC;IAAE,kBAAkB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,CAAC,CA6C5E;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,6BAA6B,EAAE,MAAM,CAAC;CACvC;AAMD,wBAAsB,iBAAiB,CACrC,8BAA8B,EAAE,MAAM,EACtC,sBAAsB,EAAE,MAAM,EAC9B,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC,CAiGnD;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CA6E9B;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,OAAO,2DAEhE;AAED,wBAAsB,+BAA+B,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,oEAEtF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,mDAE1E;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC,CAmE5C;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AACD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuC5D;AAED,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAkP3C"}
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/declarativeAgent/helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,OAAO,EAIP,OAAO,EACP,eAAe,EACf,MAAM,EAEN,oBAAoB,EACpB,MAAM,EAEN,SAAS,EACT,OAAO,EACR,MAAM,wBAAwB,CAAC;AA4BhC,OAAO,KAAK,yBAAyB,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAY3D;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAWnF;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAElF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,4BAA4B,EAAE,MAAM,GACnC,OAAO,CAAC,MAAM,CAAC;IAAE,kBAAkB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,CAAC,CA6C5E;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,6BAA6B,EAAE,MAAM,CAAC;CACvC;AAMD,wBAAsB,iBAAiB,CACrC,8BAA8B,EAAE,MAAM,EACtC,sBAAsB,EAAE,MAAM,EAC9B,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC,CAiGnD;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CA6E9B;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,OAAO,2DAEhE;AAED,wBAAsB,+BAA+B,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,oEAEtF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,mDAE1E;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC,CAmE5C;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AACD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuC5D;AAED,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAqP3C"}
@@ -492,7 +492,13 @@ async function generateForMCPForDA(destinationPath, inputs) {
492
492
  if (injectResult.wellKnownUrlPlaceholderUsed) {
493
493
  warnings.push({
494
494
  type: "mcpAuthDcrWellKnownUrlPlaceholder",
495
- content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthDcrPlaceholderWarning", mcpServerUrl),
495
+ content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthDcrPlaceholderWarning"),
496
+ });
497
+ }
498
+ if (injectResult.oauthUrlPlaceholderUsed) {
499
+ warnings.push({
500
+ type: "mcpAuthOAuthUrlPlaceholder",
501
+ content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthOAuthPlaceholderWarning"),
496
502
  });
497
503
  }
498
504
  }
@@ -572,6 +578,17 @@ async function generateForMCPForDAWithAuth(destinationPath, aiPluginFilePath, in
572
578
  if (authProbe.authMetadataUrl) {
573
579
  inputs[questionNames_1.QuestionNames.MCPForDAAuthMetadataUrl] = authProbe.authMetadataUrl;
574
580
  }
581
+ // This branch never fetches tools, so a mistyped server URL would otherwise leave no
582
+ // trace at all: endpoint discovery falls back to the host and happily returns its
583
+ // authorization server, and the scaffold looks complete. Warns on every `notEndpoint`
584
+ // shape, not just 404 — this is advisory, so it can be broader than the blocking rule
585
+ // applied when the URL is first entered.
586
+ if (authProbe.endpointStatus === "notEndpoint") {
587
+ warnings.push({
588
+ type: "mcpServerUrlNotAnEndpoint",
589
+ content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpServerUrlNotAnEndpoint", mcpServerUrl, String(authProbe.responseStatus)),
590
+ });
591
+ }
575
592
  }
576
593
  catch {
577
594
  // Probe failed — continue; endpoint resolution below will best-effort
@@ -610,7 +627,13 @@ async function generateForMCPForDAWithAuth(destinationPath, aiPluginFilePath, in
610
627
  if (injectResult.wellKnownUrlPlaceholderUsed) {
611
628
  warnings.push({
612
629
  type: "mcpAuthDcrWellKnownUrlPlaceholder",
613
- content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthDcrPlaceholderWarning", mcpServerUrl),
630
+ content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthDcrPlaceholderWarning"),
631
+ });
632
+ }
633
+ if (injectResult.oauthUrlPlaceholderUsed) {
634
+ warnings.push({
635
+ type: "mcpAuthOAuthUrlPlaceholder",
636
+ content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthOAuthPlaceholderWarning"),
614
637
  });
615
638
  }
616
639
  }