@mapbox/mcp-docs-server 0.3.1 → 0.4.0-dev

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 (124) hide show
  1. package/README.md +1 -1
  2. package/dist/commonjs/index.js +22 -5
  3. package/dist/commonjs/index.js.map +1 -1
  4. package/dist/commonjs/resources/BaseResource.d.ts +2 -4
  5. package/dist/commonjs/resources/BaseResource.d.ts.map +1 -1
  6. package/dist/commonjs/resources/BaseResource.js.map +1 -1
  7. package/dist/commonjs/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.d.ts +2 -3
  8. package/dist/commonjs/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.d.ts.map +1 -1
  9. package/dist/commonjs/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.js.map +1 -1
  10. package/dist/commonjs/resources/mapbox-documentation-resource/MapboxDocumentationResource.d.ts +2 -3
  11. package/dist/commonjs/resources/mapbox-documentation-resource/MapboxDocumentationResource.d.ts.map +1 -1
  12. package/dist/commonjs/resources/mapbox-documentation-resource/MapboxDocumentationResource.js.map +1 -1
  13. package/dist/commonjs/resources/mapbox-examples-resource/MapboxExamplesResource.d.ts +2 -3
  14. package/dist/commonjs/resources/mapbox-examples-resource/MapboxExamplesResource.d.ts.map +1 -1
  15. package/dist/commonjs/resources/mapbox-examples-resource/MapboxExamplesResource.js.map +1 -1
  16. package/dist/commonjs/resources/mapbox-guides-resource/MapboxGuidesResource.d.ts +2 -3
  17. package/dist/commonjs/resources/mapbox-guides-resource/MapboxGuidesResource.d.ts.map +1 -1
  18. package/dist/commonjs/resources/mapbox-guides-resource/MapboxGuidesResource.js.map +1 -1
  19. package/dist/commonjs/resources/mapbox-reference-resource/MapboxReferenceResource.d.ts +2 -3
  20. package/dist/commonjs/resources/mapbox-reference-resource/MapboxReferenceResource.d.ts.map +1 -1
  21. package/dist/commonjs/resources/mapbox-reference-resource/MapboxReferenceResource.js.map +1 -1
  22. package/dist/commonjs/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.d.ts +2 -3
  23. package/dist/commonjs/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.d.ts.map +1 -1
  24. package/dist/commonjs/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.js.map +1 -1
  25. package/dist/commonjs/tools/BaseTool.d.ts +2 -4
  26. package/dist/commonjs/tools/BaseTool.d.ts.map +1 -1
  27. package/dist/commonjs/tools/BaseTool.js +2 -4
  28. package/dist/commonjs/tools/BaseTool.js.map +1 -1
  29. package/dist/commonjs/tools/batch-get-documents-tool/BatchGetDocumentsTool.d.ts +1 -1
  30. package/dist/commonjs/tools/batch-get-documents-tool/BatchGetDocumentsTool.d.ts.map +1 -1
  31. package/dist/commonjs/tools/batch-get-documents-tool/BatchGetDocumentsTool.input.schema.js +1 -1
  32. package/dist/commonjs/tools/batch-get-documents-tool/BatchGetDocumentsTool.input.schema.js.map +1 -1
  33. package/dist/commonjs/tools/batch-get-documents-tool/BatchGetDocumentsTool.js +4 -29
  34. package/dist/commonjs/tools/batch-get-documents-tool/BatchGetDocumentsTool.js.map +1 -1
  35. package/dist/commonjs/tools/get-document-tool/GetDocumentTool.d.ts +1 -1
  36. package/dist/commonjs/tools/get-document-tool/GetDocumentTool.d.ts.map +1 -1
  37. package/dist/commonjs/tools/get-document-tool/GetDocumentTool.input.schema.js +1 -1
  38. package/dist/commonjs/tools/get-document-tool/GetDocumentTool.input.schema.js.map +1 -1
  39. package/dist/commonjs/tools/get-document-tool/GetDocumentTool.js +5 -30
  40. package/dist/commonjs/tools/get-document-tool/GetDocumentTool.js.map +1 -1
  41. package/dist/commonjs/tools/search-docs-tool/SearchDocsTool.d.ts +1 -1
  42. package/dist/commonjs/tools/search-docs-tool/SearchDocsTool.d.ts.map +1 -1
  43. package/dist/commonjs/utils/docFetcher.d.ts +3 -1
  44. package/dist/commonjs/utils/docFetcher.d.ts.map +1 -1
  45. package/dist/commonjs/utils/docFetcher.js +136 -8
  46. package/dist/commonjs/utils/docFetcher.js.map +1 -1
  47. package/dist/commonjs/utils/docUrl.d.ts +7 -0
  48. package/dist/commonjs/utils/docUrl.d.ts.map +1 -0
  49. package/dist/commonjs/utils/docUrl.js +47 -0
  50. package/dist/commonjs/utils/docUrl.js.map +1 -0
  51. package/dist/commonjs/utils/httpPipeline.d.ts +12 -0
  52. package/dist/commonjs/utils/httpPipeline.d.ts.map +1 -1
  53. package/dist/commonjs/utils/httpPipeline.js +19 -1
  54. package/dist/commonjs/utils/httpPipeline.js.map +1 -1
  55. package/dist/commonjs/utils/tracing.d.ts +4 -0
  56. package/dist/commonjs/utils/tracing.d.ts.map +1 -1
  57. package/dist/commonjs/utils/tracing.js +21 -1
  58. package/dist/commonjs/utils/tracing.js.map +1 -1
  59. package/dist/commonjs/utils/versionUtils-cjs.cjs.map +1 -0
  60. package/dist/commonjs/utils/versionUtils-cjs.d.cts.map +1 -0
  61. package/dist/commonjs/utils/versionUtils.d.ts +1 -1
  62. package/dist/commonjs/utils/versionUtils.js +4 -6
  63. package/dist/commonjs/version.json +3 -3
  64. package/dist/esm/index.js +21 -4
  65. package/dist/esm/index.js.map +1 -1
  66. package/dist/esm/resources/BaseResource.d.ts +2 -4
  67. package/dist/esm/resources/BaseResource.d.ts.map +1 -1
  68. package/dist/esm/resources/BaseResource.js.map +1 -1
  69. package/dist/esm/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.d.ts +2 -3
  70. package/dist/esm/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.d.ts.map +1 -1
  71. package/dist/esm/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.js.map +1 -1
  72. package/dist/esm/resources/mapbox-documentation-resource/MapboxDocumentationResource.d.ts +2 -3
  73. package/dist/esm/resources/mapbox-documentation-resource/MapboxDocumentationResource.d.ts.map +1 -1
  74. package/dist/esm/resources/mapbox-documentation-resource/MapboxDocumentationResource.js.map +1 -1
  75. package/dist/esm/resources/mapbox-examples-resource/MapboxExamplesResource.d.ts +2 -3
  76. package/dist/esm/resources/mapbox-examples-resource/MapboxExamplesResource.d.ts.map +1 -1
  77. package/dist/esm/resources/mapbox-examples-resource/MapboxExamplesResource.js.map +1 -1
  78. package/dist/esm/resources/mapbox-guides-resource/MapboxGuidesResource.d.ts +2 -3
  79. package/dist/esm/resources/mapbox-guides-resource/MapboxGuidesResource.d.ts.map +1 -1
  80. package/dist/esm/resources/mapbox-guides-resource/MapboxGuidesResource.js.map +1 -1
  81. package/dist/esm/resources/mapbox-reference-resource/MapboxReferenceResource.d.ts +2 -3
  82. package/dist/esm/resources/mapbox-reference-resource/MapboxReferenceResource.d.ts.map +1 -1
  83. package/dist/esm/resources/mapbox-reference-resource/MapboxReferenceResource.js.map +1 -1
  84. package/dist/esm/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.d.ts +2 -3
  85. package/dist/esm/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.d.ts.map +1 -1
  86. package/dist/esm/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.js.map +1 -1
  87. package/dist/esm/tools/BaseTool.d.ts +2 -4
  88. package/dist/esm/tools/BaseTool.d.ts.map +1 -1
  89. package/dist/esm/tools/BaseTool.js +2 -4
  90. package/dist/esm/tools/BaseTool.js.map +1 -1
  91. package/dist/esm/tools/batch-get-documents-tool/BatchGetDocumentsTool.d.ts +1 -1
  92. package/dist/esm/tools/batch-get-documents-tool/BatchGetDocumentsTool.d.ts.map +1 -1
  93. package/dist/esm/tools/batch-get-documents-tool/BatchGetDocumentsTool.input.schema.js +1 -1
  94. package/dist/esm/tools/batch-get-documents-tool/BatchGetDocumentsTool.input.schema.js.map +1 -1
  95. package/dist/esm/tools/batch-get-documents-tool/BatchGetDocumentsTool.js +3 -28
  96. package/dist/esm/tools/batch-get-documents-tool/BatchGetDocumentsTool.js.map +1 -1
  97. package/dist/esm/tools/get-document-tool/GetDocumentTool.d.ts +1 -1
  98. package/dist/esm/tools/get-document-tool/GetDocumentTool.d.ts.map +1 -1
  99. package/dist/esm/tools/get-document-tool/GetDocumentTool.input.schema.js +1 -1
  100. package/dist/esm/tools/get-document-tool/GetDocumentTool.input.schema.js.map +1 -1
  101. package/dist/esm/tools/get-document-tool/GetDocumentTool.js +4 -29
  102. package/dist/esm/tools/get-document-tool/GetDocumentTool.js.map +1 -1
  103. package/dist/esm/tools/search-docs-tool/SearchDocsTool.d.ts +1 -1
  104. package/dist/esm/tools/search-docs-tool/SearchDocsTool.d.ts.map +1 -1
  105. package/dist/esm/utils/docFetcher.d.ts +3 -1
  106. package/dist/esm/utils/docFetcher.d.ts.map +1 -1
  107. package/dist/esm/utils/docFetcher.js +136 -8
  108. package/dist/esm/utils/docFetcher.js.map +1 -1
  109. package/dist/esm/utils/docUrl.d.ts +7 -0
  110. package/dist/esm/utils/docUrl.d.ts.map +1 -0
  111. package/dist/esm/utils/docUrl.js +43 -0
  112. package/dist/esm/utils/docUrl.js.map +1 -0
  113. package/dist/esm/utils/httpPipeline.d.ts +12 -0
  114. package/dist/esm/utils/httpPipeline.d.ts.map +1 -1
  115. package/dist/esm/utils/httpPipeline.js +17 -0
  116. package/dist/esm/utils/httpPipeline.js.map +1 -1
  117. package/dist/esm/utils/tracing.d.ts +4 -0
  118. package/dist/esm/utils/tracing.d.ts.map +1 -1
  119. package/dist/esm/utils/tracing.js +20 -1
  120. package/dist/esm/utils/tracing.js.map +1 -1
  121. package/dist/esm/version.json +3 -3
  122. package/package.json +7 -2
  123. package/dist/commonjs/utils/versionUtils.d.ts.map +0 -1
  124. package/dist/commonjs/utils/versionUtils.js.map +0 -1
