@zakstam/convex-docs-mcp 1.0.0 → 1.1.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.
- package/build/data/titles.json +1199 -0
- package/build/tools/listTopics.js +3 -3
- package/build/tools/listTopics.js.map +1 -1
- package/build/tools/search.js +3 -3
- package/build/tools/search.js.map +1 -1
- package/build/utils/dynamicSitemap.d.ts +23 -0
- package/build/utils/dynamicSitemap.d.ts.map +1 -0
- package/build/utils/dynamicSitemap.js +269 -0
- package/build/utils/dynamicSitemap.js.map +1 -0
- package/build/utils/sitemap.d.ts +16 -0
- package/build/utils/sitemap.d.ts.map +1 -1
- package/build/utils/sitemap.js +79 -1
- package/build/utils/sitemap.js.map +1 -1
- package/package.json +4 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
2
|
+
import { getAllTopicsAsync, filterTopicsBySectionAsync, DOCS_BASE_URL, } from "../utils/sitemap.js";
|
|
3
3
|
export const listTopicsSchema = z.object({
|
|
4
4
|
section: z
|
|
5
5
|
.string()
|
|
@@ -23,10 +23,10 @@ function formatTopic(topic) {
|
|
|
23
23
|
export async function listTopics(input) {
|
|
24
24
|
let topics;
|
|
25
25
|
if (input.section) {
|
|
26
|
-
topics =
|
|
26
|
+
topics = await filterTopicsBySectionAsync(input.section);
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
29
|
-
topics =
|
|
29
|
+
topics = await getAllTopicsAsync();
|
|
30
30
|
}
|
|
31
31
|
const formattedTopics = topics.map(formatTopic);
|
|
32
32
|
// Count total topics including nested ones
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listTopics.js","sourceRoot":"","sources":["../../src/tools/listTopics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"listTopics.js","sourceRoot":"","sources":["../../src/tools/listTopics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+DAA+D,CAAC;CAC7E,CAAC,CAAC;AAYH,SAAS,WAAW,CAAC,KAAe;IAClC,MAAM,IAAI,GAAkB;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE,GAAG,aAAa,IAAI,KAAK,CAAC,IAAI,EAAE;KACtC,CAAC;IAEF,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACvC,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAsB;IAEtB,IAAI,MAAkB,CAAC;IAEvB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,GAAG,MAAM,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEhD,2CAA2C;IAC3C,SAAS,WAAW,CAAC,KAAsB;QACzC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,WAAW,CAAC,eAAe,CAAC;KACzC,CAAC;AACJ,CAAC"}
|
package/build/tools/search.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
2
|
+
import { searchTopicsAsync, DOCS_BASE_URL } from "../utils/sitemap.js";
|
|
3
3
|
export const searchSchema = z.object({
|
|
4
4
|
query: z.string().describe("Search query to find relevant Convex documentation"),
|
|
5
5
|
});
|
|
6
6
|
export async function search(input) {
|
|
7
7
|
const { query } = input;
|
|
8
|
-
// Search through the
|
|
9
|
-
const matchingTopics =
|
|
8
|
+
// Search through the dynamic topic index (with static fallback)
|
|
9
|
+
const matchingTopics = await searchTopicsAsync(query);
|
|
10
10
|
// Score and format results
|
|
11
11
|
const results = matchingTopics.map((topic) => {
|
|
12
12
|
let score = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;CACjF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAkB;IAI7C,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAExB,gEAAgE;IAChE,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAEtD,2BAA2B;IAC3B,MAAM,OAAO,GAAmB,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAE1D,iCAAiC;QACjC,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;YAC9B,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;aAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,KAAK,IAAI,EAAE,CAAC;QACd,CAAC;QAED,yBAAyB;QACzB,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,KAAK,IAAI,EAAE,CAAC;QACd,CAAC;QAED,gCAAgC;QAChC,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,KAAK,IAAI,EAAE,CAAC;QACd,CAAC;QAED,2BAA2B;QAC3B,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,KAAK,IAAI,EAAE,CAAC;gBAC3C,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,KAAK,IAAI,CAAC,CAAC;gBACzC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,KAAK,IAAI,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,GAAG,aAAa,IAAI,KAAK,CAAC,IAAI,EAAE;YACrC,OAAO,EAAE,KAAK,CAAC,WAAW,IAAI,uBAAuB,KAAK,CAAC,KAAK,EAAE;YAClE,KAAK;SACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAE1C,0BAA0B;IAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAExC,OAAO;QACL,OAAO,EAAE,UAAU;QACnB,KAAK;KACN,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DocTopic } from "../types.js";
|
|
2
|
+
export declare const DOCS_BASE_URL = "https://docs.convex.dev";
|
|
3
|
+
/**
|
|
4
|
+
* Get all topics, using cache if available and not expired
|
|
5
|
+
*/
|
|
6
|
+
export declare function getDynamicTopics(): Promise<DocTopic[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Get flattened topics for search
|
|
9
|
+
*/
|
|
10
|
+
export declare function getFlatDynamicTopics(): Promise<DocTopic[]>;
|
|
11
|
+
/**
|
|
12
|
+
* Search topics by query using fuzzy matching
|
|
13
|
+
*/
|
|
14
|
+
export declare function searchDynamicTopics(query: string): Promise<DocTopic[]>;
|
|
15
|
+
/**
|
|
16
|
+
* Filter topics by section
|
|
17
|
+
*/
|
|
18
|
+
export declare function filterDynamicTopicsBySection(section: string): Promise<DocTopic[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Clear the cache (useful for testing)
|
|
21
|
+
*/
|
|
22
|
+
export declare function clearCache(): void;
|
|
23
|
+
//# sourceMappingURL=dynamicSitemap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamicSitemap.d.ts","sourceRoot":"","sources":["../../src/utils/dynamicSitemap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,eAAO,MAAM,aAAa,4BAA4B,CAAC;AAoNvD;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAoB5D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAoBhE;AAgBD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAQ5E;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CASvF;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAKjC"}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import Fuse from "fuse.js";
|
|
2
|
+
import titlesData from "../data/titles.json" with { type: "json" };
|
|
3
|
+
export const DOCS_BASE_URL = "https://docs.convex.dev";
|
|
4
|
+
const SITEMAP_URL = `${DOCS_BASE_URL}/sitemap.xml`;
|
|
5
|
+
// Cache configuration
|
|
6
|
+
const CACHE_TTL_MS = 60 * 60 * 1000; // 1 hour
|
|
7
|
+
let cachedTopics = null;
|
|
8
|
+
let cachedFlatTopics = null;
|
|
9
|
+
let cachedFuseIndex = null;
|
|
10
|
+
let lastFetchTime = 0;
|
|
11
|
+
// Fuse.js configuration for fuzzy search
|
|
12
|
+
const fuseOptions = {
|
|
13
|
+
keys: [
|
|
14
|
+
{ name: "title", weight: 0.5 },
|
|
15
|
+
{ name: "description", weight: 0.3 },
|
|
16
|
+
{ name: "path", weight: 0.2 },
|
|
17
|
+
],
|
|
18
|
+
threshold: 0.4, // 0 = exact match, 1 = match anything
|
|
19
|
+
ignoreLocation: true, // Don't care where in the string the match is
|
|
20
|
+
includeScore: true,
|
|
21
|
+
minMatchCharLength: 2,
|
|
22
|
+
useExtendedSearch: true,
|
|
23
|
+
};
|
|
24
|
+
const titlesMap = new Map(titlesData.titles.map((entry) => [entry.path, entry]));
|
|
25
|
+
/**
|
|
26
|
+
* Get title for a path from pre-fetched data, or generate from path
|
|
27
|
+
*/
|
|
28
|
+
function getTitleForPath(path) {
|
|
29
|
+
const entry = titlesMap.get(path);
|
|
30
|
+
if (entry) {
|
|
31
|
+
return entry.title;
|
|
32
|
+
}
|
|
33
|
+
// Fallback: convert path to title
|
|
34
|
+
const lastSegment = path.split("/").pop() || path;
|
|
35
|
+
return lastSegment
|
|
36
|
+
.split("-")
|
|
37
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
38
|
+
.join(" ");
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get description for a path from pre-fetched data, or generate from path
|
|
42
|
+
*/
|
|
43
|
+
function getDescriptionForPath(path) {
|
|
44
|
+
const entry = titlesMap.get(path);
|
|
45
|
+
if (entry?.description) {
|
|
46
|
+
return entry.description;
|
|
47
|
+
}
|
|
48
|
+
// Fallback: generate description from title and section
|
|
49
|
+
const title = getTitleForPath(path);
|
|
50
|
+
const parts = path.split("/");
|
|
51
|
+
if (parts.length === 1) {
|
|
52
|
+
return `Convex ${title} documentation`;
|
|
53
|
+
}
|
|
54
|
+
const section = getTitleForPath(parts[0]);
|
|
55
|
+
return `${title} - ${section}`;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Parse sitemap XML and extract URLs
|
|
59
|
+
*/
|
|
60
|
+
function parseSitemapXml(xml) {
|
|
61
|
+
const urls = [];
|
|
62
|
+
// Simple regex-based XML parsing (no external dependencies)
|
|
63
|
+
const locRegex = /<loc>([^<]+)<\/loc>/g;
|
|
64
|
+
let match;
|
|
65
|
+
while ((match = locRegex.exec(xml)) !== null) {
|
|
66
|
+
urls.push(match[1]);
|
|
67
|
+
}
|
|
68
|
+
return urls;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Convert URLs to flat DocTopic array
|
|
72
|
+
*/
|
|
73
|
+
function urlsToFlatTopics(urls) {
|
|
74
|
+
const topics = [];
|
|
75
|
+
const seenPaths = new Set();
|
|
76
|
+
for (const url of urls) {
|
|
77
|
+
// Extract path from URL
|
|
78
|
+
const path = url.replace(DOCS_BASE_URL + "/", "").replace(/\/$/, "");
|
|
79
|
+
// Skip empty paths, anchors, and duplicates
|
|
80
|
+
if (!path || path.includes("#") || seenPaths.has(path)) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
seenPaths.add(path);
|
|
84
|
+
topics.push({
|
|
85
|
+
title: getTitleForPath(path),
|
|
86
|
+
path,
|
|
87
|
+
description: getDescriptionForPath(path),
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return topics;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Build hierarchical topic structure from flat topics
|
|
94
|
+
*/
|
|
95
|
+
function buildTopicHierarchy(flatTopics) {
|
|
96
|
+
const topLevelTopics = new Map();
|
|
97
|
+
const childrenMap = new Map();
|
|
98
|
+
// Sort topics by path depth (parents first)
|
|
99
|
+
const sortedTopics = [...flatTopics].sort((a, b) => a.path.split("/").length - b.path.split("/").length);
|
|
100
|
+
for (const topic of sortedTopics) {
|
|
101
|
+
const parts = topic.path.split("/");
|
|
102
|
+
if (parts.length === 1) {
|
|
103
|
+
// Top-level topic
|
|
104
|
+
topLevelTopics.set(topic.path, { ...topic, children: [] });
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
// Child topic - find parent
|
|
108
|
+
const parentPath = parts.slice(0, -1).join("/");
|
|
109
|
+
if (!childrenMap.has(parentPath)) {
|
|
110
|
+
childrenMap.set(parentPath, []);
|
|
111
|
+
}
|
|
112
|
+
childrenMap.get(parentPath).push(topic);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Attach children to parents
|
|
116
|
+
for (const [parentPath, children] of childrenMap) {
|
|
117
|
+
const parent = topLevelTopics.get(parentPath);
|
|
118
|
+
if (parent) {
|
|
119
|
+
parent.children = children;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
// Parent doesn't exist as top-level, might be nested
|
|
123
|
+
// For simplicity, add orphaned children as top-level with their parent path prefix
|
|
124
|
+
for (const child of children) {
|
|
125
|
+
const topLevel = child.path.split("/")[0];
|
|
126
|
+
if (topLevelTopics.has(topLevel)) {
|
|
127
|
+
const topParent = topLevelTopics.get(topLevel);
|
|
128
|
+
if (!topParent.children) {
|
|
129
|
+
topParent.children = [];
|
|
130
|
+
}
|
|
131
|
+
topParent.children.push(child);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
// Create a top-level entry for orphaned topics
|
|
135
|
+
topLevelTopics.set(child.path, child);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Sort topics alphabetically, but put common sections first
|
|
141
|
+
const priorityOrder = [
|
|
142
|
+
"get-started",
|
|
143
|
+
"tutorial",
|
|
144
|
+
"quickstarts",
|
|
145
|
+
"functions",
|
|
146
|
+
"database",
|
|
147
|
+
"auth",
|
|
148
|
+
"file-storage",
|
|
149
|
+
"scheduling",
|
|
150
|
+
"search",
|
|
151
|
+
"ai",
|
|
152
|
+
"agents",
|
|
153
|
+
"client",
|
|
154
|
+
"production",
|
|
155
|
+
"cli",
|
|
156
|
+
"api",
|
|
157
|
+
];
|
|
158
|
+
const topicsArray = Array.from(topLevelTopics.values());
|
|
159
|
+
topicsArray.sort((a, b) => {
|
|
160
|
+
const aIndex = priorityOrder.indexOf(a.path);
|
|
161
|
+
const bIndex = priorityOrder.indexOf(b.path);
|
|
162
|
+
if (aIndex !== -1 && bIndex !== -1)
|
|
163
|
+
return aIndex - bIndex;
|
|
164
|
+
if (aIndex !== -1)
|
|
165
|
+
return -1;
|
|
166
|
+
if (bIndex !== -1)
|
|
167
|
+
return 1;
|
|
168
|
+
return a.title.localeCompare(b.title);
|
|
169
|
+
});
|
|
170
|
+
return topicsArray;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Fetch and parse the sitemap from docs.convex.dev
|
|
174
|
+
*/
|
|
175
|
+
async function fetchSitemap() {
|
|
176
|
+
const response = await fetch(SITEMAP_URL);
|
|
177
|
+
if (!response.ok) {
|
|
178
|
+
throw new Error(`Failed to fetch sitemap: ${response.status}`);
|
|
179
|
+
}
|
|
180
|
+
const xml = await response.text();
|
|
181
|
+
const urls = parseSitemapXml(xml);
|
|
182
|
+
const flatTopics = urlsToFlatTopics(urls);
|
|
183
|
+
const hierarchicalTopics = buildTopicHierarchy(flatTopics);
|
|
184
|
+
return hierarchicalTopics;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get all topics, using cache if available and not expired
|
|
188
|
+
*/
|
|
189
|
+
export async function getDynamicTopics() {
|
|
190
|
+
const now = Date.now();
|
|
191
|
+
if (cachedTopics && now - lastFetchTime < CACHE_TTL_MS) {
|
|
192
|
+
return cachedTopics;
|
|
193
|
+
}
|
|
194
|
+
try {
|
|
195
|
+
cachedTopics = await fetchSitemap();
|
|
196
|
+
cachedFlatTopics = null; // Invalidate flat cache
|
|
197
|
+
lastFetchTime = now;
|
|
198
|
+
return cachedTopics;
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
// If we have cached data, return it even if expired
|
|
202
|
+
if (cachedTopics) {
|
|
203
|
+
console.error("Failed to refresh sitemap, using cached data:", error);
|
|
204
|
+
return cachedTopics;
|
|
205
|
+
}
|
|
206
|
+
throw error;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Get flattened topics for search
|
|
211
|
+
*/
|
|
212
|
+
export async function getFlatDynamicTopics() {
|
|
213
|
+
if (cachedFlatTopics && cachedTopics && Date.now() - lastFetchTime < CACHE_TTL_MS) {
|
|
214
|
+
return cachedFlatTopics;
|
|
215
|
+
}
|
|
216
|
+
const topics = await getDynamicTopics();
|
|
217
|
+
function flatten(items) {
|
|
218
|
+
const result = [];
|
|
219
|
+
for (const item of items) {
|
|
220
|
+
result.push({ title: item.title, path: item.path, description: item.description });
|
|
221
|
+
if (item.children) {
|
|
222
|
+
result.push(...flatten(item.children));
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return result;
|
|
226
|
+
}
|
|
227
|
+
cachedFlatTopics = flatten(topics);
|
|
228
|
+
return cachedFlatTopics;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Get or create Fuse index for fuzzy search
|
|
232
|
+
*/
|
|
233
|
+
async function getFuseIndex() {
|
|
234
|
+
const allTopics = await getFlatDynamicTopics();
|
|
235
|
+
// Rebuild index if topics changed
|
|
236
|
+
if (!cachedFuseIndex || cachedFlatTopics !== allTopics) {
|
|
237
|
+
cachedFuseIndex = new Fuse(allTopics, fuseOptions);
|
|
238
|
+
}
|
|
239
|
+
return cachedFuseIndex;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Search topics by query using fuzzy matching
|
|
243
|
+
*/
|
|
244
|
+
export async function searchDynamicTopics(query) {
|
|
245
|
+
const fuse = await getFuseIndex();
|
|
246
|
+
// Perform fuzzy search
|
|
247
|
+
const results = fuse.search(query);
|
|
248
|
+
// Return topics sorted by relevance (best matches first)
|
|
249
|
+
return results.map((result) => result.item);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Filter topics by section
|
|
253
|
+
*/
|
|
254
|
+
export async function filterDynamicTopicsBySection(section) {
|
|
255
|
+
const normalizedSection = section.toLowerCase().replace(/[\s-]+/g, "-");
|
|
256
|
+
const topics = await getDynamicTopics();
|
|
257
|
+
return topics.filter((topic) => topic.path.toLowerCase().includes(normalizedSection) ||
|
|
258
|
+
topic.title.toLowerCase().replace(/[\s]+/g, "-").includes(normalizedSection));
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Clear the cache (useful for testing)
|
|
262
|
+
*/
|
|
263
|
+
export function clearCache() {
|
|
264
|
+
cachedTopics = null;
|
|
265
|
+
cachedFlatTopics = null;
|
|
266
|
+
cachedFuseIndex = null;
|
|
267
|
+
lastFetchTime = 0;
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=dynamicSitemap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamicSitemap.js","sourceRoot":"","sources":["../../src/utils/dynamicSitemap.ts"],"names":[],"mappings":"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"}
|
package/build/utils/sitemap.d.ts
CHANGED
|
@@ -6,4 +6,20 @@ export declare function getTopicByPath(path: string): DocTopic | undefined;
|
|
|
6
6
|
export declare function filterTopicsBySection(section: string): DocTopic[];
|
|
7
7
|
export declare function flattenTopics(topics?: DocTopic[]): DocTopic[];
|
|
8
8
|
export declare function searchTopics(query: string): DocTopic[];
|
|
9
|
+
/**
|
|
10
|
+
* Get all topics - tries dynamic sitemap first, falls back to static
|
|
11
|
+
*/
|
|
12
|
+
export declare function getAllTopicsAsync(): Promise<DocTopic[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Get flattened topics - tries dynamic sitemap first, falls back to static
|
|
15
|
+
*/
|
|
16
|
+
export declare function flattenTopicsAsync(): Promise<DocTopic[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Search topics - tries dynamic sitemap first, falls back to static
|
|
19
|
+
*/
|
|
20
|
+
export declare function searchTopicsAsync(query: string): Promise<DocTopic[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Filter topics by section - tries dynamic sitemap first, falls back to static
|
|
23
|
+
*/
|
|
24
|
+
export declare function filterTopicsBySectionAsync(section: string): Promise<DocTopic[]>;
|
|
9
25
|
//# sourceMappingURL=sitemap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitemap.d.ts","sourceRoot":"","sources":["../../src/utils/sitemap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sitemap.d.ts","sourceRoot":"","sources":["../../src/utils/sitemap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAS5C,eAAO,MAAM,aAAa,4BAAmB,CAAC;AAE9C,eAAO,MAAM,WAAW,EAAE,QAAQ,EA6KjC,CAAC;AAEF,wBAAgB,YAAY,IAAI,QAAQ,EAAE,CAEzC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAiBjE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAQjE;AAED,wBAAgB,aAAa,CAAC,MAAM,GAAE,QAAQ,EAAgB,GAAG,QAAQ,EAAE,CAc1E;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAUtD;AAMD;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAO7D;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAO9D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAO1E;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAOrF"}
|
package/build/utils/sitemap.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { getDynamicTopics, getFlatDynamicTopics, searchDynamicTopics, filterDynamicTopicsBySection, DOCS_BASE_URL as DYNAMIC_BASE_URL, } from "./dynamicSitemap.js";
|
|
2
|
+
export const DOCS_BASE_URL = DYNAMIC_BASE_URL;
|
|
2
3
|
export const docsSitemap = [
|
|
3
4
|
{
|
|
4
5
|
title: "Get Started",
|
|
@@ -103,6 +104,31 @@ export const docsSitemap = [
|
|
|
103
104
|
description: "AI and LLM integration",
|
|
104
105
|
children: [
|
|
105
106
|
{ title: "Overview", path: "ai", description: "AI features in Convex" },
|
|
107
|
+
{ title: "Using Cursor", path: "ai/using-cursor", description: "Convex AI rules for Cursor IDE" },
|
|
108
|
+
{ title: "Using Windsurf", path: "ai/using-windsurf", description: "Convex AI rules for Windsurf IDE" },
|
|
109
|
+
{ title: "Using GitHub Copilot", path: "ai/using-github-copilot", description: "Convex instructions for GitHub Copilot" },
|
|
110
|
+
{ title: "Convex MCP Server", path: "ai/convex-mcp-server", description: "MCP server for AI coding agents" },
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
title: "AI Agents",
|
|
115
|
+
path: "agents",
|
|
116
|
+
description: "Building AI agents with Convex",
|
|
117
|
+
children: [
|
|
118
|
+
{ title: "Overview", path: "agents", description: "Building AI agents with Convex" },
|
|
119
|
+
{ title: "Getting Started", path: "agents/getting-started", description: "Build your first AI agent" },
|
|
120
|
+
{ title: "Tools", path: "agents/tools", description: "Agent tools and function calling" },
|
|
121
|
+
{ title: "Threads", path: "agents/threads", description: "Managing conversation threads" },
|
|
122
|
+
{ title: "Messages", path: "agents/messages", description: "Working with messages in threads" },
|
|
123
|
+
{ title: "Human Agents", path: "agents/human-agents", description: "Human-in-the-loop agents" },
|
|
124
|
+
{ title: "Context", path: "agents/context", description: "Conversation context management" },
|
|
125
|
+
{ title: "Workflows", path: "agents/workflows", description: "Multi-step agent workflows" },
|
|
126
|
+
{ title: "RAG", path: "agents/rag", description: "Retrieval-augmented generation" },
|
|
127
|
+
{ title: "Files", path: "agents/files", description: "File handling in agent conversations" },
|
|
128
|
+
{ title: "Debugging", path: "agents/debugging", description: "Debugging AI agents" },
|
|
129
|
+
{ title: "Playground", path: "agents/playground", description: "Agent playground for testing" },
|
|
130
|
+
{ title: "Usage Tracking", path: "agents/usage-tracking", description: "Track agent usage and billing" },
|
|
131
|
+
{ title: "Rate Limiting", path: "agents/rate-limiting", description: "Rate limiting agent interactions" },
|
|
106
132
|
],
|
|
107
133
|
},
|
|
108
134
|
{
|
|
@@ -136,6 +162,7 @@ export const docsSitemap = [
|
|
|
136
162
|
description: "Convex CLI reference",
|
|
137
163
|
children: [
|
|
138
164
|
{ title: "Overview", path: "cli", description: "Convex CLI introduction" },
|
|
165
|
+
{ title: "Agent Mode", path: "cli/agent-mode", description: "CLI agent mode for background AI agents" },
|
|
139
166
|
],
|
|
140
167
|
},
|
|
141
168
|
{
|
|
@@ -192,4 +219,55 @@ export function searchTopics(query) {
|
|
|
192
219
|
topic.path.toLowerCase().includes(normalizedQuery) ||
|
|
193
220
|
(topic.description && topic.description.toLowerCase().includes(normalizedQuery)));
|
|
194
221
|
}
|
|
222
|
+
// =============================================================================
|
|
223
|
+
// Async versions with dynamic sitemap (with static fallback)
|
|
224
|
+
// =============================================================================
|
|
225
|
+
/**
|
|
226
|
+
* Get all topics - tries dynamic sitemap first, falls back to static
|
|
227
|
+
*/
|
|
228
|
+
export async function getAllTopicsAsync() {
|
|
229
|
+
try {
|
|
230
|
+
return await getDynamicTopics();
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
console.error("Failed to fetch dynamic sitemap, using static fallback:", error);
|
|
234
|
+
return docsSitemap;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Get flattened topics - tries dynamic sitemap first, falls back to static
|
|
239
|
+
*/
|
|
240
|
+
export async function flattenTopicsAsync() {
|
|
241
|
+
try {
|
|
242
|
+
return await getFlatDynamicTopics();
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
console.error("Failed to fetch dynamic sitemap, using static fallback:", error);
|
|
246
|
+
return flattenTopics();
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Search topics - tries dynamic sitemap first, falls back to static
|
|
251
|
+
*/
|
|
252
|
+
export async function searchTopicsAsync(query) {
|
|
253
|
+
try {
|
|
254
|
+
return await searchDynamicTopics(query);
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
console.error("Failed to search dynamic sitemap, using static fallback:", error);
|
|
258
|
+
return searchTopics(query);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Filter topics by section - tries dynamic sitemap first, falls back to static
|
|
263
|
+
*/
|
|
264
|
+
export async function filterTopicsBySectionAsync(section) {
|
|
265
|
+
try {
|
|
266
|
+
return await filterDynamicTopicsBySection(section);
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
console.error("Failed to filter dynamic sitemap, using static fallback:", error);
|
|
270
|
+
return filterTopicsBySection(section);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
195
273
|
//# sourceMappingURL=sitemap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitemap.js","sourceRoot":"","sources":["../../src/utils/sitemap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sitemap.js","sourceRoot":"","sources":["../../src/utils/sitemap.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zakstam/convex-docs-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "MCP server providing access to Convex documentation",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"build": "tsc",
|
|
24
24
|
"start": "node build/index.js",
|
|
25
25
|
"dev": "tsc --watch",
|
|
26
|
+
"fetch-titles": "tsx scripts/fetch-titles.ts",
|
|
26
27
|
"prepare": "husky"
|
|
27
28
|
},
|
|
28
29
|
"keywords": [
|
|
@@ -34,6 +35,7 @@
|
|
|
34
35
|
"license": "MIT",
|
|
35
36
|
"dependencies": {
|
|
36
37
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
38
|
+
"fuse.js": "^7.1.0",
|
|
37
39
|
"turndown": "^7.1.0",
|
|
38
40
|
"zod": "^3.23.0"
|
|
39
41
|
},
|
|
@@ -50,6 +52,7 @@
|
|
|
50
52
|
"@types/turndown": "^5.0.0",
|
|
51
53
|
"husky": "^9.1.7",
|
|
52
54
|
"semantic-release": "^25.0.2",
|
|
55
|
+
"tsx": "^4.21.0",
|
|
53
56
|
"typescript": "^5.0.0"
|
|
54
57
|
}
|
|
55
58
|
}
|