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

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 +6 -2
  123. package/dist/commonjs/utils/versionUtils.d.ts.map +0 -1
  124. package/dist/commonjs/utils/versionUtils.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) Mapbox, Inc.
2
2
  // Licensed under the MIT License.
3
3
  import { docCache, MAX_ENTRY_BYTES, readBodyWithLimit } from './docCache.js';
4
+ import { hasAccessToken, isDocsUrl } from './docUrl.js';
4
5
  const DOCS_HOSTNAME = 'docs.mapbox.com';
5
6
  /**
6
7
  * Returns the effective docs hostname, allowing MAPBOX_DOCS_HOST_OVERRIDE
@@ -59,6 +60,90 @@ function applyHostOverride(url) {
59
60
  return url;
60
61
  }
61
62
  }
63
+ /**
64
+ * docs.mapbox.com serves HTML pages at a trailing-slash path and answers the
65
+ * slash-less form with a redirect. Add the slash to extension-less paths so
66
+ * the fallback fetch gets the page directly.
67
+ */
68
+ function withTrailingSlash(url) {
69
+ try {
70
+ const parsed = new URL(url);
71
+ if (parsed.hostname !== getDocsHostname())
72
+ return url;
73
+ const lastSegment = parsed.pathname.split('/').pop() ?? '';
74
+ if (lastSegment !== '' && !lastSegment.includes('.')) {
75
+ parsed.pathname += '/';
76
+ }
77
+ return parsed.toString();
78
+ }
79
+ catch {
80
+ return url;
81
+ }
82
+ }
83
+ const MAX_REDIRECTS = 3;
84
+ const FOLLOWED_REDIRECT_STATUSES = new Set([301, 302, 303, 307, 308]);
85
+ class RedirectError extends Error {
86
+ }
87
+ /**
88
+ * Resolve the Location of a redirect response against the URL that was
89
+ * requested. Returns null unless the status is one we follow and the target is
90
+ * a different, allowed documentation URL without an access_token.
91
+ */
92
+ function redirectTarget(response, current) {
93
+ if (!FOLLOWED_REDIRECT_STATUSES.has(response.status))
94
+ return null;
95
+ const location = response.headers.get('location');
96
+ if (!location?.trim())
97
+ return null;
98
+ try {
99
+ const next = new URL(location, current).href;
100
+ if (next === new URL(current).href)
101
+ return null;
102
+ if (!isDocsUrl(next) || hasAccessToken(next))
103
+ return null;
104
+ return next;
105
+ }
106
+ catch {
107
+ return null;
108
+ }
109
+ }
110
+ /**
111
+ * Map a URL on the effective docs host back to docs.mapbox.com. Needed because
112
+ * toMarkdownUrl only matches docs.mapbox.com and applies the host override
113
+ * itself.
114
+ */
115
+ function toCanonicalDocsUrl(url) {
116
+ try {
117
+ const parsed = new URL(url);
118
+ if (parsed.hostname === getDocsHostname()) {
119
+ parsed.hostname = DOCS_HOSTNAME;
120
+ }
121
+ return parsed.toString();
122
+ }
123
+ catch {
124
+ return url;
125
+ }
126
+ }
127
+ async function fetchFollowingDocsRedirects(url, httpRequest, beforeFollow) {
128
+ let current = url;
129
+ for (let hops = 0;; hops++) {
130
+ const response = await httpRequest(current, {});
131
+ if (response.status < 300 || response.status >= 400) {
132
+ return { response, finalUrl: current };
133
+ }
134
+ void response.body?.cancel();
135
+ if (hops >= MAX_REDIRECTS)
136
+ throw new RedirectError('Too many redirects');
137
+ const next = redirectTarget(response, current);
138
+ if (next === null) {
139
+ throw new RedirectError(`${response.status} Redirect not followed`);
140
+ }
141
+ const early = await beforeFollow?.(next);
142
+ if (early != null)
143
+ return { content: early };
144
+ current = next;
145
+ }
146
+ }
62
147
  /**
63
148
  * Fetch a URL and cache the result. Intended for fetching llms.txt index
64
149
  * files which are small, change infrequently, and are shared across multiple
@@ -68,10 +153,16 @@ export async function fetchCachedText(url, httpRequest) {
68
153
  const cached = docCache.get(url);
69
154
  if (cached !== null)
70
155
  return cached;
71
- const response = await httpRequest(url, {});
156
+ const { response, finalUrl } = await fetchFollowingDocsRedirects(url, httpRequest);
72
157
  if (!response.ok) {
73
158
  throw new Error(`Failed to fetch ${url}: ${response.statusText}`);
74
159
  }
160
+ // A redirected index must still be text, not the HTML page it moved to.
161
+ if (finalUrl !== url &&
162
+ response.headers.get('content-type')?.toLowerCase().includes('text/html')) {
163
+ void response.body?.cancel();
164
+ throw new Error(`Unexpected content type for ${url}`);
165
+ }
75
166
  const content = await response.text();
76
167
  if (Buffer.byteLength(content, 'utf8') > MAX_ENTRY_BYTES) {
77
168
  throw new Error(`Response too large for ${url}`);
@@ -82,21 +173,58 @@ export async function fetchCachedText(url, httpRequest) {
82
173
  /**
83
174
  * Fetch a Mapbox documentation page, preferring the .md variant for
84
175
  * docs.mapbox.com URLs when available. Falls back to the original URL
85
- * if the .md endpoint returns a non-2xx response.
176
+ * if the .md endpoint returns a non-2xx response. Redirects are followed only
177
+ * to other allowed documentation URLs (e.g. a page that has moved); if the
178
+ * fallback ends up on a different URL, its .md variant is tried first.
86
179
  *
87
180
  * Set MAPBOX_DOCS_HOST_OVERRIDE=docs.tilestream.net to redirect all
88
181
  * docs.mapbox.com fetches to the staging environment.
89
182
  */