@@ -24,7 +24,9 @@ export declare function fetchCachedText(url: string, httpRequest: HttpRequest):
24
24
  /**
25
25
  * Fetch a Mapbox documentation page, preferring the .md variant for
26
26
  * docs.mapbox.com URLs when available. Falls back to the original URL
27
- * if the .md endpoint returns a non-2xx response.
27
+ * if the .md endpoint returns a non-2xx response. Redirects are followed only
28
+ * to other allowed documentation URLs (e.g. a page that has moved); if the
29
+ * fallback ends up on a different URL, its .md variant is tried first.
28
30
  *
29
31
  * Set MAPBOX_DOCS_HOST_OVERRIDE=docs.tilestream.net to redirect all
30
32
  * docs.mapbox.com fetches to the staging environment.
@@ -1 +1 @@
1
- {"version":3,"file":"docFetcher.d.ts","sourceRoot":"","sources":["../../../src/utils/docFetcher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAY9C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYxD;AAoBD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
1
+ {"version":3,"file":"docFetcher.d.ts","sourceRoot":"","sources":["../../../src/utils/docFetcher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAY9C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYxD;AAwHD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,CAoDjB"}
@@ -6,6 +6,7 @@ exports.toMarkdownUrl = toMarkdownUrl;
6
6
  exports.fetchCachedText = fetchCachedText;
7
7
  exports.fetchDocContent = fetchDocContent;
8
8
  const docCache_js_1 = require("./docCache.js");
9
+ const docUrl_js_1 = require("./docUrl.js");
9
10
  const DOCS_HOSTNAME = 'docs.mapbox.com';
10
11
  /**
11
12
  * Returns the effective docs hostname, allowing MAPBOX_DOCS_HOST_OVERRIDE
@@ -64,6 +65,90 @@ function applyHostOverride(url) {
64
65
  return url;
65
66
  }
66
67
  }
68
+ /**
69
+ * docs.mapbox.com serves HTML pages at a trailing-slash path and answers the
70
+ * slash-less form with a redirect. Add the slash to extension-less paths so
71
+ * the fallback fetch gets the page directly.
72
+ */
73
+ function withTrailingSlash(url) {
74
+ try {
75
+ const parsed = new URL(url);
76
+ if (parsed.hostname !== getDocsHostname())
77
+ return url;
78
+ const lastSegment = parsed.pathname.split('/').pop() ?? '';
79
+ if (lastSegment !== '' && !lastSegment.includes('.')) {
80
+ parsed.pathname += '/';
81
+ }
82
+ return parsed.toString();
83
+ }
84
+ catch {
85
+ return url;
86
+ }
87
+ }
88
+ const MAX_REDIRECTS = 3;
89
+ const FOLLOWED_REDIRECT_STATUSES = new Set([301, 302, 303, 307, 308]);
90
+ class RedirectError extends Error {
91
+ }
92
+ /**
93
+ * Resolve the Location of a redirect response against the URL that was
94
+ * requested. Returns null unless the status is one we follow and the target is
95
+ * a different, allowed documentation URL without an access_token.
96
+ */
97
+ function redirectTarget(response, current) {
98
+ if (!FOLLOWED_REDIRECT_STATUSES.has(response.status))
99
+ return null;
100
+ const location = response.headers.get('location');
101
+ if (!location?.trim())
102
+ return null;
103
+ try {
104
+ const next = new URL(location, current).href;
105
+ if (next === new URL(current).href)
106
+ return null;
107
+ if (!(0, docUrl_js_1.isDocsUrl)(next) || (0, docUrl_js_1.hasAccessToken)(next))
108
+ return null;
109
+ return next;
110
+ }
111
+ catch {
112
+ return null;
113
+ }
114
+ }
115
+ /**
116
+ * Map a URL on the effective docs host back to docs.mapbox.com. Needed because
117
+ * toMarkdownUrl only matches docs.mapbox.com and applies the host override
118
+ * itself.
119
+ */
120
+ function toCanonicalDocsUrl(url) {
121
+ try {
122
+ const parsed = new URL(url);
123
+ if (parsed.hostname === getDocsHostname()) {
124
+ parsed.hostname = DOCS_HOSTNAME;
125
+ }
126
+ return parsed.toString();
127
+ }
128
+ catch {
129
+ return url;
130
+ }
131
+ }
132
+ async function fetchFollowingDocsRedirects(url, httpRequest, beforeFollow) {
133
+ let current = url;
134
+ for (let hops = 0;; hops++) {
135
+ const response = await httpRequest(current, {});
136
+ if (response.status < 300 || response.status >= 400) {
137
+ return { response, finalUrl: current };
138
+ }
139
+ void response.body?.cancel();
140
+ if (hops >= MAX_REDIRECTS)
141
+ throw new RedirectError('Too many redirects');
142
+ const next = redirectTarget(response, current);
143
+ if (next === null) {
144
+ throw new RedirectError(`${response.status} Redirect not followed`);
145
+ }
146
+ const early = await beforeFollow?.(next);
147
+ if (early != null)
148
+ return { content: early };
149
+ current = next;
150
+ }
151
+ }
67
152
  /**
68
153
  * Fetch a URL and cache the result. Intended for fetching llms.txt index
69
154
  * files which are small, change infrequently, and are shared across multiple
@@ -73,10 +158,16 @@ async function fetchCachedText(url, httpRequest) {
73
158
  const cached = docCache_js_1.docCache.get(url);
74
159
  if (cached !== null)
75
160
  return cached;
76
- const response = await httpRequest(url, {});
161
+ const { response, finalUrl } = await fetchFollowingDocsRedirects(url, httpRequest);
77
162
  if (!response.ok) {
78
163
  throw new Error(`Failed to fetch ${url}: ${response.statusText}`);
79
164
  }
165
+ // A redirected index must still be text, not the HTML page it moved to.
166
+ if (finalUrl !== url &&
167
+ response.headers.get('content-type')?.toLowerCase().includes('text/html')) {
168
+ void response.body?.cancel();
169
+ throw new Error(`Unexpected content type for ${url}`);
170
+ }
80
171
  const content = await response.text();
81
172
  if (Buffer.byteLength(content, 'utf8') > docCache_js_1.MAX_ENTRY_BYTES) {
82
173
  throw new Error(`Response too large for ${url}`);
@@ -87,21 +178,58 @@ async function fetchCachedText(url, httpRequest) {
87
178
  /**
88
179
  * Fetch a Mapbox documentation page, preferring the .md variant for
89
180
  * docs.mapbox.com URLs when available. Falls back to the original URL
90
- * if the .md endpoint returns a non-2xx response.
181
+ * if the .md endpoint returns a non-2xx response. Redirects are followed only
182
+ * to other allowed documentation URLs (e.g. a page that has moved); if the
183
+ * fallback ends up on a different URL, its .md variant is tried first.
91
184
  *
92
185
  * Set MAPBOX_DOCS_HOST_OVERRIDE=docs.tilestream.net to redirect all
93
186
  * docs.mapbox.com fetches to the staging environment.
94
187
  */
