@bulkpublishing/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 (54) hide show
  1. package/README.md +170 -0
  2. package/dist/ai/engine.d.ts +12 -0
  3. package/dist/ai/engine.d.ts.map +1 -0
  4. package/dist/ai/engine.js +397 -0
  5. package/dist/ai/engine.js.map +1 -0
  6. package/dist/ai/prompts.d.ts +30 -0
  7. package/dist/ai/prompts.d.ts.map +1 -0
  8. package/dist/ai/prompts.js +207 -0
  9. package/dist/ai/prompts.js.map +1 -0
  10. package/dist/auth/context.d.ts +81 -0
  11. package/dist/auth/context.d.ts.map +1 -0
  12. package/dist/auth/context.js +68 -0
  13. package/dist/auth/context.js.map +1 -0
  14. package/dist/auth/validate.d.ts +13 -0
  15. package/dist/auth/validate.d.ts.map +1 -0
  16. package/dist/auth/validate.js +87 -0
  17. package/dist/auth/validate.js.map +1 -0
  18. package/dist/index.d.ts +22 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +78 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/tools/csv.d.ts +18 -0
  23. package/dist/tools/csv.d.ts.map +1 -0
  24. package/dist/tools/csv.js +673 -0
  25. package/dist/tools/csv.js.map +1 -0
  26. package/dist/tools/generation.d.ts +14 -0
  27. package/dist/tools/generation.d.ts.map +1 -0
  28. package/dist/tools/generation.js +291 -0
  29. package/dist/tools/generation.js.map +1 -0
  30. package/dist/tools/indexing.d.ts +11 -0
  31. package/dist/tools/indexing.d.ts.map +1 -0
  32. package/dist/tools/indexing.js +219 -0
  33. package/dist/tools/indexing.js.map +1 -0
  34. package/dist/tools/projects.d.ts +11 -0
  35. package/dist/tools/projects.d.ts.map +1 -0
  36. package/dist/tools/projects.js +181 -0
  37. package/dist/tools/projects.js.map +1 -0
  38. package/dist/tools/research.d.ts +12 -0
  39. package/dist/tools/research.d.ts.map +1 -0
  40. package/dist/tools/research.js +88 -0
  41. package/dist/tools/research.js.map +1 -0
  42. package/dist/tools/seo.d.ts +12 -0
  43. package/dist/tools/seo.d.ts.map +1 -0
  44. package/dist/tools/seo.js +164 -0
  45. package/dist/tools/seo.js.map +1 -0
  46. package/dist/tools/wordpress.d.ts +15 -0
  47. package/dist/tools/wordpress.d.ts.map +1 -0
  48. package/dist/tools/wordpress.js +447 -0
  49. package/dist/tools/wordpress.js.map +1 -0
  50. package/dist/types.d.ts +206 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +9 -0
  53. package/dist/types.js.map +1 -0
  54. package/package.json +53 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv.js","sourceRoot":"","sources":["../../src/tools/csv.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * BPAI MCP Server — Content Generation Tools