90
183
  export async function fetchDocContent(url, httpRequest) {
184
+ const tryMarkdown = async (mdUrl) => {
185
+ try {
186
+ const result = await fetchFollowingDocsRedirects(mdUrl, httpRequest);
187
+ if (result.response.ok) {
188
+ return await readBodyWithLimit(result.response, MAX_ENTRY_BYTES);
189
+ }
190
+ void result.response.body?.cancel();
191
+ }
192
+ catch (error) {
193
+ if (!(error instanceof RedirectError))
194
+ throw error;
195
+ }
196
+ return null;
197
+ };
91
198
  const mdUrl = toMarkdownUrl(url);
92
199
  if (mdUrl) {
93
- const mdResponse = await httpRequest(mdUrl, {});
94
- if (mdResponse.ok) {
95
- return readBodyWithLimit(mdResponse, MAX_ENTRY_BYTES);
96
- }
200
+ const markdown = await tryMarkdown(mdUrl);
201
+ if (markdown !== null)
202
+ return markdown;
97
203
  }
98
- const fetchUrl = applyHostOverride(url);
99
- const response = await httpRequest(fetchUrl, {});
204
+ // For a moved page, try the .md variant of the new location before
205
+ // requesting its HTML. `next` has already passed isDocsUrl(); the derived
206
+ // .md URL is checked again before it is requested. A single request, no
207
+ // redirects: keeps the total request count bounded by MAX_REDIRECTS.
208
+ const probed = new Set(mdUrl ? [mdUrl] : []);
209
+ const tryMovedMarkdown = async (next) => {
210
+ const movedMdUrl = toMarkdownUrl(toCanonicalDocsUrl(next));
211
+ if (!movedMdUrl || !isDocsUrl(movedMdUrl) || hasAccessToken(movedMdUrl)) {
212
+ return null;
213
+ }
214
+ if (probed.has(movedMdUrl))
215
+ return null;
216
+ probed.add(movedMdUrl);
217
+ const response = await httpRequest(movedMdUrl, {});
218
+ if (response.ok)
219
+ return readBodyWithLimit(response, MAX_ENTRY_BYTES);
220
+ void response.body?.cancel();
221
+ return null;
222
+ };
223
+ const fetchUrl = withTrailingSlash(applyHostOverride(url));
224
+ const result = await fetchFollowingDocsRedirects(fetchUrl, httpRequest, tryMovedMarkdown);
225
+ if ('content' in result)
226
+ return result.content;
227
+ const { response } = result;
100
228
  if (!response.ok) {
101
229
  throw new Error(`${response.status} ${response.statusText}`);
102
230
  }
@@ -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,43 @@
1
+ // Copyright (c) Mapbox, Inc.
2
+ // Licensed under the MIT License.
3
+ const DOCS_HOSTNAME = 'docs.mapbox.com';
4
+ // Only documentation hosts are allowed. Bare mapbox.com and api.mapbox.com are
5
+ // intentionally excluded: neither is a documentation host, and api.mapbox.com
6
+ // is an authenticated API.
7
+ function allowedHostnames() {
8
+ const hosts = new Set([DOCS_HOSTNAME]);
9
+ const override = process.env.MAPBOX_DOCS_HOST_OVERRIDE;
10
+ if (override)
11
+ hosts.add(override);
12
+ return hosts;
13
+ }
14
+ /**
15
+ * True only for plain https URLs on an allowed documentation host, with no
16
+ * explicit port and no embedded credentials.
17
+ */
18
+ export function isDocsUrl(url) {
19
+ try {
20
+ const parsed = new URL(url);
21
+ return (parsed.protocol === 'https:' &&
22
+ parsed.port === '' &&
23
+ parsed.username === '' &&
24
+ parsed.password === '' &&
25
+ allowedHostnames().has(parsed.hostname));
26
+ }
27
+ catch {
28
+ return false;
29
+ }
30
+ }
31
+ export function hasAccessToken(url) {
32
+ try {
33
+ for (const key of new URL(url).searchParams.keys()) {
34
+ if (key.toLowerCase() === 'access_token')
35
+ return true;
36
+ }
37
+ return false;
38
+ }
39
+ catch {
40
+ return false;
41
+ }
42
+ }
43
+ //# 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;AAElC,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,MAAM,UAAU,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,MAAM,UAAU,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"}
@@ -97,10 +97,27 @@ export class RetryPolicy {
97
97
  return lastError;
98
98
  }
99
99
  }
