@mapbox/mcp-docs-server 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/commonjs/index.js +22 -5
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/resources/BaseResource.d.ts +2 -4
- package/dist/commonjs/resources/BaseResource.d.ts.map +1 -1
- package/dist/commonjs/resources/BaseResource.js.map +1 -1
- package/dist/commonjs/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.d.ts +2 -3
- package/dist/commonjs/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.d.ts.map +1 -1
- package/dist/commonjs/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.js.map +1 -1
- package/dist/commonjs/resources/mapbox-documentation-resource/MapboxDocumentationResource.d.ts +2 -3
- package/dist/commonjs/resources/mapbox-documentation-resource/MapboxDocumentationResource.d.ts.map +1 -1
- package/dist/commonjs/resources/mapbox-documentation-resource/MapboxDocumentationResource.js.map +1 -1
- package/dist/commonjs/resources/mapbox-examples-resource/MapboxExamplesResource.d.ts +2 -3
- package/dist/commonjs/resources/mapbox-examples-resource/MapboxExamplesResource.d.ts.map +1 -1
- package/dist/commonjs/resources/mapbox-examples-resource/MapboxExamplesResource.js.map +1 -1
- package/dist/commonjs/resources/mapbox-guides-resource/MapboxGuidesResource.d.ts +2 -3
- package/dist/commonjs/resources/mapbox-guides-resource/MapboxGuidesResource.d.ts.map +1 -1
- package/dist/commonjs/resources/mapbox-guides-resource/MapboxGuidesResource.js.map +1 -1
- package/dist/commonjs/resources/mapbox-reference-resource/MapboxReferenceResource.d.ts +2 -3
- package/dist/commonjs/resources/mapbox-reference-resource/MapboxReferenceResource.d.ts.map +1 -1
- package/dist/commonjs/resources/mapbox-reference-resource/MapboxReferenceResource.js.map +1 -1
- package/dist/commonjs/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.d.ts +2 -3
- package/dist/commonjs/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.d.ts.map +1 -1
- package/dist/commonjs/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.js.map +1 -1
- package/dist/commonjs/tools/BaseTool.d.ts +2 -4
- package/dist/commonjs/tools/BaseTool.d.ts.map +1 -1
- package/dist/commonjs/tools/BaseTool.js +2 -4
- package/dist/commonjs/tools/BaseTool.js.map +1 -1
- package/dist/commonjs/tools/batch-get-documents-tool/BatchGetDocumentsTool.d.ts +1 -1
- package/dist/commonjs/tools/batch-get-documents-tool/BatchGetDocumentsTool.d.ts.map +1 -1
- package/dist/commonjs/tools/batch-get-documents-tool/BatchGetDocumentsTool.input.schema.js +1 -1
- package/dist/commonjs/tools/batch-get-documents-tool/BatchGetDocumentsTool.input.schema.js.map +1 -1
- package/dist/commonjs/tools/batch-get-documents-tool/BatchGetDocumentsTool.js +4 -29
- package/dist/commonjs/tools/batch-get-documents-tool/BatchGetDocumentsTool.js.map +1 -1
- package/dist/commonjs/tools/get-document-tool/GetDocumentTool.d.ts +1 -1
- package/dist/commonjs/tools/get-document-tool/GetDocumentTool.d.ts.map +1 -1
- package/dist/commonjs/tools/get-document-tool/GetDocumentTool.input.schema.js +1 -1
- package/dist/commonjs/tools/get-document-tool/GetDocumentTool.input.schema.js.map +1 -1
- package/dist/commonjs/tools/get-document-tool/GetDocumentTool.js +5 -30
- package/dist/commonjs/tools/get-document-tool/GetDocumentTool.js.map +1 -1
- package/dist/commonjs/tools/search-docs-tool/SearchDocsTool.d.ts +1 -1
- package/dist/commonjs/tools/search-docs-tool/SearchDocsTool.d.ts.map +1 -1
- package/dist/commonjs/utils/docFetcher.d.ts +3 -1
- package/dist/commonjs/utils/docFetcher.d.ts.map +1 -1
- package/dist/commonjs/utils/docFetcher.js +136 -8
- package/dist/commonjs/utils/docFetcher.js.map +1 -1
- package/dist/commonjs/utils/docUrl.d.ts +7 -0
- package/dist/commonjs/utils/docUrl.d.ts.map +1 -0
- package/dist/commonjs/utils/docUrl.js +47 -0
- package/dist/commonjs/utils/docUrl.js.map +1 -0
- package/dist/commonjs/utils/httpPipeline.d.ts +12 -0
- package/dist/commonjs/utils/httpPipeline.d.ts.map +1 -1
- package/dist/commonjs/utils/httpPipeline.js +19 -1
- package/dist/commonjs/utils/httpPipeline.js.map +1 -1
- package/dist/commonjs/utils/tracing.d.ts +4 -0
- package/dist/commonjs/utils/tracing.d.ts.map +1 -1
- package/dist/commonjs/utils/tracing.js +21 -1
- package/dist/commonjs/utils/tracing.js.map +1 -1
- package/dist/commonjs/utils/versionUtils-cjs.cjs.map +1 -0
- package/dist/commonjs/utils/versionUtils-cjs.d.cts.map +1 -0
- package/dist/commonjs/utils/versionUtils.d.ts +1 -1
- package/dist/commonjs/utils/versionUtils.js +4 -6
- package/dist/commonjs/version.json +3 -3
- package/dist/esm/index.js +21 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/resources/BaseResource.d.ts +2 -4
- package/dist/esm/resources/BaseResource.d.ts.map +1 -1
- package/dist/esm/resources/BaseResource.js.map +1 -1
- package/dist/esm/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.d.ts +2 -3
- package/dist/esm/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.d.ts.map +1 -1
- package/dist/esm/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.js.map +1 -1
- package/dist/esm/resources/mapbox-documentation-resource/MapboxDocumentationResource.d.ts +2 -3
- package/dist/esm/resources/mapbox-documentation-resource/MapboxDocumentationResource.d.ts.map +1 -1
- package/dist/esm/resources/mapbox-documentation-resource/MapboxDocumentationResource.js.map +1 -1
- package/dist/esm/resources/mapbox-examples-resource/MapboxExamplesResource.d.ts +2 -3
- package/dist/esm/resources/mapbox-examples-resource/MapboxExamplesResource.d.ts.map +1 -1
- package/dist/esm/resources/mapbox-examples-resource/MapboxExamplesResource.js.map +1 -1
- package/dist/esm/resources/mapbox-guides-resource/MapboxGuidesResource.d.ts +2 -3
- package/dist/esm/resources/mapbox-guides-resource/MapboxGuidesResource.d.ts.map +1 -1
- package/dist/esm/resources/mapbox-guides-resource/MapboxGuidesResource.js.map +1 -1
- package/dist/esm/resources/mapbox-reference-resource/MapboxReferenceResource.d.ts +2 -3
- package/dist/esm/resources/mapbox-reference-resource/MapboxReferenceResource.d.ts.map +1 -1
- package/dist/esm/resources/mapbox-reference-resource/MapboxReferenceResource.js.map +1 -1
- package/dist/esm/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.d.ts +2 -3
- package/dist/esm/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.d.ts.map +1 -1
- package/dist/esm/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.js.map +1 -1
- package/dist/esm/tools/BaseTool.d.ts +2 -4
- package/dist/esm/tools/BaseTool.d.ts.map +1 -1
- package/dist/esm/tools/BaseTool.js +2 -4
- package/dist/esm/tools/BaseTool.js.map +1 -1
- package/dist/esm/tools/batch-get-documents-tool/BatchGetDocumentsTool.d.ts +1 -1
- package/dist/esm/tools/batch-get-documents-tool/BatchGetDocumentsTool.d.ts.map +1 -1
- package/dist/esm/tools/batch-get-documents-tool/BatchGetDocumentsTool.input.schema.js +1 -1
- package/dist/esm/tools/batch-get-documents-tool/BatchGetDocumentsTool.input.schema.js.map +1 -1
- package/dist/esm/tools/batch-get-documents-tool/BatchGetDocumentsTool.js +3 -28
- package/dist/esm/tools/batch-get-documents-tool/BatchGetDocumentsTool.js.map +1 -1
- package/dist/esm/tools/get-document-tool/GetDocumentTool.d.ts +1 -1
- package/dist/esm/tools/get-document-tool/GetDocumentTool.d.ts.map +1 -1
- package/dist/esm/tools/get-document-tool/GetDocumentTool.input.schema.js +1 -1
- package/dist/esm/tools/get-document-tool/GetDocumentTool.input.schema.js.map +1 -1
- package/dist/esm/tools/get-document-tool/GetDocumentTool.js +4 -29
- package/dist/esm/tools/get-document-tool/GetDocumentTool.js.map +1 -1
- package/dist/esm/tools/search-docs-tool/SearchDocsTool.d.ts +1 -1
- package/dist/esm/tools/search-docs-tool/SearchDocsTool.d.ts.map +1 -1
- package/dist/esm/utils/docFetcher.d.ts +3 -1
- package/dist/esm/utils/docFetcher.d.ts.map +1 -1
- package/dist/esm/utils/docFetcher.js +136 -8
- package/dist/esm/utils/docFetcher.js.map +1 -1
- package/dist/esm/utils/docUrl.d.ts +7 -0
- package/dist/esm/utils/docUrl.d.ts.map +1 -0
- package/dist/esm/utils/docUrl.js +43 -0
- package/dist/esm/utils/docUrl.js.map +1 -0
- package/dist/esm/utils/httpPipeline.d.ts +12 -0
- package/dist/esm/utils/httpPipeline.d.ts.map +1 -1
- package/dist/esm/utils/httpPipeline.js +17 -0
- package/dist/esm/utils/httpPipeline.js.map +1 -1
- package/dist/esm/utils/tracing.d.ts +4 -0
- package/dist/esm/utils/tracing.d.ts.map +1 -1
- package/dist/esm/utils/tracing.js +20 -1
- package/dist/esm/utils/tracing.js.map +1 -1
- package/dist/esm/version.json +3 -3
- package/package.json +6 -2
- package/dist/commonjs/utils/versionUtils.d.ts.map +0 -1
- 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":"
|
|
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
|
|
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
|
|
99
|
-
if (
|
|
100
|
-
return
|
|
101
|
-
}
|
|
205
|
+
const markdown = await tryMarkdown(mdUrl);
|
|
206
|
+
if (markdown !== null)
|
|
207
|
+
return markdown;
|
|
102
208
|
}
|
|
103
|
-
|
|
104
|
-
|
|
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":";AAAA,6BAA6B;AAC7B,kCAAkC;;
|
|
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;
|
|
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,
|
|
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":";AAAA,6BAA6B;AAC7B,kCAAkC;;AAqDlC,8CAgEC;AAKD,0CAMC;AAED,oDAEC;AAED,8BAEC;AAMD,
|
|
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,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
|
-
|
|
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.
|
|
32
|
+
//# sourceMappingURL=versionUtils-cjs.cjs.map
|
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 {
|
|
5
|
-
import {
|
|
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({
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,
|
|
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/
|
|
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:
|
|
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,
|
|
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;
|
|
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 {
|
|
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:
|
|
20
|
+
readCallback(uri: URL, _extra: ServerContext): Promise<ReadResourceResult>;
|
|
22
21
|
}
|
|
23
22
|
//# sourceMappingURL=MapboxApiReferenceResource.d.ts.map
|