@mapbox/mcp-docs-server 0.2.1 → 0.3.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.
- package/dist/commonjs/index.js +3 -0
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.d.ts +6 -2
- package/dist/commonjs/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.d.ts.map +1 -1
- package/dist/commonjs/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.js +12 -23
- package/dist/commonjs/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.js.map +1 -1
- package/dist/commonjs/resources/mapbox-examples-resource/MapboxExamplesResource.d.ts +4 -2
- package/dist/commonjs/resources/mapbox-examples-resource/MapboxExamplesResource.d.ts.map +1 -1
- package/dist/commonjs/resources/mapbox-examples-resource/MapboxExamplesResource.js +9 -18
- package/dist/commonjs/resources/mapbox-examples-resource/MapboxExamplesResource.js.map +1 -1
- package/dist/commonjs/resources/mapbox-guides-resource/MapboxGuidesResource.d.ts +5 -2
- package/dist/commonjs/resources/mapbox-guides-resource/MapboxGuidesResource.d.ts.map +1 -1
- package/dist/commonjs/resources/mapbox-guides-resource/MapboxGuidesResource.js +10 -23
- package/dist/commonjs/resources/mapbox-guides-resource/MapboxGuidesResource.js.map +1 -1
- package/dist/commonjs/resources/mapbox-reference-resource/MapboxReferenceResource.d.ts +6 -2
- package/dist/commonjs/resources/mapbox-reference-resource/MapboxReferenceResource.d.ts.map +1 -1
- package/dist/commonjs/resources/mapbox-reference-resource/MapboxReferenceResource.js +13 -23
- package/dist/commonjs/resources/mapbox-reference-resource/MapboxReferenceResource.js.map +1 -1
- package/dist/commonjs/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.d.ts +6 -2
- package/dist/commonjs/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.d.ts.map +1 -1
- package/dist/commonjs/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.js +13 -23
- package/dist/commonjs/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.js.map +1 -1
- package/dist/commonjs/tools/BaseTool.d.ts.map +1 -1
- package/dist/commonjs/tools/BaseTool.js +18 -10
- package/dist/commonjs/tools/BaseTool.js.map +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.js +31 -2
- package/dist/commonjs/tools/batch-get-documents-tool/BatchGetDocumentsTool.js.map +1 -1
- package/dist/commonjs/tools/get-document-tool/GetDocumentTool.d.ts.map +1 -1
- package/dist/commonjs/tools/get-document-tool/GetDocumentTool.js +30 -2
- package/dist/commonjs/tools/get-document-tool/GetDocumentTool.js.map +1 -1
- package/dist/commonjs/tools/search-docs-tool/SearchDocsTool.d.ts.map +1 -1
- package/dist/commonjs/tools/search-docs-tool/SearchDocsTool.js +22 -62
- package/dist/commonjs/tools/search-docs-tool/SearchDocsTool.js.map +1 -1
- package/dist/commonjs/utils/docCache.d.ts.map +1 -1
- package/dist/commonjs/utils/docCache.js +7 -2
- package/dist/commonjs/utils/docCache.js.map +1 -1
- package/dist/commonjs/utils/docFetcher.d.ts +10 -1
- package/dist/commonjs/utils/docFetcher.d.ts.map +1 -1
- package/dist/commonjs/utils/docFetcher.js +29 -4
- package/dist/commonjs/utils/docFetcher.js.map +1 -1
- package/dist/commonjs/utils/docsSearchIndex.d.ts +25 -0
- package/dist/commonjs/utils/docsSearchIndex.d.ts.map +1 -0
- package/dist/commonjs/utils/docsSearchIndex.js +146 -0
- package/dist/commonjs/utils/docsSearchIndex.js.map +1 -0
- package/dist/commonjs/utils/index.d.ts +1 -0
- package/dist/commonjs/utils/index.d.ts.map +1 -1
- package/dist/commonjs/utils/index.js +7 -1
- package/dist/commonjs/utils/index.js.map +1 -1
- package/dist/commonjs/utils/tracing.d.ts +18 -0
- package/dist/commonjs/utils/tracing.d.ts.map +1 -0
- package/dist/commonjs/utils/tracing.js +142 -0
- package/dist/commonjs/utils/tracing.js.map +1 -0
- package/dist/commonjs/version.json +3 -3
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.d.ts +6 -2
- package/dist/esm/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.d.ts.map +1 -1
- package/dist/esm/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.js +12 -23
- package/dist/esm/resources/mapbox-api-reference-resource/MapboxApiReferenceResource.js.map +1 -1
- package/dist/esm/resources/mapbox-examples-resource/MapboxExamplesResource.d.ts +4 -2
- package/dist/esm/resources/mapbox-examples-resource/MapboxExamplesResource.d.ts.map +1 -1
- package/dist/esm/resources/mapbox-examples-resource/MapboxExamplesResource.js +9 -18
- package/dist/esm/resources/mapbox-examples-resource/MapboxExamplesResource.js.map +1 -1
- package/dist/esm/resources/mapbox-guides-resource/MapboxGuidesResource.d.ts +5 -2
- package/dist/esm/resources/mapbox-guides-resource/MapboxGuidesResource.d.ts.map +1 -1
- package/dist/esm/resources/mapbox-guides-resource/MapboxGuidesResource.js +10 -23
- package/dist/esm/resources/mapbox-guides-resource/MapboxGuidesResource.js.map +1 -1
- package/dist/esm/resources/mapbox-reference-resource/MapboxReferenceResource.d.ts +6 -2
- package/dist/esm/resources/mapbox-reference-resource/MapboxReferenceResource.d.ts.map +1 -1
- package/dist/esm/resources/mapbox-reference-resource/MapboxReferenceResource.js +13 -23
- package/dist/esm/resources/mapbox-reference-resource/MapboxReferenceResource.js.map +1 -1
- package/dist/esm/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.d.ts +6 -2
- package/dist/esm/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.d.ts.map +1 -1
- package/dist/esm/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.js +13 -23
- package/dist/esm/resources/mapbox-sdk-docs-resource/MapboxSdkDocsResource.js.map +1 -1
- package/dist/esm/tools/BaseTool.d.ts.map +1 -1
- package/dist/esm/tools/BaseTool.js +18 -10
- package/dist/esm/tools/BaseTool.js.map +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.js +31 -2
- package/dist/esm/tools/batch-get-documents-tool/BatchGetDocumentsTool.js.map +1 -1
- package/dist/esm/tools/get-document-tool/GetDocumentTool.d.ts.map +1 -1
- package/dist/esm/tools/get-document-tool/GetDocumentTool.js +30 -2
- package/dist/esm/tools/get-document-tool/GetDocumentTool.js.map +1 -1
- package/dist/esm/tools/search-docs-tool/SearchDocsTool.d.ts.map +1 -1
- package/dist/esm/tools/search-docs-tool/SearchDocsTool.js +22 -62
- package/dist/esm/tools/search-docs-tool/SearchDocsTool.js.map +1 -1
- package/dist/esm/utils/docCache.d.ts.map +1 -1
- package/dist/esm/utils/docCache.js +7 -2
- package/dist/esm/utils/docCache.js.map +1 -1
- package/dist/esm/utils/docFetcher.d.ts +10 -1
- package/dist/esm/utils/docFetcher.d.ts.map +1 -1
- package/dist/esm/utils/docFetcher.js +29 -5
- package/dist/esm/utils/docFetcher.js.map +1 -1
- package/dist/esm/utils/docsSearchIndex.d.ts +25 -0
- package/dist/esm/utils/docsSearchIndex.d.ts.map +1 -0
- package/dist/esm/utils/docsSearchIndex.js +142 -0
- package/dist/esm/utils/docsSearchIndex.js.map +1 -0
- package/dist/esm/utils/index.d.ts +1 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/tracing.d.ts +18 -0
- package/dist/esm/utils/tracing.d.ts.map +1 -0
- package/dist/esm/utils/tracing.js +135 -0
- package/dist/esm/utils/tracing.js.map +1 -0
- package/dist/esm/version.json +3 -3
- package/package.json +16 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docFetcher.js","sourceRoot":"","sources":["../../../src/utils/docFetcher.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"docFetcher.js","sourceRoot":"","sources":["../../../src/utils/docFetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { HttpRequest } from './types.js';
|
|
2
|
+
export interface DocEntry {
|
|
3
|
+
title: string;
|
|
4
|
+
url: string;
|
|
5
|
+
description: string;
|
|
6
|
+
product: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Parse a product-level llms.txt file into searchable entries.
|
|
10
|
+
* Each `- [Title](URL): description` line becomes one entry.
|
|
11
|
+
* Lines that don't match (headers, blanks, root index links) are skipped.
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseLlmsTxtEntries(content: string, product: string): DocEntry[];
|
|
14
|
+
/**
|
|
15
|
+
* Search across all indexed llms.txt files.
|
|
16
|
+
*
|
|
17
|
+
* All source files are fetched in parallel and cached via docCache.
|
|
18
|
+
* First call may take ~500ms while files are fetched; subsequent calls
|
|
19
|
+
* are instant since all content is in-memory.
|
|
20
|
+
*
|
|
21
|
+
* Failed sources are skipped gracefully so a single unavailable file
|
|
22
|
+
* doesn't break the entire search.
|
|
23
|
+
*/
|
|
24
|
+
export declare function searchDocs(query: string, limit: number, httpRequest: HttpRequest): Promise<DocEntry[]>;
|
|
25
|
+
//# sourceMappingURL=docsSearchIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docsSearchIndex.d.ts","sourceRoot":"","sources":["../../../src/utils/docsSearchIndex.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AA8DD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,QAAQ,EAAE,CAYZ;AAoBD;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAoCrB"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { fetchCachedText } from './docFetcher.js';
|
|
4
|
+
/**
|
|
5
|
+
* Curated set of product llms.txt files to include in the search index.
|
|
6
|
+
* Each file is fetched once and cached for the duration of the TTL.
|
|
7
|
+
* Files are fetched in parallel on first search then served from cache.
|
|
8
|
+
*/
|
|
9
|
+
const INDEX_SOURCES = [
|
|
10
|
+
{
|
|
11
|
+
url: 'https://docs.mapbox.com/api/llms.txt',
|
|
12
|
+
product: 'API Reference'
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
url: 'https://docs.mapbox.com/mapbox-gl-js/llms.txt',
|
|
16
|
+
product: 'Mapbox GL JS'
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
url: 'https://docs.mapbox.com/help/llms.txt',
|
|
20
|
+
product: 'Help Center'
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
url: 'https://docs.mapbox.com/style-spec/llms.txt',
|
|
24
|
+
product: 'Style Specification'
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
url: 'https://docs.mapbox.com/studio-manual/llms.txt',
|
|
28
|
+
product: 'Studio Manual'
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
url: 'https://docs.mapbox.com/mapbox-search-js/llms.txt',
|
|
32
|
+
product: 'Mapbox Search JS'
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
url: 'https://docs.mapbox.com/ios/maps/llms.txt',
|
|
36
|
+
product: 'Maps SDK for iOS'
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
url: 'https://docs.mapbox.com/android/maps/llms.txt',
|
|
40
|
+
product: 'Maps SDK for Android'
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
url: 'https://docs.mapbox.com/ios/navigation/llms.txt',
|
|
44
|
+
product: 'Navigation SDK for iOS'
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
url: 'https://docs.mapbox.com/android/navigation/llms.txt',
|
|
48
|
+
product: 'Navigation SDK for Android'
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
url: 'https://docs.mapbox.com/mapbox-tiling-service/llms.txt',
|
|
52
|
+
product: 'Mapbox Tiling Service'
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
url: 'https://docs.mapbox.com/data/tilesets/llms.txt',
|
|
56
|
+
product: 'Tilesets'
|
|
57
|
+
}
|
|
58
|
+
];
|
|
59
|
+
// Matches: - [Title](URL): optional description
|
|
60
|
+
// or: - [Title](URL)
|
|
61
|
+
const ENTRY_RE = /^-\s+\[([^\]]+)\]\(([^)]+)\)(?::\s*(.+))?$/;
|
|
62
|
+
/**
|
|
63
|
+
* Parse a product-level llms.txt file into searchable entries.
|
|
64
|
+
* Each `- [Title](URL): description` line becomes one entry.
|
|
65
|
+
* Lines that don't match (headers, blanks, root index links) are skipped.
|
|
66
|
+
*/
|
|
67
|
+
export function parseLlmsTxtEntries(content, product) {
|
|
68
|
+
const entries = [];
|
|
69
|
+
for (const rawLine of content.split('\n')) {
|
|
70
|
+
const line = rawLine.trim();
|
|
71
|
+
const match = ENTRY_RE.exec(line);
|
|
72
|
+
if (!match)
|
|
73
|
+
continue;
|
|
74
|
+
const [, title, url, description = ''] = match;
|
|
75
|
+
// Skip links to other llms.txt files (those are index links, not doc pages)
|
|
76
|
+
if (url.endsWith('/llms.txt') || url.endsWith('/llms-full.txt'))
|
|
77
|
+
continue;
|
|
78
|
+
entries.push({ title, url, description, product });
|
|
79
|
+
}
|
|
80
|
+
return entries;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Score an entry against the query words.
|
|
84
|
+
* Title matches are weighted 3x, description and URL path matches 1x each.
|
|
85
|
+
*/
|
|
86
|
+
function scoreEntry(entry, queryWords) {
|
|
87
|
+
const titleLower = entry.title.toLowerCase();
|
|
88
|
+
const descLower = entry.description.toLowerCase();
|
|
89
|
+
const urlLower = entry.url.toLowerCase();
|
|
90
|
+
let score = 0;
|
|
91
|
+
for (const word of queryWords) {
|
|
92
|
+
if (titleLower.includes(word))
|
|
93
|
+
score += 3;
|
|
94
|
+
if (descLower.includes(word))
|
|
95
|
+
score += 1;
|
|
96
|
+
if (urlLower.includes(word))
|
|
97
|
+
score += 1;
|
|
98
|
+
}
|
|
99
|
+
return score;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Search across all indexed llms.txt files.
|
|
103
|
+
*
|
|
104
|
+
* All source files are fetched in parallel and cached via docCache.
|
|
105
|
+
* First call may take ~500ms while files are fetched; subsequent calls
|
|
106
|
+
* are instant since all content is in-memory.
|
|
107
|
+
*
|
|
108
|
+
* Failed sources are skipped gracefully so a single unavailable file
|
|
109
|
+
* doesn't break the entire search.
|
|
110
|
+
*/
|
|
111
|
+
export async function searchDocs(query, limit, httpRequest) {
|
|
112
|
+
const allEntries = (await Promise.all(INDEX_SOURCES.map(async ({ url, product }) => {
|
|
113
|
+
try {
|
|
114
|
+
const content = await fetchCachedText(url, httpRequest);
|
|
115
|
+
return parseLlmsTxtEntries(content, product);
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return [];
|
|
119
|
+
}
|
|
120
|
+
}))).flat();
|
|
121
|
+
const queryWords = query
|
|
122
|
+
.toLowerCase()
|
|
123
|
+
.split(/\s+/)
|
|
124
|
+
.filter((w) => w.length > 1); // skip single-char words
|
|
125
|
+
const scored = allEntries
|
|
126
|
+
.map((entry) => ({ entry, score: scoreEntry(entry, queryWords) }))
|
|
127
|
+
.filter(({ score }) => score > 0)
|
|
128
|
+
.sort((a, b) => b.score - a.score);
|
|
129
|
+
// Deduplicate by URL (same page can appear across multiple sources)
|
|
130
|
+
const seen = new Set();
|
|
131
|
+
const results = [];
|
|
132
|
+
for (const { entry } of scored) {
|
|
133
|
+
if (!seen.has(entry.url)) {
|
|
134
|
+
seen.add(entry.url);
|
|
135
|
+
results.push(entry);
|
|
136
|
+
if (results.length >= limit)
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return results;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=docsSearchIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docsSearchIndex.js","sourceRoot":"","sources":["../../../src/utils/docsSearchIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { systemHttpPipeline, httpRequest, UserAgentPolicy } from './httpPipeline.js';
|
|
2
2
|
export { getVersionInfo } from './versionUtils.js';
|
|
3
3
|
export type { VersionInfo } from './versionUtils.js';
|
|
4
|
+
export { initializeTracing, shutdownTracing, isTracingInitialized, getTracer, withToolSpan } from './tracing.js';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,YAAY,EACb,MAAM,cAAc,CAAC"}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -2,4 +2,5 @@
|
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
export { systemHttpPipeline, httpRequest, UserAgentPolicy } from './httpPipeline.js';
|
|
4
4
|
export { getVersionInfo } from './versionUtils.js';
|
|
5
|
+
export { initializeTracing, shutdownTracing, isTracingInitialized, getTracer, withToolSpan } from './tracing.js';
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,YAAY,EACb,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type Span } from '@opentelemetry/api';
|
|
2
|
+
/**
|
|
3
|
+
* Initialize OpenTelemetry tracing. Call once at application startup.
|
|
4
|
+
* No-ops in test environments or when OTEL_TRACING_ENABLED=false.
|
|
5
|
+
*/
|
|
6
|
+
export declare function initializeTracing(): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Shutdown tracing gracefully. Call on process exit.
|
|
9
|
+
*/
|
|
10
|
+
export declare function shutdownTracing(): Promise<void>;
|
|
11
|
+
export declare function isTracingInitialized(): boolean;
|
|
12
|
+
export declare function getTracer(): import("@opentelemetry/api").Tracer;
|
|
13
|
+
/**
|
|
14
|
+
* Create a span for tool execution and run the callback within its context.
|
|
15
|
+
* Automatically marks the span success or error and ends it.
|
|
16
|
+
*/
|
|
17
|
+
export declare function withToolSpan<T>(toolName: string, fn: (span: Span) => Promise<T>): Promise<T>;
|
|
18
|
+
//# sourceMappingURL=tracing.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { NodeSDK } from '@opentelemetry/sdk-node';
|
|
4
|
+
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
|
|
5
|
+
import { resourceFromAttributes } from '@opentelemetry/resources';
|
|
6
|
+
import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';
|
|
7
|
+
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
|
|
8
|
+
import { trace, context, SpanStatusCode, SpanKind, diag, DiagLogLevel } from '@opentelemetry/api';
|
|
9
|
+
import { ATTR_SERVICE_INSTANCE_ID } from '@opentelemetry/semantic-conventions/incubating';
|
|
10
|
+
import { getVersionInfo } from './versionUtils.js';
|
|
11
|
+
// Suppress OpenTelemetry diagnostic logging IMMEDIATELY to avoid polluting stdio.
|
|
12
|
+
// This must happen at module load time, before any OTEL operations.
|
|
13
|
+
// Use OTEL_LOG_LEVEL env var to override if needed for debugging.
|
|
14
|
+
const configureOtelDiagnostics = () => {
|
|
15
|
+
const logLevel = process.env.OTEL_LOG_LEVEL
|
|
16
|
+
? DiagLogLevel[process.env.OTEL_LOG_LEVEL.toUpperCase()]
|
|
17
|
+
: DiagLogLevel.NONE;
|
|
18
|
+
diag.setLogger({
|
|
19
|
+
verbose: () => { },
|
|
20
|
+
debug: () => { },
|
|
21
|
+
info: () => { },
|
|
22
|
+
warn: () => { },
|
|
23
|
+
error: () => { }
|
|
24
|
+
}, logLevel);
|
|
25
|
+
};
|
|
26
|
+
configureOtelDiagnostics();
|
|
27
|
+
let sdk = null;
|
|
28
|
+
let isTracingEnabled = false;
|
|
29
|
+
/**
|
|
30
|
+
* Initialize OpenTelemetry tracing. Call once at application startup.
|
|
31
|
+
* No-ops in test environments or when OTEL_TRACING_ENABLED=false.
|
|
32
|
+
*/
|
|
33
|
+
export async function initializeTracing() {
|
|
34
|
+
if (sdk || process.env.NODE_ENV === 'test' || process.env.VITEST) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (process.env.OTEL_TRACING_ENABLED === 'false') {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const versionInfo = getVersionInfo();
|
|
41
|
+
try {
|
|
42
|
+
const resource = resourceFromAttributes({
|
|
43
|
+
[ATTR_SERVICE_NAME]: process.env.OTEL_SERVICE_NAME || versionInfo.name,
|
|
44
|
+
[ATTR_SERVICE_VERSION]: versionInfo.version,
|
|
45
|
+
[ATTR_SERVICE_INSTANCE_ID]: process.env.HOSTNAME || 'unknown',
|
|
46
|
+
'service.git.sha': versionInfo.sha,
|
|
47
|
+
'service.git.branch': versionInfo.branch,
|
|
48
|
+
'service.git.tag': versionInfo.tag
|
|
49
|
+
});
|
|
50
|
+
const exporters = [];
|
|
51
|
+
if (process.env.OTEL_EXPORTER_CONSOLE_ENABLED === 'true') {
|
|
52
|
+
const { ConsoleSpanExporter } = await import('@opentelemetry/sdk-trace-base');
|
|
53
|
+
exporters.push(new ConsoleSpanExporter());
|
|
54
|
+
}
|
|
55
|
+
const otlpEndpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT;
|
|
56
|
+
if (otlpEndpoint) {
|
|
57
|
+
exporters.push(new OTLPTraceExporter({
|
|
58
|
+
url: `${otlpEndpoint}/v1/traces`,
|
|
59
|
+
headers: process.env.OTEL_EXPORTER_OTLP_HEADERS
|
|
60
|
+
? JSON.parse(process.env.OTEL_EXPORTER_OTLP_HEADERS)
|
|
61
|
+
: {}
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
if (exporters.length === 0) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
sdk = new NodeSDK({
|
|
68
|
+
resource,
|
|
69
|
+
traceExporter: exporters[0],
|
|
70
|
+
instrumentations: [
|
|
71
|
+
getNodeAutoInstrumentations({
|
|
72
|
+
'@opentelemetry/instrumentation-fs': { enabled: false },
|
|
73
|
+
'@opentelemetry/instrumentation-dns': { enabled: false },
|
|
74
|
+
'@opentelemetry/instrumentation-http': { enabled: true },
|
|
75
|
+
'@opentelemetry/instrumentation-undici': { enabled: true }
|
|
76
|
+
})
|
|
77
|
+
]
|
|
78
|
+
});
|
|
79
|
+
sdk.start();
|
|
80
|
+
isTracingEnabled = true;
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// Silently handle initialization errors to avoid breaking MCP stdio
|
|
84
|
+
isTracingEnabled = false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Shutdown tracing gracefully. Call on process exit.
|
|
89
|
+
*/
|
|
90
|
+
export async function shutdownTracing() {
|
|
91
|
+
if (sdk) {
|
|
92
|
+
await sdk.shutdown();
|
|
93
|
+
sdk = null;
|
|
94
|
+
isTracingEnabled = false;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
export function isTracingInitialized() {
|
|
98
|
+
return isTracingEnabled;
|
|
99
|
+
}
|
|
100
|
+
export function getTracer() {
|
|
101
|
+
return trace.getTracer('mapbox-mcp-docs-server');
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Create a span for tool execution and run the callback within its context.
|
|
105
|
+
* Automatically marks the span success or error and ends it.
|
|
106
|
+
*/
|
|
107
|
+
export async function withToolSpan(toolName, fn) {
|
|
108
|
+
const tracer = getTracer();
|
|
109
|
+
const span = tracer.startSpan(`tool.${toolName}`, {
|
|
110
|
+
kind: SpanKind.INTERNAL,
|
|
111
|
+
attributes: {
|
|
112
|
+
'tool.name': toolName,
|
|
113
|
+
'operation.type': 'tool_execution'
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
return context.with(trace.setSpan(context.active(), span), async () => {
|
|
117
|
+
try {
|
|
118
|
+
const result = await fn(span);
|
|
119
|
+
span.setStatus({ code: SpanStatusCode.OK });
|
|
120
|
+
return result;
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
124
|
+
if (error instanceof Error) {
|
|
125
|
+
span.recordException(error);
|
|
126
|
+
}
|
|
127
|
+
span.setStatus({ code: SpanStatusCode.ERROR, message });
|
|
128
|
+
throw error;
|
|
129
|
+
}
|
|
130
|
+
finally {
|
|
131
|
+
span.end();
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=tracing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/utils/tracing.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/version.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mapbox/mcp-docs-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Mapbox MCP documentation server",
|
|
5
5
|
"mcpName": "io.github.mapbox/mcp-docs-server",
|
|
6
6
|
"main": "./dist/commonjs/index.js",
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
"inspect:dev": "npx @modelcontextprotocol/inspector npx -y tsx src/index.ts",
|
|
20
20
|
"lint": "eslint \"./src/**/*.{ts,tsx}\" \"./test/**/*.{ts,tsx}\" --no-error-on-unmatched-pattern",
|
|
21
21
|
"lint:fix": "eslint \"./src/**/*.{ts,tsx}\" \"./test/**/*.{ts,tsx}\" --no-error-on-unmatched-pattern --fix",
|
|
22
|
-
"prepare": "node -e \"if(!process.env.CI&&process.env.HUSKY!=='0'){require('child_process').execSync('husky && node .husky/setup-hooks.js',{stdio:'inherit'})}\"",
|
|
23
22
|
"spellcheck": "cspell \"*.md\" \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
24
23
|
"sync-manifest": "node scripts/sync-manifest-version.cjs",
|
|
25
24
|
"test": "vitest"
|
|
@@ -47,13 +46,21 @@
|
|
|
47
46
|
],
|
|
48
47
|
"dependencies": {
|
|
49
48
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
49
|
+
"@opentelemetry/api": "^1.9.1",
|
|
50
|
+
"@opentelemetry/auto-instrumentations-node": "^0.74.0",
|
|
51
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.216.0",
|
|
52
|
+
"@opentelemetry/instrumentation": "^0.216.0",
|
|
53
|
+
"@opentelemetry/resources": "^2.7.1",
|
|
54
|
+
"@opentelemetry/sdk-node": "^0.216.0",
|
|
55
|
+
"@opentelemetry/sdk-trace-base": "^2.7.1",
|
|
56
|
+
"@opentelemetry/semantic-conventions": "^1.40.0",
|
|
50
57
|
"zod": "^4.3.6"
|
|
51
58
|
},
|
|
52
59
|
"devDependencies": {
|
|
53
60
|
"@eslint/js": "^10.0.1",
|
|
54
|
-
"@types/node": "^
|
|
55
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
56
|
-
"@typescript-eslint/parser": "^8.
|
|
61
|
+
"@types/node": "^22.0.0",
|
|
62
|
+
"@typescript-eslint/eslint-plugin": "^8.58.2",
|
|
63
|
+
"@typescript-eslint/parser": "^8.58.2",
|
|
57
64
|
"@vitest/coverage-istanbul": "^4.0.18",
|
|
58
65
|
"cspell": "^9.7.0",
|
|
59
66
|
"eslint": "^10.0.2",
|
|
@@ -65,10 +72,10 @@
|
|
|
65
72
|
"husky": "^9.0.0",
|
|
66
73
|
"lint-staged": "^16.3.2",
|
|
67
74
|
"prettier": "^3.0.0",
|
|
68
|
-
"tshy": "^
|
|
69
|
-
"typescript": "^
|
|
70
|
-
"typescript-eslint": "^8.
|
|
71
|
-
"vitest": "^4.
|
|
75
|
+
"tshy": "^4.1.1",
|
|
76
|
+
"typescript": "^6.0.2",
|
|
77
|
+
"typescript-eslint": "^8.58.2",
|
|
78
|
+
"vitest": "^4.1.4"
|
|
72
79
|
},
|
|
73
80
|
"prettier": {
|
|
74
81
|
"singleQuote": true,
|