100
+ /**
101
+ * Stops fetch from following redirects. URLs are validated against the docs
102
+ * host allowlist before the request, and a redirect target would skip that
103
+ * check. With 'manual', fetch returns the 3xx response itself and the target
104
+ * is never requested. The override is applied after the caller's options so it
105
+ * cannot be turned back on per request.
106
+ */
107
+ export class NoRedirectPolicy {
108
+ id;
109
+ constructor(id) {
110
+ this.id = id ?? createRandomId('no-redirect-');
111
+ }
112
+ async handle(input, init, next) {
113
+ return next(input, { ...init, redirect: 'manual' });
114
+ }
115
+ }
100
116
  const pipeline = new HttpPipeline();
101
117
  const versionInfo = getVersionInfo();
102
118
  pipeline.usePolicy(UserAgentPolicy.fromVersionInfo(versionInfo, 'system-user-agent-policy'));
103
119
  pipeline.usePolicy(new RetryPolicy(3, 200, 2000, 'system-retry-policy'));
120
+ pipeline.usePolicy(new NoRedirectPolicy('system-no-redirect-policy'));
104
121
  export const httpRequest = pipeline.execute.bind(pipeline);
105
122
  export const systemHttpPipeline = pipeline;
106
123
  //# 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"}
@@ -100,6 +100,19 @@ export function isTracingInitialized() {
100
100
  export function getTracer() {
101
101
  return trace.getTracer('mapbox-mcp-docs-server');
102
102
  }
103
+ /**
104
+ * The connected client's `clientInfo` (name/version), as reported in its
105
+ * `initialize` request. There is exactly one client per stdio server
106
+ * process, so this is safe as module-level state; set once via
107
+ * `setClientInfo` after the initialize handshake completes (see
108
+ * `server.server.oninitialized` in index.ts) and read by every tool span
109
+ * created afterward, so traces can be filtered/grouped by which MCP client
110
+ * (Claude Desktop, Cursor, VS Code, etc.) made the call.
111
+ */
112
+ let currentClientInfo;
113
+ export function setClientInfo(info) {
114
+ currentClientInfo = info;
115
+ }
103
116
  /**
104
117
  * Create a span for tool execution and run the callback within its context.
105
118
  * Automatically marks the span success or error and ends it.
@@ -110,7 +123,13 @@ export async function withToolSpan(toolName, fn) {
110
123
  kind: SpanKind.INTERNAL,
111
124
  attributes: {
112
125
  'tool.name': toolName,
113
- 'operation.type': 'tool_execution'
126
+ 'operation.type': 'tool_execution',
127
+ ...(currentClientInfo?.name && {
128
+ 'mcp.client.name': currentClientInfo.name
129
+ }),
130
+ ...(currentClientInfo?.version && {
131
+ 'mcp.client.version': currentClientInfo.version
132
+ })
114
133
  }
115
134
  });
116
135
  return context.with(trace.setSpan(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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"}
@@ -1,6 +1,6 @@
1
1
  {
2
- "sha": "20c45c2a9f24ce2bb1df9dee894d9182dfc71f42",
3
- "tag": "v0.3.0-8-g20c45c2",
2
+ "sha": "e720268dd0a55f4c53006b8ade4d568a21e080e4",
3
+ "tag": "v0.3.1-23-ge720268",
4
4
  "branch": "HEAD",
5
- "version": "0.3.1"
5
+ "version": "0.4.0-dev.1"
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapbox/mcp-docs-server",
3
- "version": "0.3.1",
3
+ "version": "0.4.0-dev.1",
4
4
  "description": "Mapbox MCP documentation server",
5
5
  "mcpName": "io.github.mapbox/mcp-docs-server",
6
6
  "main": "./dist/commonjs/index.js",
@@ -12,6 +12,8 @@
12
12
  "scripts": {
13
13
  "build": "npm run prepare && tshy && npm run generate-version && node scripts/add-shebang.cjs",
14
14
  "changelog:prepare-release": "node scripts/prepare-changelog-release.cjs",
15
+ "check-llms-links": "node scripts/check-llms-links.cjs",
16
+ "check-llms-links:deep": "node scripts/check-llms-links.cjs --deep",
15
17
  "format": "prettier --check \"./src/**/*.{ts,tsx,js,json,md}\"",
16
18
  "format:fix": "prettier --write \"./src/**/*.{ts,tsx,js,json,md}\"",
17
19
  "generate-version": "node scripts/build-helpers.cjs generate-version",
@@ -20,6 +22,7 @@
20
22
  "lint": "eslint \"./src/**/*.{ts,tsx}\" \"./test/**/*.{ts,tsx}\" --no-error-on-unmatched-pattern",
21
23
  "lint:fix": "eslint \"./src/**/*.{ts,tsx}\" \"./test/**/*.{ts,tsx}\" --no-error-on-unmatched-pattern --fix",
22
24
  "spellcheck": "cspell \"*.md\" \"src/**/*.ts\" \"test/**/*.ts\"",
25
+ "typecheck": "tsc -p tsconfig.test.json",
23
26
  "sync-manifest": "node scripts/sync-manifest-version.cjs",
24
27
  "test": "vitest"
25
28
  },