95
188
  async function fetchDocContent(url, httpRequest) {
189
+ const tryMarkdown = async (mdUrl) => {
190
+ try {
191
+ const result = await fetchFollowingDocsRedirects(mdUrl, httpRequest);
192
+ if (result.response.ok) {
193
+ return await (0, docCache_js_1.readBodyWithLimit)(result.response, docCache_js_1.MAX_ENTRY_BYTES);
194
+ }
195
+ void result.response.body?.cancel();
196
+ }
197
+ catch (error) {
198
+ if (!(error instanceof RedirectError))
199
+ throw error;
200
+ }
201
+ return null;
202
+ };
96
203
  const mdUrl = toMarkdownUrl(url);
97
204
  if (mdUrl) {
98
- const mdResponse = await httpRequest(mdUrl, {});
99
- if (mdResponse.ok) {
100
- return (0, docCache_js_1.readBodyWithLimit)(mdResponse, docCache_js_1.MAX_ENTRY_BYTES);
101
- }
205
+ const markdown = await tryMarkdown(mdUrl);
206
+ if (markdown !== null)
207
+ return markdown;
102
208
  }
103
- const fetchUrl = applyHostOverride(url);
104
- const response = await httpRequest(fetchUrl, {});
209
+ // For a moved page, try the .md variant of the new location before
210
+ // requesting its HTML. `next` has already passed isDocsUrl(); the derived
211
+ // .md URL is checked again before it is requested. A single request, no
212
+ // redirects: keeps the total request count bounded by MAX_REDIRECTS.
213
+ const probed = new Set(mdUrl ? [mdUrl] : []);
214
+ const tryMovedMarkdown = async (next) => {
215
+ const movedMdUrl = toMarkdownUrl(toCanonicalDocsUrl(next));
216
+ if (!movedMdUrl || !(0, docUrl_js_1.isDocsUrl)(movedMdUrl) || (0, docUrl_js_1.hasAccessToken)(movedMdUrl)) {
217
+ return null;
218
+ }
219
+ if (probed.has(movedMdUrl))
220
+ return null;
221
+ probed.add(movedMdUrl);
222
+ const response = await httpRequest(movedMdUrl, {});
223
+ if (response.ok)
224
+ return (0, docCache_js_1.readBodyWithLimit)(response, docCache_js_1.MAX_ENTRY_BYTES);
225
+ void response.body?.cancel();
226
+ return null;
227
+ };
228
+ const fetchUrl = withTrailingSlash(applyHostOverride(url));
229
+ const result = await fetchFollowingDocsRedirects(fetchUrl, httpRequest, tryMovedMarkdown);
230
+ if ('content' in result)
231
+ return result.content;
232
+ const { response } = result;
105
233
  if (!response.ok) {
106
234
  throw new Error(`${response.status} ${response.statusText}`);
107
235
  }
@@ -1 +1 @@
1
- {"version":3,"file":"docFetcher.js","sourceRoot":"","sources":["../../../src/utils/docFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docFetcher.js","sourceRoot":"","sources":["../../../src/utils/docFetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * True only for plain https URLs on an allowed documentation host, with no
3
+ * explicit port and no embedded credentials.
4
+ */
5
+ export declare function isDocsUrl(url: string): boolean;
6
+ export declare function hasAccessToken(url: string): boolean;
7
+ //# sourceMappingURL=docUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docUrl.d.ts","sourceRoot":"","sources":["../../../src/utils/docUrl.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAa9C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CASnD"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ // Copyright (c) Mapbox, Inc.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.isDocsUrl = isDocsUrl;
6
+ exports.hasAccessToken = hasAccessToken;
7
+ const DOCS_HOSTNAME = 'docs.mapbox.com';
8
+ // Only documentation hosts are allowed. Bare mapbox.com and api.mapbox.com are
9
+ // intentionally excluded: neither is a documentation host, and api.mapbox.com
10
+ // is an authenticated API.
11
+ function allowedHostnames() {
12
+ const hosts = new Set([DOCS_HOSTNAME]);
13
+ const override = process.env.MAPBOX_DOCS_HOST_OVERRIDE;
14
+ if (override)
15
+ hosts.add(override);
16
+ return hosts;
17
+ }
18
+ /**
19
+ * True only for plain https URLs on an allowed documentation host, with no
20
+ * explicit port and no embedded credentials.
21
+ */
22
+ function isDocsUrl(url) {
23
+ try {
24
+ const parsed = new URL(url);
25
+ return (parsed.protocol === 'https:' &&
26
+ parsed.port === '' &&
27
+ parsed.username === '' &&
28
+ parsed.password === '' &&
29
+ allowedHostnames().has(parsed.hostname));
30
+ }
31
+ catch {
32
+ return false;
33
+ }
34
+ }
35
+ function hasAccessToken(url) {
36
+ try {
37
+ for (const key of new URL(url).searchParams.keys()) {
38
+ if (key.toLowerCase() === 'access_token')
39
+ return true;
40
+ }
41
+ return false;
42
+ }
43
+ catch {
44
+ return false;
45
+ }
46
+ }
47
+ //# sourceMappingURL=docUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docUrl.js","sourceRoot":"","sources":["../../../src/utils/docUrl.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;AAkBlC,8BAaC;AAED,wCASC;AAxCD,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAExC,+EAA+E;AAC/E,8EAA8E;AAC9E,2BAA2B;AAC3B,SAAS,gBAAgB;IACvB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACvD,IAAI,QAAQ;QAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CACL,MAAM,CAAC,QAAQ,KAAK,QAAQ;YAC5B,MAAM,CAAC,IAAI,KAAK,EAAE;YAClB,MAAM,CAAC,QAAQ,KAAK,EAAE;YACtB,MAAM,CAAC,QAAQ,KAAK,EAAE;YACtB,gBAAgB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CACxC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAgB,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC;QACH,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YACnD,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,cAAc;gBAAE,OAAO,IAAI,CAAC;QACxD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -34,6 +34,18 @@ export declare class RetryPolicy implements HttpPolicy {
34
34
  constructor(maxRetries?: number, baseDelayMs?: number, maxDelayMs?: number, id?: string);
35
35
  handle(input: string | URL | Request, init: RequestInit, next: HttpRequest): Promise<Response>;
36
36
  }
37
+ /**
38
+ * Stops fetch from following redirects. URLs are validated against the docs
39
+ * host allowlist before the request, and a redirect target would skip that
40
+ * check. With 'manual', fetch returns the 3xx response itself and the target
41
+ * is never requested. The override is applied after the caller's options so it
42
+ * cannot be turned back on per request.
43
+ */
44
+ export declare class NoRedirectPolicy implements HttpPolicy {
45
+ id: string;
46
+ constructor(id?: string);
47
+ handle(input: string | URL | Request, init: RequestInit, next: HttpRequest): Promise<Response>;
48
+ }
37
49
  export declare const httpRequest: (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
38
50
  export declare const systemHttpPipeline: HttpPipeline;
39
51
  //# sourceMappingURL=httpPipeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpPipeline.d.ts","sourceRoot":"","sources":["../../../src/utils/httpPipeline.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAM9C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CACJ,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,eAAe,CAAc;gBAEzB,eAAe,CAAC,EAAE,WAAW;IAIzC,SAAS,CAAC,MAAM,EAAE,UAAU;IAI5B,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;IAQ5C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIlD,YAAY;IAIN,OAAO,CACX,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,QAAQ,CAAC;CAkBrB;AAED,qBAAa,eAAgB,YAAW,UAAU;IAI9C,OAAO,CAAC,SAAS;IAHnB,EAAE,EAAE,MAAM,CAAC;gBAGD,SAAS,EAAE,MAAM,EACzB,EAAE,CAAC,EAAE,MAAM;IAKP,MAAM,CACV,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,QAAQ,CAAC;IAmBpB,MAAM,CAAC,eAAe,CACpB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,EACD,EAAE,CAAC,EAAE,MAAM,GACV,eAAe;CAInB;AAED,qBAAa,WAAY,YAAW,UAAU;IAI1C,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IALpB,EAAE,EAAE,MAAM,CAAC;gBAGD,UAAU,GAAE,MAAU,EACtB,WAAW,GAAE,MAAY,EACzB,UAAU,GAAE,MAAa,EACjC,EAAE,CAAC,EAAE,MAAM;IAKP,MAAM,CACV,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,QAAQ,CAAC;CA2BrB;AASD,eAAO,MAAM,WAAW,UA1Hb,MAAM,GAAG,GAAG,GAAG,OAAO,SACvB,WAAW,KAChB,OAAO,CAAC,QAAQ,CAwHqC,CAAC;AAC3D,eAAO,MAAM,kBAAkB,cAAW,CAAC"}
1
+ {"version":3,"file":"httpPipeline.d.ts","sourceRoot":"","sources":["../../../src/utils/httpPipeline.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAM9C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CACJ,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,eAAe,CAAc;gBAEzB,eAAe,CAAC,EAAE,WAAW;IAIzC,SAAS,CAAC,MAAM,EAAE,UAAU;IAI5B,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;IAQ5C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIlD,YAAY;IAIN,OAAO,CACX,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,QAAQ,CAAC;CAkBrB;AAED,qBAAa,eAAgB,YAAW,UAAU;IAI9C,OAAO,CAAC,SAAS;IAHnB,EAAE,EAAE,MAAM,CAAC;gBAGD,SAAS,EAAE,MAAM,EACzB,EAAE,CAAC,EAAE,MAAM;IAKP,MAAM,CACV,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,QAAQ,CAAC;IAmBpB,MAAM,CAAC,eAAe,CACpB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,EACD,EAAE,CAAC,EAAE,MAAM,GACV,eAAe;CAInB;AAED,qBAAa,WAAY,YAAW,UAAU;IAI1C,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IALpB,EAAE,EAAE,MAAM,CAAC;gBAGD,UAAU,GAAE,MAAU,EACtB,WAAW,GAAE,MAAY,EACzB,UAAU,GAAE,MAAa,EACjC,EAAE,CAAC,EAAE,MAAM;IAKP,MAAM,CACV,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,QAAQ,CAAC;CA2BrB;AAED;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,UAAU;IACjD,EAAE,EAAE,MAAM,CAAC;gBAEC,EAAE,CAAC,EAAE,MAAM;IAIjB,MAAM,CACV,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,QAAQ,CAAC;CAGrB;AAUD,eAAO,MAAM,WAAW,UAlJb,MAAM,GAAG,GAAG,GAAG,OAAO,SACvB,WAAW,KAChB,OAAO,CAAC,QAAQ,CAgJqC,CAAC;AAC3D,eAAO,MAAM,kBAAkB,cAAW,CAAC"}
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) Mapbox, Inc.
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.systemHttpPipeline = exports.httpRequest = exports.RetryPolicy = exports.UserAgentPolicy = exports.HttpPipeline = void 0;
5
+ exports.systemHttpPipeline = exports.httpRequest = exports.NoRedirectPolicy = exports.RetryPolicy = exports.UserAgentPolicy = exports.HttpPipeline = void 0;
6
6
  const versionUtils_js_1 = require("./versionUtils.js");
7
7
  function createRandomId(prefix) {
8
8
  return `${prefix}${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
@@ -103,10 +103,28 @@ class RetryPolicy {
103
103
  }
104
104
  }
105
105
  exports.RetryPolicy = RetryPolicy;
106
+ /**
107
+ * Stops fetch from following redirects. URLs are validated against the docs
108
+ * host allowlist before the request, and a redirect target would skip that
109
+ * check. With 'manual', fetch returns the 3xx response itself and the target
110
+ * is never requested. The override is applied after the caller's options so it
111
+ * cannot be turned back on per request.
112
+ */
113
+ class NoRedirectPolicy {
114
+ id;
115
+ constructor(id) {
116
+ this.id = id ?? createRandomId('no-redirect-');
117
+ }
118
+ async handle(input, init, next) {
119
+ return next(input, { ...init, redirect: 'manual' });
120
+ }
121
+ }
122
+ exports.NoRedirectPolicy = NoRedirectPolicy;
106
123
  const pipeline = new HttpPipeline();
107
124
  const versionInfo = (0, versionUtils_js_1.getVersionInfo)();
108
125
  pipeline.usePolicy(UserAgentPolicy.fromVersionInfo(versionInfo, 'system-user-agent-policy'));
109
126
  pipeline.usePolicy(new RetryPolicy(3, 200, 2000, 'system-retry-policy'));
127
+ pipeline.usePolicy(new NoRedirectPolicy('system-no-redirect-policy'));
110
128
  exports.httpRequest = pipeline.execute.bind(pipeline);
111
129
  exports.systemHttpPipeline = pipeline;
112
130
  //# sourceMappingURL=httpPipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpPipeline.js","sourceRoot":"","sources":["../../../src/utils/httpPipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"httpPipeline.js","sourceRoot":"","sources":["../../../src/utils/httpPipeline.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,10 @@ export declare function initializeTracing(): Promise<void>;
10
10
  export declare function shutdownTracing(): Promise<void>;
11
11
  export declare function isTracingInitialized(): boolean;
12
12
  export declare function getTracer(): import("@opentelemetry/api").Tracer;
13
+ export declare function setClientInfo(info: {
14
+ name?: string;
15
+ version?: string;
16
+ } | undefined): void;
13
17
  /**
14
18
  * Create a span for tool execution and run the callback within its context.
15
19
  * Automatically marks the span success or error and ends it.
@@ -1 +1 @@
1
- {"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../../src/utils/tracing.ts"],"names":[],"mappings":"AAWA,OAAO,EAKL,KAAK,IAAI,EAGV,MAAM,oBAAoB,CAAC;AA+B5B;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgEvD;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAMrD;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,wBAAgB,SAAS,wCAExB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC,CA0BZ"}
1
+ {"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../../src/utils/tracing.ts"],"names":[],"mappings":"AAWA,OAAO,EAKL,KAAK,IAAI,EAGV,MAAM,oBAAoB,CAAC;AA+B5B;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgEvD;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAMrD;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,wBAAgB,SAAS,wCAExB;AAaD,wBAAgB,aAAa,CAC3B,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GACpD,IAAI,CAEN;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC,CAgCZ"}
@@ -6,6 +6,7 @@ exports.initializeTracing = initializeTracing;
6
6
  exports.shutdownTracing = shutdownTracing;
7
7
  exports.isTracingInitialized = isTracingInitialized;
8
8
  exports.getTracer = getTracer;
9
+ exports.setClientInfo = setClientInfo;
9
10
  exports.withToolSpan = withToolSpan;
10
11
  const sdk_node_1 = require("@opentelemetry/sdk-node");
11
12
  const auto_instrumentations_node_1 = require("@opentelemetry/auto-instrumentations-node");
@@ -107,6 +108,19 @@ function isTracingInitialized() {
107
108
  function getTracer() {
108
109
  return api_1.trace.getTracer('mapbox-mcp-docs-server');
109
110
  }
111
+ /**
112
+ * The connected client's `clientInfo` (name/version), as reported in its
113
+ * `initialize` request. There is exactly one client per stdio server
114
+ * process, so this is safe as module-level state; set once via
115
+ * `setClientInfo` after the initialize handshake completes (see
116
+ * `server.server.oninitialized` in index.ts) and read by every tool span
117
+ * created afterward, so traces can be filtered/grouped by which MCP client
118
+ * (Claude Desktop, Cursor, VS Code, etc.) made the call.
119
+ */
120
+ let currentClientInfo;
121
+ function setClientInfo(info) {
122
+ currentClientInfo = info;
123
+ }
110
124
  /**
111
125
  * Create a span for tool execution and run the callback within its context.
112
126
  * Automatically marks the span success or error and ends it.
@@ -117,7 +131,13 @@ async function withToolSpan(toolName, fn) {
117
131
  kind: api_1.SpanKind.INTERNAL,
118
132
  attributes: {
119
133
  'tool.name': toolName,
120
- 'operation.type': 'tool_execution'
134
+ 'operation.type': 'tool_execution',
135
+ ...(currentClientInfo?.name && {
136
+ 'mcp.client.name': currentClientInfo.name
137
+ }),
138
+ ...(currentClientInfo?.version && {
139
+ 'mcp.client.version': currentClientInfo.version
140
+ })
121
141
  }
122
142
  });
123
143
  return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/utils/tracing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/utils/tracing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionUtils-cjs.cjs","sourceRoot":"","sources":["../../../src/utils/versionUtils-cjs.cts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;;;AAgBlC,wCAiBC;AA/BD,qEAAqE;AACrE,4EAA4E;AAE5E,qCAAuC;AACvC,0DAA6B;AAU7B,SAAgB,cAAc;IAC5B,MAAM,IAAI,GAAG,iCAAiC,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,IAAA,sBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,OAAO;YAChB,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,SAAS;YACd,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionUtils-cjs.d.cts","sourceRoot":"","sources":["../../../src/utils/versionUtils-cjs.cts"],"names":[],"mappings":"AASA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,cAAc,IAAI,WAAW,CAiB5C"}
@@ -6,4 +6,4 @@ export interface VersionInfo {
6
6
  branch: string;
7
7
  }
8
8
  export declare function getVersionInfo(): VersionInfo;
9
- //# sourceMappingURL=versionUtils.d.ts.map
9
+ //# sourceMappingURL=versionUtils-cjs.d.cts.map
@@ -6,16 +6,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  };
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.getVersionInfo = getVersionInfo;
9
+ // CommonJS build of versionUtils.ts. tshy uses this file in place of
10
+ // versionUtils.ts for dist/commonjs, since import.meta doesn't exist there.
9
11
  const node_fs_1 = require("node:fs");
10
12
  const node_path_1 = __importDefault(require("node:path"));
11
- const node_url_1 = require("node:url");
12
13
  function getVersionInfo() {
13
14
  const name = 'Mapbox Documentation MCP Server';
14
15
  try {
15
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
16
- // @ts-ignore
17
- const dirname = node_path_1.default.dirname((0, node_url_1.fileURLToPath)(import.meta.url));
18
- const filePath = node_path_1.default.resolve(dirname, '..', 'version.json');
16
+ const filePath = node_path_1.default.resolve(__dirname, '..', 'version.json');
19
17
  const data = (0, node_fs_1.readFileSync)(filePath, 'utf-8');
20
18
  const info = JSON.parse(data);
21
19
  info.name = name;
@@ -31,4 +29,4 @@ function getVersionInfo() {
31
29
  };
32
30
  }
33
31
  }
34
- //# sourceMappingURL=versionUtils.js.map
32
+ //# sourceMappingURL=versionUtils-cjs.cjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
- "sha": "20c45c2a9f24ce2bb1df9dee894d9182dfc71f42",
3
- "tag": "v0.3.0-8-g20c45c2",
2
+ "sha": "80a2c0c9633f67358ca07d1cdf6039305594c807",
3
+ "tag": "v0.4.0-dev",
4
4
  "branch": "HEAD",
5
- "version": "0.3.1"
5
+ "version": "0.4.0-dev"
6
6
  }
package/dist/esm/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  // Copyright (c) Mapbox, Inc.
3
3
  // Licensed under the MIT License.
4
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import { StdioServerTransport } from '@modelcontextprotocol/server/stdio';
5
+ import { McpServer } from '@modelcontextprotocol/server';
6
6
  import { parseToolConfigFromArgs, filterTools } from './config/toolConfig.js';
7
7
  import { getCoreTools } from './tools/toolRegistry.js';
8
8
  import { getAllResources } from './resources/resourceRegistry.js';
9
9
  import { getVersionInfo } from './utils/versionUtils.js';
10
- import { initializeTracing, shutdownTracing } from './utils/tracing.js';
10
+ import { initializeTracing, shutdownTracing, setClientInfo } from './utils/tracing.js';
11
11
  // Parse configuration from command-line arguments
12
12
  const config = parseToolConfigFromArgs();
13
13
  // Get and filter tools based on configuration
@@ -21,7 +21,8 @@ const server = new McpServer({
21
21
  }, {
22
22
  capabilities: {
23
23
  tools: {},
24
- resources: {}
24
+ resources: {},
25
+ logging: {}
25
26
  }
26
27
  });
27
28
  // Register tools
@@ -35,6 +36,22 @@ resources.forEach((resource) => {
35
36
  });
36
37
  async function main() {
37
38
  await initializeTracing();
39
+ // Registered before connect() so it's already in place the moment the
40
+ // client's initialize handshake completes. getClientVersion() is only
41
+ // populated once the server has processed the client's `initialize`
42
+ // request -- reading it synchronously right after `server.connect()`
43
+ // races that request, since connect() only waits for the transport to
44
+ // start, not for the handshake to finish.
45
+ server.server.oninitialized = () => {
46
+ const clientInfo = server.server.getClientVersion();
47
+ // Recorded so every subsequent tool-execution span carries it too --
48
+ // see setClientInfo's doc comment in tracing.ts.
49
+ setClientInfo(clientInfo);
50
+ server.server.sendLoggingMessage({
51
+ level: 'info',
52
+ data: `Client identified as: ${clientInfo?.name ?? 'unknown'} v${clientInfo?.version ?? 'unknown'}`
53
+ });
54
+ };
38
55
  const transport = new StdioServerTransport();
39
56
  await server.connect(transport);
40
57
  server.server.sendLoggingMessage({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,4 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
3
- import type { ReadResourceResult, ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';
1
+ import type { McpServer, ReadResourceResult, ServerContext } from '@modelcontextprotocol/server';
4
2
  /**
5
3
  * Base class for MCP resources
6
4
  */
@@ -16,6 +14,6 @@ export declare abstract class BaseResource {
16
14
  /**
17
15
  * Callback to read the resource content
18
16
  */
19
- abstract readCallback(uri: URL, extra: RequestHandlerExtra<ServerRequest, ServerNotification>): Promise<ReadResourceResult>;
17
+ abstract readCallback(uri: URL, extra: ServerContext): Promise<ReadResourceResult>;
20
18
  }
21
19
  //# sourceMappingURL=BaseResource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseResource.d.ts","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C;;GAEG;AACH,8BAAsB,YAAY;IAChC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAEnC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAYlC;;OAEG;aACa,YAAY,CAC1B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAC5D,OAAO,CAAC,kBAAkB,CAAC;CAC/B"}
1
+ {"version":3,"file":"BaseResource.d.ts","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,aAAa,EACd,MAAM,8BAA8B,CAAC;AAEtC;;GAEG;AACH,8BAAsB,YAAY;IAChC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAEnC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAYlC;;OAEG;aACa,YAAY,CAC1B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,kBAAkB,CAAC;CAC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseResource.js","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAUlC;;GAEG;AACH,MAAM,OAAgB,YAAY;IAMhC;;OAEG;IACH,SAAS,CAAC,MAAiB;QACzB,MAAM,CAAC,gBAAgB,CACrB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,EACR;YACE,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,EACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7B,CAAC;IACJ,CAAC;CASF"}
1
+ {"version":3,"file":"BaseResource.js","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAQlC;;GAEG;AACH,MAAM,OAAgB,YAAY;IAMhC;;OAEG;IACH,SAAS,CAAC,MAAiB;QACzB,MAAM,CAAC,gBAAgB,CACrB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,EACR;YACE,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,EACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7B,CAAC;IACJ,CAAC;CASF"}
@@ -1,5 +1,4 @@
1
- import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
2
- import type { ReadResourceResult, ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';
1
+ import type { ReadResourceResult, ServerContext } from '@modelcontextprotocol/server';
3
2
  import type { HttpRequest } from '../../utils/types.js';
4
3
  import { BaseResource } from '../BaseResource.js';
5
4
  /**
@@ -18,6 +17,6 @@ export declare class MapboxApiReferenceResource extends BaseResource {
18
17
  constructor(params: {
19
18
  httpRequest: HttpRequest;
20
19
  });
21
- readCallback(uri: URL, _extra: RequestHandlerExtra<ServerRequest, ServerNotification>): Promise<ReadResourceResult>;
20
+ readCallback(uri: URL, _extra: ServerContext): Promise<ReadResourceResult>;
22
21
  }
23
22
  //# sourceMappingURL=MapboxApiReferenceResource.d.ts.map