@react-native-nitro-device-info/mcp-server 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +220 -0
  2. package/dist/cli/init.d.ts +12 -0
  3. package/dist/cli/init.d.ts.map +1 -0
  4. package/dist/cli/init.js +153 -0
  5. package/dist/cli/init.js.map +1 -0
  6. package/dist/index.d.ts +14 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +375 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/indexer/api-parser.d.ts +23 -0
  11. package/dist/indexer/api-parser.d.ts.map +1 -0
  12. package/dist/indexer/api-parser.js +404 -0
  13. package/dist/indexer/api-parser.js.map +1 -0
  14. package/dist/indexer/doc-parser.d.ts +38 -0
  15. package/dist/indexer/doc-parser.d.ts.map +1 -0
  16. package/dist/indexer/doc-parser.js +359 -0
  17. package/dist/indexer/doc-parser.js.map +1 -0
  18. package/dist/indexer/index.d.ts +54 -0
  19. package/dist/indexer/index.d.ts.map +1 -0
  20. package/dist/indexer/index.js +151 -0
  21. package/dist/indexer/index.js.map +1 -0
  22. package/dist/indexer/search.d.ts +36 -0
  23. package/dist/indexer/search.d.ts.map +1 -0
  24. package/dist/indexer/search.js +511 -0
  25. package/dist/indexer/search.js.map +1 -0
  26. package/dist/tools/get-api.d.ts +26 -0
  27. package/dist/tools/get-api.d.ts.map +1 -0
  28. package/dist/tools/get-api.js +229 -0
  29. package/dist/tools/get-api.js.map +1 -0
  30. package/dist/tools/list-apis.d.ts +32 -0
  31. package/dist/tools/list-apis.d.ts.map +1 -0
  32. package/dist/tools/list-apis.js +210 -0
  33. package/dist/tools/list-apis.js.map +1 -0
  34. package/dist/tools/search-docs.d.ts +32 -0
  35. package/dist/tools/search-docs.d.ts.map +1 -0
  36. package/dist/tools/search-docs.js +148 -0
  37. package/dist/tools/search-docs.js.map +1 -0
  38. package/dist/types/index.d.ts +166 -0
  39. package/dist/types/index.d.ts.map +1 -0
  40. package/dist/types/index.js +9 -0
  41. package/dist/types/index.js.map +1 -0
  42. package/package.json +59 -0