@@ -45,7 +48,7 @@
45
48
  "documentation"
46
49
  ],
47
50
  "dependencies": {
48
- "@modelcontextprotocol/sdk": "^1.29.0",
51
+ "@modelcontextprotocol/server": "^2.4.0",
49
52
  "@opentelemetry/api": "^1.9.1",
50
53
  "@opentelemetry/auto-instrumentations-node": "^0.74.0",
51
54
  "@opentelemetry/exporter-trace-otlp-http": "^0.216.0",
@@ -58,6 +61,7 @@
58
61
  },
59
62
  "devDependencies": {
60
63
  "@eslint/js": "^10.0.1",
64
+ "@modelcontextprotocol/client": "^2.4.0",
61
65
  "@types/node": "^22.0.0",
62
66
  "@typescript-eslint/eslint-plugin": "^8.58.2",
63
67
  "@typescript-eslint/parser": "^8.58.2",
@@ -1 +0,0 @@
1
- {"version":3,"file":"versionUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/versionUtils.ts"],"names":[],"mappings":"AAOA,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,CAoB5C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"versionUtils.js","sourceRoot":"","sources":["../../../src/utils/versionUtils.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;;;AAclC,wCAoBC;AAhCD,qCAAuC;AACvC,0DAA6B;AAC7B,uCAAyC;AAUzC,SAAgB,cAAc;IAC5B,MAAM,IAAI,GAAG,iCAAiC,CAAC;IAC/C,IAAI,CAAC;QACH,6DAA6D;QAC7D,aAAa;QACb,MAAM,OAAO,GAAG,mBAAI,CAAC,OAAO,CAAC,IAAA,wBAAa,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC7D,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"}