3
+ *
4
+ * MCP tool handlers for:
5
+ * - generate_article: Single article generation
6
+ * - generate_batch: Bulk generation from keyword list
7
+ * - list_models: List all available AI models
8
+ *
9
+ * API keys are loaded from the authenticated user's BPAI account.
10
+ * No inline key parameters needed.
11
+ */
12
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
13
+ export declare function registerGenerationTools(server: McpServer): void;
14
+ //# sourceMappingURL=generation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation.d.ts","sourceRoot":"","sources":["../../src/tools/generation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,QA+SxD"}
@@ -0,0 +1,291 @@
1
+ /**
2
+ * BPAI MCP Server — Content Generation Tools
3
+ *
4
+ * MCP tool handlers for:
5
+ * - generate_article: Single article generation
6
+ * - generate_batch: Bulk generation from keyword list
7
+ * - list_models: List all available AI models
8
+ *
9
+ * API keys are loaded from the authenticated user's BPAI account.
10
+ * No inline key parameters needed.
11
+ */
12
+ import { z } from 'zod';
13
+ import { generateContent, listModels } from '../ai/engine.js';
14
+ import { buildGenerationPrompt, HUMANIZE_PROMPT } from '../ai/prompts.js';
15
+ import { getUserContext, getApiKey, getKnowledgeBaseContext, getProjectSettings } from '../auth/context.js';
16
+ export function registerGenerationTools(server) {
17
+ // ============================================
18
+ // generate_article
19
+ // ============================================
20
+ server.tool('generate_article', 'Generate a single SEO-optimized article from a keyword. Supports all 7 AI providers and 50+ models. Includes humanization and internal linking options.', {
21
+ keyword: z.string().describe('Target keyword or topic for the article'),
22
+ provider: z.enum(['openai', 'claude', 'deepseek', 'grok', 'gemini', 'perplexity', 'kimi']).default('openai').describe('AI provider to use'),
23
+ model: z.string().optional().describe('Specific model ID (e.g., gpt-5.2, claude-opus-4.5). Defaults to account default or provider flagship'),
24
+ word_count: z.number().optional().default(2500).describe('Target word count (500-10000)'),
25
+ temperature: z.number().optional().default(0.7).describe('Generation temperature (0.0-1.0)'),
26
+ tone: z.string().optional().describe('Writing tone (e.g., "professional", "casual", "technical")'),
27
+ humanize: z.boolean().optional().default(false).describe('Run anti-AI detection pass after generation'),
28
+ research_context: z.string().optional().describe('Pre-fetched research data to inject into the prompt'),
29
+ include_knowledge_base: z.boolean().optional().default(true).describe('Include project knowledge base context'),
30
+ internal_linking: z.boolean().optional().default(true).describe('Apply internal linking from project settings'),
31
+ max_internal_links: z.number().optional().default(5).describe('Max internal links to include (1-10)'),
32
+ project_id: z.string().optional().describe('Project ID (defaults to active project)'),
33
+ }, async (args) => {
34
+ const ctx = getUserContext();
35
+ if (!ctx.authenticated) {
36
+ return { content: [{ type: 'text', text: JSON.stringify({ error: 'Not authenticated. Check your BPAI_API_KEY.' }, null, 2) }] };
37
+ }
38
+ const provider = args.provider;
39
+ // Build API keys from authenticated account + env fallback
40
+ const keys = {
41
+ openai: getApiKey('openai'),
42
+ claude: getApiKey('claude'),
43
+ deepseek: getApiKey('deepseek'),
44
+ grok: getApiKey('grok'),
45
+ gemini: getApiKey('gemini'),
46
+ perplexity: getApiKey('perplexity'),
47
+ kimi: getApiKey('kimi'),
48
+ };
49
+ // Verify the selected provider has a key
50
+ if (!keys[provider]) {
51
+ return {
52
+ content: [{
53
+ type: 'text', text: JSON.stringify({
54
+ error: `Missing API key for provider "${provider}". Add your ${provider} API key in the BPAI web dashboard under Settings → API Keys.`,
55
+ }, null, 2)
56
+ }],
57
+ };
58
+ }
59
+ // Load project-level context
60
+ const project = getProjectSettings(args.project_id);
61
+ const kbContext = args.include_knowledge_base ? getKnowledgeBaseContext(args.project_id) : undefined;
62
+ // Resolve internal linking URLs from project settings
63
+ let internalLinkUrls;
64
+ if (args.internal_linking && project?.settings?.internal_linking?.enabled) {
65
+ internalLinkUrls = project.settings.internal_linking.sitemapUrls;
66
+ }
67
+ // Build prompts
68
+ const { systemPrompt, userPrompt } = buildGenerationPrompt({
69
+ keyword: args.keyword,
70
+ wordCount: args.word_count,
71
+ tone: args.tone,
72
+ researchContext: args.research_context,
73
+ knowledgeBaseContext: kbContext,
74
+ internalLinkUrls,
75
+ maxInternalLinks: args.max_internal_links,
76
+ });
77
+ const settings = {
78
+ model: args.model || getDefaultModel(provider),
79
+ temperature: args.temperature ?? 0.7,
80
+ maxTokens: Math.min(args.word_count ? args.word_count * 3 : 16384, 65536),
81
+ };
82
+ // Generate
83
+ const result = await generateContent({
84
+ provider,
85
+ systemPrompt,
86
+ userPrompt,
87
+ settings,
88
+ }, keys);
89
+ if (result.error) {
90
+ return {
91
+ content: [{
92
+ type: 'text', text: JSON.stringify({
93
+ error: result.error,
94
+ provider,
95
+ model: settings.model,
96
+ }, null, 2)
97
+ }],
98
+ };
99
+ }
100
+ let finalText = result.text;
101
+ // Humanization pass
102
+ if (args.humanize && finalText) {
103
+ const humanizePrompt = HUMANIZE_PROMPT.replace('{{content}}', finalText);
104
+ const humanized = await generateContent({
105
+ provider,
106
+ systemPrompt: 'You are a senior human editor.',
107
+ userPrompt: humanizePrompt,
108
+ settings: { ...settings, maxTokens: 65536 },
109
+ }, keys);
110
+ if (humanized.text && humanized.text.length > finalText.length * 0.5) {
111
+ finalText = humanized.text;
112
+ }
113
+ }
114
+ // Extract meta description if present
115
+ let metaDescription = '';
116
+ const metaMatch = finalText.match(/META_DESCRIPTION:\s*(.+)/i);
117
+ if (metaMatch) {
118
+ metaDescription = metaMatch[1].trim();
119
+ finalText = finalText.replace(/META_DESCRIPTION:\s*.+/i, '').trim();
120
+ }
121
+ // Extract title from first H1
122
+ let title = args.keyword;
123
+ const titleMatch = finalText.match(/^#\s+(.+)/m);
124
+ if (titleMatch) {
125
+ title = titleMatch[1].trim();
126
+ }
127
+ const wordCount = finalText.split(/\s+/).length;
128
+ return {
129
+ content: [{
130
+ type: 'text', text: JSON.stringify({
131
+ status: 'success',
132
+ article: {
133
+ title,
134
+ keyword: args.keyword,
135
+ content: finalText,
136
+ meta_description: metaDescription,
137
+ word_count: wordCount,
138
+ model: settings.model,
139
+ provider,
140
+ humanized: args.humanize || false,
141
+ citations: result.citations || [],
142
+ },
143
+ }, null, 2)
144
+ }],
145
+ };
146
+ });
147
+ // ============================================
148
+ // generate_batch
149
+ // ============================================
150
+ server.tool('generate_batch', 'Generate multiple articles from a list of keywords. Processes sequentially with progress reporting. API keys are loaded from your BPAI account.', {
151
+ keywords: z.array(z.string()).describe('Array of keywords to generate articles for'),
152
+ provider: z.enum(['openai', 'claude', 'deepseek', 'grok', 'gemini', 'perplexity', 'kimi']).default('openai'),
153
+ model: z.string().optional().describe('Model ID to use for all articles'),
154
+ word_count: z.number().optional().default(2500),
155
+ temperature: z.number().optional().default(0.7),
156
+ tone: z.string().optional(),
157
+ humanize: z.boolean().optional().default(false),
158
+ include_knowledge_base: z.boolean().optional().default(true),
159
+ internal_linking: z.boolean().optional().default(true),
160
+ max_internal_links: z.number().optional().default(5),
161
+ project_id: z.string().optional().describe('Project ID (defaults to active project)'),
162
+ }, async (args) => {
163
+ const ctx = getUserContext();
164
+ if (!ctx.authenticated) {
165
+ return { content: [{ type: 'text', text: JSON.stringify({ error: 'Not authenticated.' }, null, 2) }] };
166
+ }
167
+ const provider = args.provider;
168
+ const keys = {
169
+ openai: getApiKey('openai'),
170
+ claude: getApiKey('claude'),
171
+ deepseek: getApiKey('deepseek'),
172
+ grok: getApiKey('grok'),
173
+ gemini: getApiKey('gemini'),
174
+ perplexity: getApiKey('perplexity'),
175
+ kimi: getApiKey('kimi'),
176
+ };
177
+ if (!keys[provider]) {
178
+ return {
179
+ content: [{
180
+ type: 'text', text: JSON.stringify({
181
+ error: `Missing API key for provider "${provider}". Add it in BPAI Settings → API Keys.`,
182
+ }, null, 2)
183
+ }],
184
+ };
185
+ }
186
+ const results = [];
187
+ let completed = 0;
188
+ let failed = 0;
189
+ for (let i = 0; i < args.keywords.length; i++) {
190
+ const keyword = args.keywords[i];
191
+ try {
192
+ const project = getProjectSettings(args.project_id);
193
+ const kbContext = args.include_knowledge_base ? getKnowledgeBaseContext(args.project_id) : undefined;
194
+ let internalLinkUrls;
195
+ if (args.internal_linking && project?.settings?.internal_linking?.enabled) {
196
+ internalLinkUrls = project.settings.internal_linking.sitemapUrls;
197
+ }
198
+ const { systemPrompt, userPrompt } = buildGenerationPrompt({
199
+ keyword,
200
+ wordCount: args.word_count,
201
+ tone: args.tone,
202
+ knowledgeBaseContext: kbContext,
203
+ internalLinkUrls,
204
+ maxInternalLinks: args.max_internal_links,
205
+ openerSeedIndex: i,
206
+ });
207
+ const settings = {
208
+ model: args.model || getDefaultModel(provider),
209
+ temperature: args.temperature ?? 0.7,
210
+ maxTokens: Math.min((args.word_count || 2500) * 3, 65536),
211
+ };
212
+ const result = await generateContent({
213
+ provider,
214
+ systemPrompt,
215
+ userPrompt,
216
+ settings,
217
+ }, keys);
218
+ if (result.error) {
219
+ failed++;
220
+ results.push({ keyword, status: 'failed', error: result.error });
221
+ }
222
+ else {
223
+ completed++;
224
+ let text = result.text;
225
+ // Extract title
226
+ let title = keyword;
227
+ const titleMatch = text.match(/^#\s+(.+)/m);
228
+ if (titleMatch)
229
+ title = titleMatch[1].trim();
230
+ results.push({
231
+ keyword,
232
+ status: 'success',
233
+ title,
234
+ word_count: text.split(/\s+/).length,
235
+ content_preview: text.substring(0, 200) + '...',
236
+ });
237
+ }
238
+ }
239
+ catch (err) {
240
+ failed++;
241
+ results.push({ keyword, status: 'failed', error: err.message });
242
+ }
243
+ }
244
+ return {
245
+ content: [{
246
+ type: 'text', text: JSON.stringify({
247
+ status: 'completed',
248
+ total: args.keywords.length,
249
+ completed,
250
+ failed,
251
+ provider,
252
+ model: args.model || getDefaultModel(provider),
253
+ results,
254
+ }, null, 2)
255
+ }],
256
+ };
257
+ });
258
+ // ============================================
259
+ // list_models
260
+ // ============================================
261
+ server.tool('list_models', 'List all available AI models across all providers, or filter by a specific provider. Returns model IDs, display names, and token limits.', {
262
+ provider: z.enum(['openai', 'claude', 'deepseek', 'grok', 'gemini', 'perplexity', 'kimi']).optional().describe('Filter by provider'),
263
+ }, async (args) => {
264
+ const models = listModels(args.provider);
265
+ return {
266
+ content: [{
267
+ type: 'text', text: JSON.stringify({
268
+ total: models.length,
269
+ provider: args.provider || 'all',
270
+ models,
271
+ }, null, 2)
272
+ }],
273
+ };
274
+ });
275
+ }
276
+ // ============================================
277
+ // HELPERS
278
+ // ============================================
279
+ function getDefaultModel(provider) {
280
+ const defaults = {
281
+ openai: 'gpt-5.2',
282
+ claude: 'claude-opus-4.5',
283
+ deepseek: 'deepseek-chat',
284
+ grok: 'grok-4.1-fast',
285
+ gemini: 'gemini-3-pro',
286
+ perplexity: 'sonar-pro',
287
+ kimi: 'kimi-k2.5',
288
+ };
289
+ return defaults[provider] || 'gpt-5.2';
290
+ }
291
+ //# sourceMappingURL=generation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation.js","sourceRoot":"","sources":["../../src/tools/generation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * BPAI MCP Server — Indexing & SEO Tools
3
+ *
4
+ * MCP tool handlers for:
5
+ * - broadcast_urls: Submit URLs to IndexNow and ping services
6
+ * - indexnow_submit: Direct IndexNow submission
7
+ * - fetch_sitemap: Parse and return URLs from a sitemap
8
+ */
9
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
10
+ export declare function registerIndexingTools(server: McpServer): void;
11
+ //# sourceMappingURL=indexing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexing.d.ts","sourceRoot":"","sources":["../../src/tools/indexing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QAuMtD"}
@@ -0,0 +1,219 @@
1
+ /**
2
+ * BPAI MCP Server — Indexing & SEO Tools
3
+ *
4
+ * MCP tool handlers for:
5
+ * - broadcast_urls: Submit URLs to IndexNow and ping services
6
+ * - indexnow_submit: Direct IndexNow submission
7
+ * - fetch_sitemap: Parse and return URLs from a sitemap
8
+ */
9
+ import { z } from 'zod';
10
+ export function registerIndexingTools(server) {
11
+ // ============================================
12
+ // broadcast_urls
13
+ // ============================================
14
+ server.tool('broadcast_urls', 'Submit URLs to index engines via IndexNow and traditional ping services (Google, Bing, WebSub). Supports batch submission.', {
15
+ urls: z.array(z.string()).describe('Array of URLs to broadcast'),
16
+ indexnow_key: z.string().optional().describe('IndexNow API key (defaults to env INDEXNOW_KEY)'),
17
+ indexnow_host: z.string().optional().describe('Search engine to submit to (default: api.indexnow.org)'),
18
+ enable_ping: z.boolean().optional().default(true).describe('Send pings to Google, Bing, WebSub'),
19
+ }, async (args) => {
20
+ const indexNowKey = args.indexnow_key || process.env.INDEXNOW_KEY;
21
+ const results = [];
22
+ // IndexNow submission
23
+ if (indexNowKey) {
24
+ const host = args.indexnow_host || 'api.indexnow.org';
25
+ const batchSize = 100; // IndexNow limit
26
+ for (let i = 0; i < args.urls.length; i += batchSize) {
27
+ const batch = args.urls.slice(i, i + batchSize);
28
+ try {
29
+ const urlObj = new URL(batch[0]);
30
+ const siteHost = urlObj.host;
31
+ const response = await fetch(`https://${host}/indexnow`, {
32
+ method: 'POST',
33
+ headers: { 'Content-Type': 'application/json' },
34
+ body: JSON.stringify({
35
+ host: siteHost,
36
+ key: indexNowKey,
37
+ urlList: batch,
38
+ }),
39
+ });
40
+ results.push({
41
+ service: 'IndexNow',
42
+ batch: `${i + 1}-${i + batch.length}`,
43
+ status: response.ok ? 'accepted' : 'failed',
44
+ code: response.status,
45
+ });
46
+ }
47
+ catch (error) {
48
+ results.push({
49
+ service: 'IndexNow',
50
+ batch: `${i + 1}-${i + batch.length}`,
51
+ status: 'error',
52
+ error: error.message,
53
+ });
54
+ }
55
+ }
56
+ }
57
+ else {
58
+ results.push({
59
+ service: 'IndexNow',
60
+ status: 'skipped',
61
+ reason: 'No IndexNow key provided',
62
+ });
63
+ }
64
+ // Traditional ping services
65
+ if (args.enable_ping) {
66
+ const pingServices = [
67
+ { name: 'Google Ping', urlTemplate: 'https://www.google.com/ping?sitemap=' },
68
+ { name: 'Bing Ping', urlTemplate: 'https://www.bing.com/ping?sitemap=' },
69
+ ];
70
+ // We ping the sitemap URL if available, otherwise use the first URL
71
+ const targetUrl = args.urls[0];
72
+ for (const service of pingServices) {
73
+ try {
74
+ const response = await fetch(`${service.urlTemplate}${encodeURIComponent(targetUrl)}`, {
75
+ method: 'GET',
76
+ });
77
+ results.push({
78
+ service: service.name,
79
+ status: response.ok ? 'success' : 'failed',
80
+ code: response.status,
81
+ });
82
+ }
83
+ catch (error) {
84
+ results.push({
85
+ service: service.name,
86
+ status: 'error',
87
+ error: error.message,
88
+ });
89
+ }
90
+ }
91
+ }
92
+ return {
93
+ content: [{
94
+ type: 'text', text: JSON.stringify({
95
+ status: 'completed',
96
+ urls_submitted: args.urls.length,
97
+ results,
98
+ }, null, 2)
99
+ }],
100
+ };
101
+ });
102
+ // ============================================
103
+ // indexnow_submit
104
+ // ============================================
105
+ server.tool('indexnow_submit', 'Submit a single URL or list of URLs directly to IndexNow for immediate indexing notification.', {
106
+ urls: z.array(z.string()).describe('URLs to submit to IndexNow'),
107
+ key: z.string().optional().describe('IndexNow API key'),
108
+ search_engine: z.enum(['api.indexnow.org', 'www.bing.com', 'search.seznam.cz', 'yandex.com']).default('api.indexnow.org'),
109
+ }, async (args) => {
110
+ const key = args.key || process.env.INDEXNOW_KEY;
111
+ if (!key) {
112
+ return {
113
+ content: [{
114
+ type: 'text', text: JSON.stringify({
115
+ error: 'IndexNow API key is required. Pass it as "key" or set INDEXNOW_KEY env var.',
116
+ }, null, 2)
117
+ }],
118
+ };
119
+ }
120
+ const urlObj = new URL(args.urls[0]);
121
+ const siteHost = urlObj.host;
122
+ try {
123
+ const response = await fetch(`https://${args.search_engine}/indexnow`, {
124
+ method: 'POST',
125
+ headers: { 'Content-Type': 'application/json' },
126
+ body: JSON.stringify({
127
+ host: siteHost,
128
+ key,
129
+ urlList: args.urls,
130
+ }),
131
+ });
132
+ return {
133
+ content: [{
134
+ type: 'text', text: JSON.stringify({
135
+ status: response.ok ? 'accepted' : 'rejected',
136
+ code: response.status,
137
+ urls_count: args.urls.length,
138
+ search_engine: args.search_engine,
139
+ }, null, 2)
140
+ }],
141
+ };
142
+ }
143
+ catch (error) {
144
+ return {
145
+ content: [{
146
+ type: 'text', text: JSON.stringify({
147
+ error: `IndexNow submission failed: ${error.message}`,
148
+ }, null, 2)
149
+ }],
150
+ };
151
+ }
152
+ });
153
+ // ============================================
154
+ // fetch_sitemap
155
+ // ============================================
156
+ server.tool('fetch_sitemap', 'Fetch and parse a sitemap.xml file, returning all URLs found. Supports sitemap index files (recursively fetches child sitemaps).', {
157
+ sitemap_url: z.string().describe('URL of the sitemap.xml to parse'),
158
+ max_urls: z.number().optional().default(1000).describe('Maximum number of URLs to return'),
159
+ }, async (args) => {
160
+ try {
161
+ const urls = await parseSitemap(args.sitemap_url, args.max_urls || 1000);
162
+ return {
163
+ content: [{
164
+ type: 'text', text: JSON.stringify({
165
+ status: 'success',
166
+ sitemap_url: args.sitemap_url,
167
+ url_count: urls.length,
168
+ urls,
169
+ }, null, 2)
170
+ }],
171
+ };
172
+ }
173
+ catch (error) {
174
+ return {
175
+ content: [{
176
+ type: 'text', text: JSON.stringify({
177
+ error: `Failed to fetch sitemap: ${error.message}`,
178
+ }, null, 2)
179
+ }],
180
+ };
181
+ }
182
+ });
183
+ }
184
+ // ============================================
185
+ // HELPERS
186
+ // ============================================
187
+ async function parseSitemap(url, maxUrls) {
188
+ const response = await fetch(url);
189
+ if (!response.ok)
190
+ throw new Error(`HTTP ${response.status}`);
191
+ const text = await response.text();
192
+ const urls = [];
193
+ // Check for sitemap index
194
+ if (text.includes('<sitemapindex')) {
195
+ const sitemapUrlMatches = text.matchAll(/<loc>([^<]+)<\/loc>/g);
196
+ const childUrls = [];
197
+ for (const match of sitemapUrlMatches) {
198
+ childUrls.push(match[1].trim());
199
+ }
200
+ // Recursively fetch child sitemaps
201
+ for (const childUrl of childUrls) {
202
+ if (urls.length >= maxUrls)
203
+ break;
204
+ const childUrls2 = await parseSitemap(childUrl, maxUrls - urls.length);
205
+ urls.push(...childUrls2);
206
+ }
207
+ }
208
+ else {
209
+ // Standard sitemap
210
+ const locMatches = text.matchAll(/<loc>([^<]+)<\/loc>/g);
211
+ for (const match of locMatches) {
212
+ if (urls.length >= maxUrls)
213
+ break;
214
+ urls.push(match[1].trim());
215
+ }
216
+ }
217
+ return urls;
218
+ }
219
+ //# sourceMappingURL=indexing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexing.js","sourceRoot":"","sources":["../../src/tools/indexing.ts"],"names":[],"mappings":"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"}