@@ -0,0 +1,511 @@
1
+ "use strict";
2
+ /**
3
+ * BM25 Search Implementation
4
+ *
5
+ * Implements the BM25 (Best Matching 25) ranking function for
6
+ * document retrieval with term frequency and document length normalization.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.tokenize = tokenize;
10
+ exports.stem = stem;
11
+ exports.processText = processText;
12
+ exports.search = search;
13
+ exports.buildSearchIndex = buildSearchIndex;
14
+ exports.levenshteinDistance = levenshteinDistance;
15
+ exports.findSimilarApis = findSimilarApis;
16
+ // BM25 parameters (tuned for documentation search)
17
+ const K1 = 1.2; // Term frequency saturation
18
+ const B = 0.75; // Document length normalization
19
+ // Stopwords to filter from queries
20
+ const STOPWORDS = new Set([
21
+ 'the',
22
+ 'a',
23
+ 'an',
24
+ 'is',
25
+ 'are',
26
+ 'was',
27
+ 'were',
28
+ 'be',
29
+ 'been',
30
+ 'being',
31
+ 'have',
32
+ 'has',
33
+ 'had',
34
+ 'do',
35
+ 'does',
36
+ 'did',
37
+ 'will',
38
+ 'would',
39
+ 'could',
40
+ 'should',
41
+ 'may',
42
+ 'might',
43
+ 'must',
44
+ 'shall',
45
+ 'can',
46
+ 'need',
47
+ 'dare',
48
+ 'ought',
49
+ 'used',
50
+ 'to',
51
+ 'of',
52
+ 'in',
53
+ 'for',
54
+ 'on',
55
+ 'with',
56
+ 'at',
57
+ 'by',
58
+ 'from',
59
+ 'as',
60
+ 'into',
61
+ 'through',
62
+ 'during',
63
+ 'before',
64
+ 'after',
65
+ 'above',
66
+ 'below',
67
+ 'between',
68
+ 'under',
69
+ 'again',
70
+ 'further',
71
+ 'then',
72
+ 'once',
73
+ 'here',
74
+ 'there',
75
+ 'when',
76
+ 'where',
77
+ 'why',
78
+ 'how',
79
+ 'all',
80
+ 'each',
81
+ 'few',
82
+ 'more',
83
+ 'most',
84
+ 'other',
85
+ 'some',
86
+ 'such',
87
+ 'no',
88
+ 'nor',
89
+ 'not',
90
+ 'only',
91
+ 'own',
92
+ 'same',
93
+ 'so',
94
+ 'than',
95
+ 'too',
96
+ 'very',
97
+ 'just',
98
+ 'and',
99
+ 'but',
100
+ 'if',
101
+ 'or',
102
+ 'because',
103
+ 'until',
104
+ 'while',
105
+ 'although',
106
+ 'this',
107
+ 'that',
108
+ 'these',
109
+ 'those',
110
+ 'am',
111
+ 'it',
112
+ 'its',
113
+ 'i',
114
+ 'me',
115
+ 'my',
116
+ 'we',
117
+ 'our',
118
+ 'you',
119
+ 'your',
120
+ 'he',
121
+ 'him',
122
+ 'his',
123
+ 'she',
124
+ 'her',
125
+ 'they',
126
+ 'them',
127
+ 'their',
128
+ 'what',
129
+ 'which',
130
+ 'who',
131
+ 'whom',
132
+ 'get',
133
+ 'getting',
134
+ ]);
135
+ /**
136
+ * Tokenize text into normalized terms
137
+ */
138
+ function tokenize(text) {
139
+ return text
140
+ .toLowerCase()
141
+ .replace(/[^a-z0-9\s]/g, ' ')
142
+ .split(/\s+/)
143
+ .filter((term) => term.length > 1 && !STOPWORDS.has(term));
144
+ }
145
+ /**
146
+ * Apply simple stemming (suffix stripping)
147
+ */
148
+ function stem(word) {
149
+ // Simple suffix stripping for common English suffixes
150
+ if (word.endsWith('ing') && word.length > 5) {
151
+ return word.slice(0, -3);
152
+ }
153
+ if (word.endsWith('ed') && word.length > 4) {
154
+ return word.slice(0, -2);
155
+ }
156
+ if (word.endsWith('s') && !word.endsWith('ss') && word.length > 3) {
157
+ return word.slice(0, -1);
158
+ }
159
+ if (word.endsWith('ly') && word.length > 4) {
160
+ return word.slice(0, -2);
161
+ }
162
+ if (word.endsWith('ies') && word.length > 4) {
163
+ return word.slice(0, -3) + 'y';
164
+ }
165
+ return word;
166
+ }
167
+ /**
168
+ * Tokenize and stem text
169
+ */
170
+ function processText(text) {
171
+ return tokenize(text).map(stem);
172
+ }
173
+ /**
174
+ * Get document ID for an item
175
+ */
176
+ function getDocumentId(item, type) {
177
+ if (type === 'api') {
178
+ return `api:${item.name}`;
179
+ }
180
+ return `doc:${item.id}`;
181
+ }
182
+ /**
183
+ * Get searchable text from an API definition
184
+ */
185
+ function getApiSearchText(api) {
186
+ return [
187
+ api.name,
188
+ api.description,
189
+ api.signature,
190
+ api.returnType,
191
+ ...api.parameters.map((p) => `${p.name} ${p.type} ${p.description}`),
192
+ ...api.examples,
193
+ api.category,
194
+ ].join(' ');
195
+ }
196
+ /**
197
+ * Get searchable text from a documentation chunk
198
+ */
199
+ function getChunkSearchText(chunk) {
200
+ return [chunk.title, chunk.content, ...chunk.mentionedApis].join(' ');
201
+ }
202
+ /**
203
+ * Calculate IDF (Inverse Document Frequency)
204
+ */
205
+ function calculateIdf(documentFrequency, totalDocuments) {
206
+ return Math.log((totalDocuments - documentFrequency + 0.5) / (documentFrequency + 0.5) + 1);
207
+ }
208
+ /**
209
+ * Calculate BM25 score for a document
210
+ */
211
+ function calculateBm25Score(termFrequencies, queryTerms, documentLength, avgDocumentLength, termDocumentFrequencies, totalDocuments) {
212
+ let score = 0;
213
+ for (const term of queryTerms) {
214
+ const tf = termFrequencies.get(term) || 0;
215
+ const df = termDocumentFrequencies.get(term) || 0;
216
+ if (tf === 0)
217
+ continue;
218
+ const idf = calculateIdf(df, totalDocuments);
219
+ const numerator = tf * (K1 + 1);
220
+ const denominator = tf + K1 * (1 - B + B * (documentLength / avgDocumentLength));
221
+ score += idf * (numerator / denominator);
222
+ }
223
+ return score;
224
+ }
225
+ /**
226
+ * Search the index with BM25 ranking
227
+ */
228
+ function search(index, query, limit = 5, filters = {}) {
229
+ const queryTerms = processText(query);
230
+ if (queryTerms.length === 0) {
231
+ return [];
232
+ }
233
+ const results = [];
234
+ // Search APIs
235
+ if (filters.type === 'all' || filters.type === 'api' || !filters.type) {
236
+ for (const [, api] of index.apis) {
237
+ // Apply filters
238
+ if (filters.category && filters.category !== 'all') {
239
+ if (api.category !== filters.category)
240
+ continue;
241
+ }
242
+ if (filters.kind && filters.kind !== 'all') {
243
+ if (api.kind !== filters.kind)
244
+ continue;
245
+ }
246
+ if (filters.platform && filters.platform !== 'all') {
247
+ const platformType = api.platform.type;
248
+ if (filters.platform === 'ios') {
249
+ if (platformType !== 'ios' && platformType !== 'ios-only' && platformType !== 'both') {
250
+ continue;
251
+ }
252
+ }
253
+ else if (filters.platform === 'android') {
254
+ if (platformType !== 'android' && platformType !== 'android-only' && platformType !== 'both') {
255
+ continue;
256
+ }
257
+ }
258
+ else if (filters.platform === 'both') {
259
+ if (platformType !== 'both')
260
+ continue;
261
+ }
262
+ }
263
+ const docId = getDocumentId(api, 'api');
264
+ const searchText = getApiSearchText(api);
265
+ const terms = processText(searchText);
266
+ // Calculate term frequencies for this document
267
+ const termFreqs = new Map();
268
+ for (const term of terms) {
269
+ termFreqs.set(term, (termFreqs.get(term) || 0) + 1);
270
+ }
271
+ const score = calculateBm25Score(termFreqs, queryTerms, index.documentLengths.get(docId) || terms.length, index.averageDocumentLength, index.termDocumentFrequencies, index.documentCount);
272
+ // Boost exact name matches
273
+ const nameLower = api.name.toLowerCase();
274
+ const queryLower = query.toLowerCase();
275
+ let boostedScore = score;
276
+ if (nameLower === queryLower) {
277
+ boostedScore *= 3;
278
+ }
279
+ else if (nameLower.includes(queryLower) || queryLower.includes(nameLower)) {
280
+ boostedScore *= 1.5;
281
+ }
282
+ if (boostedScore > 0) {
283
+ results.push({
284
+ item: api,
285
+ score: boostedScore,
286
+ type: 'api',
287
+ highlights: generateHighlights(api, queryTerms),
288
+ });
289
+ }
290
+ }
291
+ }
292
+ // Search documentation chunks
293
+ if (filters.type === 'all' || filters.type === 'guide' || !filters.type) {
294
+ for (const chunk of index.chunks) {
295
+ // Apply platform filter for documentation
296
+ if (filters.platform && filters.platform !== 'all') {
297
+ if (chunk.platforms.length > 0) {
298
+ if (filters.platform === 'ios' && !chunk.platforms.includes('ios')) {
299
+ continue;
300
+ }
301
+ if (filters.platform === 'android' && !chunk.platforms.includes('android')) {
302
+ continue;
303
+ }
304
+ if (filters.platform === 'both') {
305
+ if (!chunk.platforms.includes('ios') || !chunk.platforms.includes('android')) {
306
+ continue;
307
+ }
308
+ }
309
+ }
310
+ }
311
+ const docId = getDocumentId(chunk, 'documentation');
312
+ const searchText = getChunkSearchText(chunk);
313
+ const terms = processText(searchText);
314
+ const termFreqs = new Map();
315
+ for (const term of terms) {
316
+ termFreqs.set(term, (termFreqs.get(term) || 0) + 1);
317
+ }
318
+ const score = calculateBm25Score(termFreqs, queryTerms, index.documentLengths.get(docId) || terms.length, index.averageDocumentLength, index.termDocumentFrequencies, index.documentCount);
319
+ // Boost platform-specific content when query mentions platform
320
+ let boostedScore = score;
321
+ if (queryLower(query, 'ios') && chunk.platforms.includes('ios')) {
322
+ boostedScore *= 1.3;
323
+ }
324
+ if (queryLower(query, 'android') && chunk.platforms.includes('android')) {
325
+ boostedScore *= 1.3;
326
+ }
327
+ if (boostedScore > 0) {
328
+ results.push({
329
+ item: chunk,
330
+ score: boostedScore,
331
+ type: 'documentation',
332
+ highlights: generateChunkHighlights(chunk, queryTerms),
333
+ });
334
+ }
335
+ }
336
+ }
337
+ // Sort by score descending and limit
338
+ results.sort((a, b) => b.score - a.score);
339
+ // Normalize scores to 0-100 range
340
+ const maxScore = results.length > 0 ? results[0].score : 1;
341
+ for (const result of results) {
342
+ result.score = Math.round((result.score / maxScore) * 100);
343
+ }
344
+ return results.slice(0, limit);
345
+ }
346
+ /**
347
+ * Check if query mentions a term (case-insensitive)
348
+ */
349
+ function queryLower(query, term) {
350
+ return query.toLowerCase().includes(term.toLowerCase());
351
+ }
352
+ /**
353
+ * Generate highlights for API search results
354
+ */
355
+ function generateHighlights(api, queryTerms) {
356
+ const highlights = [];
357
+ // Check name
358
+ if (queryTerms.some((term) => api.name.toLowerCase().includes(term))) {
359
+ highlights.push({ field: 'name', excerpt: api.name });
360
+ }
361
+ // Check description
362
+ const descTerms = processText(api.description);
363
+ if (queryTerms.some((term) => descTerms.includes(term))) {
364
+ highlights.push({
365
+ field: 'description',
366
+ excerpt: api.description.length > 150
367
+ ? api.description.slice(0, 150) + '...'
368
+ : api.description,
369
+ });
370
+ }
371
+ return highlights;
372
+ }
373
+ /**
374
+ * Generate highlights for documentation chunk search results
375
+ */
376
+ function generateChunkHighlights(chunk, queryTerms) {
377
+ const highlights = [];
378
+ // Check title
379
+ if (queryTerms.some((term) => processText(chunk.title).includes(term))) {
380
+ highlights.push({ field: 'title', excerpt: chunk.title });
381
+ }
382
+ // Check content - find matching section
383
+ const sentences = chunk.content.split(/[.!?]+/);
384
+ for (const sentence of sentences) {
385
+ const sentenceTerms = processText(sentence);
386
+ if (queryTerms.some((term) => sentenceTerms.includes(term))) {
387
+ highlights.push({
388
+ field: 'content',
389
+ excerpt: sentence.trim().slice(0, 200),
390
+ });
391
+ break;
392
+ }
393
+ }
394
+ return highlights;
395
+ }
396
+ /**
397
+ * Build search index from APIs and documentation chunks
398
+ */
399
+ function buildSearchIndex(apis, chunks) {
400
+ const index = {
401
+ apis: new Map(),
402
+ chunks: [],
403
+ invertedIndex: new Map(),
404
+ documentLengths: new Map(),
405
+ averageDocumentLength: 0,
406
+ documentCount: 0,
407
+ termDocumentFrequencies: new Map(),
408
+ };
409
+ let totalLength = 0;
410
+ // Index APIs
411
+ for (const api of apis) {
412
+ const docId = `api:${api.name}`;
413
+ index.apis.set(api.name, api);
414
+ const searchText = getApiSearchText(api);
415
+ const terms = processText(searchText);
416
+ index.documentLengths.set(docId, terms.length);
417
+ totalLength += terms.length;
418
+ index.documentCount++;
419
+ // Build inverted index
420
+ const uniqueTerms = new Set(terms);
421
+ for (const term of uniqueTerms) {
422
+ if (!index.invertedIndex.has(term)) {
423
+ index.invertedIndex.set(term, new Set());
424
+ }
425
+ index.invertedIndex.get(term).add(docId);
426
+ // Update document frequency
427
+ index.termDocumentFrequencies.set(term, (index.termDocumentFrequencies.get(term) || 0) + 1);
428
+ }
429
+ }
430
+ // Index documentation chunks
431
+ for (const chunk of chunks) {
432
+ const docId = `doc:${chunk.id}`;
433
+ index.chunks.push(chunk);
434
+ const searchText = getChunkSearchText(chunk);
435
+ const terms = processText(searchText);
436
+ index.documentLengths.set(docId, terms.length);
437
+ totalLength += terms.length;
438
+ index.documentCount++;
439
+ // Build inverted index
440
+ const uniqueTerms = new Set(terms);
441
+ for (const term of uniqueTerms) {
442
+ if (!index.invertedIndex.has(term)) {
443
+ index.invertedIndex.set(term, new Set());
444
+ }
445
+ index.invertedIndex.get(term).add(docId);
446
+ index.termDocumentFrequencies.set(term, (index.termDocumentFrequencies.get(term) || 0) + 1);
447
+ }
448
+ }
449
+ index.averageDocumentLength =
450
+ index.documentCount > 0 ? totalLength / index.documentCount : 0;
451
+ return index;
452
+ }
453
+ /**
454
+ * Calculate Levenshtein distance between two strings
455
+ */
456
+ function levenshteinDistance(a, b) {
457
+ const matrix = [];
458
+ for (let i = 0; i <= b.length; i++) {
459
+ matrix[i] = [i];
460
+ }
461
+ for (let j = 0; j <= a.length; j++) {
462
+ matrix[0][j] = j;
463
+ }
464
+ for (let i = 1; i <= b.length; i++) {
465
+ for (let j = 1; j <= a.length; j++) {
466
+ if (b.charAt(i - 1) === a.charAt(j - 1)) {
467
+ matrix[i][j] = matrix[i - 1][j - 1];
468
+ }
469
+ else {
470
+ matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
471
+ matrix[i][j - 1] + 1, // insertion
472
+ matrix[i - 1][j] + 1 // deletion
473
+ );
474
+ }
475
+ }
476
+ }
477
+ return matrix[b.length][a.length];
478
+ }
479
+ /**
480
+ * Find similar API names using fuzzy matching
481
+ */
482
+ function findSimilarApis(query, apis, maxDistance = 3, limit = 3) {
483
+ const queryLower = query.toLowerCase();
484
+ const candidates = [];
485
+ for (const [name, api] of apis) {
486
+ const nameLower = name.toLowerCase();
487
+ // Exact match (case-insensitive)
488
+ if (nameLower === queryLower) {
489
+ return [api];
490
+ }
491
+ // Prefix match
492
+ if (nameLower.startsWith(queryLower) || queryLower.startsWith(nameLower)) {
493
+ candidates.push({ api, distance: 0 });
494
+ continue;
495
+ }
496
+ // Substring match
497
+ if (nameLower.includes(queryLower) || queryLower.includes(nameLower)) {
498
+ candidates.push({ api, distance: 1 });
499
+ continue;
500
+ }
501
+ // Levenshtein distance
502
+ const distance = levenshteinDistance(nameLower, queryLower);
503
+ if (distance <= maxDistance) {
504
+ candidates.push({ api, distance });
505
+ }
506
+ }
507
+ // Sort by distance and return top matches
508
+ candidates.sort((a, b) => a.distance - b.distance);
509
+ return candidates.slice(0, limit).map((c) => c.api);
510
+ }
511
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/indexer/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * get_api MCP Tool
3
+ *
4
+ * Retrieve detailed information about a specific API method or property.
5
+ */
6
+ import { z } from 'zod';
7
+ import type { SearchIndex } from '../types/index.js';
8
+ /**
9
+ * Input schema for get_api tool
10
+ */
11
+ export declare const getApiInputSchema: z.ZodObject<{
12
+ name: z.ZodString;
13
+ }, "strip", z.ZodTypeAny, {
14
+ name: string;
15
+ }, {
16
+ name: string;
17
+ }>;
18
+ export type GetApiInput = z.infer<typeof getApiInputSchema>;
19
+ /**
20
+ * Execute get_api tool
21
+ */
22
+ export declare function executeGetApi(index: SearchIndex, input: GetApiInput): {
23
+ content: string;
24
+ isError: boolean;
25
+ };
26
+ //# sourceMappingURL=get-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-api.d.ts","sourceRoot":"","sources":["../../src/tools/get-api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AAG9E;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;EAM5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAoM5D;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,WAAW,GACjB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAmCvC"}