pulsemcp-cms-admin-mcp-server 0.9.7 → 0.9.9

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.
@@ -1,11 +1,14 @@
1
1
  import { z } from 'zod';
2
2
  const PARAM_DESCRIPTIONS = {
3
- status: 'Filter by processing status: "pending" (unprocessed, default), "processed", or "all"',
3
+ status: 'Filter by processing status: "pending" (unprocessed, default), "processed", "needs_indexing" (awaiting indexing), or "all"',
4
4
  page: 'Page number for pagination. Default: 1',
5
5
  per_page: 'Results per page, range 1-100. Default: 50',
6
6
  };
7
7
  const ListDiscoveredUrlsSchema = z.object({
8
- status: z.enum(['pending', 'processed', 'all']).optional().describe(PARAM_DESCRIPTIONS.status),
8
+ status: z
9
+ .enum(['pending', 'processed', 'needs_indexing', 'all'])
10
+ .optional()
11
+ .describe(PARAM_DESCRIPTIONS.status),
9
12
  page: z.number().min(1).optional().describe(PARAM_DESCRIPTIONS.page),
10
13
  per_page: z.number().min(1).max(100).optional().describe(PARAM_DESCRIPTIONS.per_page),
11
14
  });
@@ -34,13 +37,14 @@ Example response:
34
37
  Use cases:
35
38
  - Browse unprocessed discovered URLs for review
36
39
  - Page through pending URLs to process them into MCP implementations
40
+ - Query needs_indexing URLs for the daily ingest pipeline
37
41
  - Check processed URLs for audit purposes`,
38
42
  inputSchema: {
39
43
  type: 'object',
40
44
  properties: {
41
45
  status: {
42
46
  type: 'string',
43
- enum: ['pending', 'processed', 'all'],
47
+ enum: ['pending', 'processed', 'needs_indexing', 'all'],
44
48
  description: PARAM_DESCRIPTIONS.status,
45
49
  },
46
50
  page: { type: 'number', minimum: 1, description: PARAM_DESCRIPTIONS.page },
@@ -1,13 +1,15 @@
1
1
  import { z } from 'zod';
2
2
  const PARAM_DESCRIPTIONS = {
3
3
  id: 'The ID of the discovered URL to mark as processed',
4
- result: 'Processing result: "posted" (created MCP implementation), "skipped" (not relevant), "rejected" (invalid), or "error" (processing failed)',
4
+ result: 'Processing result: "posted" (published MCP implementation), "drafted" (created draft MCP implementation), "skipped" (not relevant), "rejected" (invalid), "error" (processing failed), or "needs_indexing" (awaiting indexing)',
5
5
  notes: 'Reason for skip/reject/error (e.g., "Not an MCP server", "Duplicate of ID 5678")',
6
- mcp_implementation_id: 'The ID of the created mcp_implementation (only when result is "posted")',
6
+ mcp_implementation_id: 'The ID of the created mcp_implementation (when result is "posted" or "drafted")',
7
7
  };
8
8
  const MarkDiscoveredUrlProcessedSchema = z.object({
9
9
  id: z.number().describe(PARAM_DESCRIPTIONS.id),
10
- result: z.enum(['posted', 'skipped', 'rejected', 'error']).describe(PARAM_DESCRIPTIONS.result),
10
+ result: z
11
+ .enum(['posted', 'skipped', 'rejected', 'error', 'needs_indexing', 'drafted'])
12
+ .describe(PARAM_DESCRIPTIONS.result),
11
13
  notes: z.string().optional().describe(PARAM_DESCRIPTIONS.notes),
12
14
  mcp_implementation_id: z.number().optional().describe(PARAM_DESCRIPTIONS.mcp_implementation_id),
13
15
  });
@@ -19,17 +21,19 @@ export function markDiscoveredUrlProcessed(_server, clientFactory) {
19
21
  Idempotent — calling on an already-processed URL updates the fields.
20
22
 
21
23
  Use cases:
22
- - Mark a URL as "posted" after creating an MCP implementation from it
24
+ - Mark a URL as "posted" after publishing an MCP implementation from it
25
+ - Mark a URL as "drafted" after creating a draft MCP implementation from it
23
26
  - Mark a URL as "skipped" if it's not relevant (e.g., not an MCP server)
24
27
  - Mark a URL as "rejected" if it's invalid or a duplicate
25
- - Mark a URL as "error" if processing failed`,
28
+ - Mark a URL as "error" if processing failed
29
+ - Mark a URL as "needs_indexing" to flag it for the indexing pipeline`,
26
30
  inputSchema: {
27
31
  type: 'object',
28
32
  properties: {
29
33
  id: { type: 'number', description: PARAM_DESCRIPTIONS.id },
30
34
  result: {
31
35
  type: 'string',
32
- enum: ['posted', 'skipped', 'rejected', 'error'],
36
+ enum: ['posted', 'skipped', 'rejected', 'error', 'needs_indexing', 'drafted'],
33
37
  description: PARAM_DESCRIPTIONS.result,
34
38
  },
35
39
  notes: { type: 'string', description: PARAM_DESCRIPTIONS.notes },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pulsemcp-cms-admin-mcp-server",
3
- "version": "0.9.7",
3
+ "version": "0.9.9",
4
4
  "description": "Local implementation of PulseMCP CMS Admin MCP server",
5
5
  "mcpName": "com.pulsemcp.servers/pulsemcp-cms-admin",
6
6
  "main": "build/index.js",
@@ -1,6 +1,6 @@
1
1
  import type { DiscoveredUrlsResponse } from '../../types.js';
2
2
  export declare function getDiscoveredUrls(apiKey: string, baseUrl: string, params?: {
3
- status?: 'pending' | 'processed' | 'all';
3
+ status?: 'pending' | 'processed' | 'needs_indexing' | 'all';
4
4
  page?: number;
5
5
  per_page?: number;
6
6
  }): Promise<DiscoveredUrlsResponse>;
@@ -163,7 +163,7 @@ export interface IPulseMCPAdminClient {
163
163
  getProctorRuns(params?: GetProctorRunsParams): Promise<ProctorRunsResponse>;
164
164
  getProctorMetadata(): Promise<ProctorMetadataResponse>;
165
165
  getDiscoveredUrls(params?: {
166
- status?: 'pending' | 'processed' | 'all';
166
+ status?: 'pending' | 'processed' | 'needs_indexing' | 'all';
167
167
  page?: number;
168
168
  per_page?: number;
169
169
  }): Promise<DiscoveredUrlsResponse>;
@@ -336,7 +336,7 @@ export declare class PulseMCPAdminClient implements IPulseMCPAdminClient {
336
336
  getProctorRuns(params?: GetProctorRunsParams): Promise<ProctorRunsResponse>;
337
337
  getProctorMetadata(): Promise<ProctorMetadataResponse>;
338
338
  getDiscoveredUrls(params?: {
339
- status?: 'pending' | 'processed' | 'all';
339
+ status?: 'pending' | 'processed' | 'needs_indexing' | 'all';
340
340
  page?: number;
341
341
  per_page?: number;
342
342
  }): Promise<DiscoveredUrlsResponse>;
@@ -9,7 +9,7 @@ export declare function listDiscoveredUrls(_server: Server, clientFactory: Clien
9
9
  status: {
10
10
  type: string;
11
11
  enum: string[];
12
- description: "Filter by processing status: \"pending\" (unprocessed, default), \"processed\", or \"all\"";
12
+ description: "Filter by processing status: \"pending\" (unprocessed, default), \"processed\", \"needs_indexing\" (awaiting indexing), or \"all\"";
13
13
  };
14
14
  page: {
15
15
  type: string;
@@ -1,11 +1,14 @@
1
1
  import { z } from 'zod';
2
2
  const PARAM_DESCRIPTIONS = {
3
- status: 'Filter by processing status: "pending" (unprocessed, default), "processed", or "all"',
3
+ status: 'Filter by processing status: "pending" (unprocessed, default), "processed", "needs_indexing" (awaiting indexing), or "all"',
4
4
  page: 'Page number for pagination. Default: 1',
5
5
  per_page: 'Results per page, range 1-100. Default: 50',
6
6
  };
7
7
  const ListDiscoveredUrlsSchema = z.object({
8
- status: z.enum(['pending', 'processed', 'all']).optional().describe(PARAM_DESCRIPTIONS.status),
8
+ status: z
9
+ .enum(['pending', 'processed', 'needs_indexing', 'all'])
10
+ .optional()
11
+ .describe(PARAM_DESCRIPTIONS.status),
9
12
  page: z.number().min(1).optional().describe(PARAM_DESCRIPTIONS.page),
10
13
  per_page: z.number().min(1).max(100).optional().describe(PARAM_DESCRIPTIONS.per_page),
11
14
  });
@@ -34,13 +37,14 @@ Example response:
34
37
  Use cases:
35
38
  - Browse unprocessed discovered URLs for review
36
39
  - Page through pending URLs to process them into MCP implementations
40
+ - Query needs_indexing URLs for the daily ingest pipeline
37
41
  - Check processed URLs for audit purposes`,
38
42
  inputSchema: {
39
43
  type: 'object',
40
44
  properties: {
41
45
  status: {
42
46
  type: 'string',
43
- enum: ['pending', 'processed', 'all'],
47
+ enum: ['pending', 'processed', 'needs_indexing', 'all'],
44
48
  description: PARAM_DESCRIPTIONS.status,
45
49
  },
46
50
  page: { type: 'number', minimum: 1, description: PARAM_DESCRIPTIONS.page },
@@ -13,7 +13,7 @@ export declare function markDiscoveredUrlProcessed(_server: Server, clientFactor
13
13
  result: {
14
14
  type: string;
15
15
  enum: string[];
16
- description: "Processing result: \"posted\" (created MCP implementation), \"skipped\" (not relevant), \"rejected\" (invalid), or \"error\" (processing failed)";
16
+ description: "Processing result: \"posted\" (published MCP implementation), \"drafted\" (created draft MCP implementation), \"skipped\" (not relevant), \"rejected\" (invalid), \"error\" (processing failed), or \"needs_indexing\" (awaiting indexing)";
17
17
  };
18
18
  notes: {
19
19
  type: string;
@@ -21,7 +21,7 @@ export declare function markDiscoveredUrlProcessed(_server: Server, clientFactor
21
21
  };
22
22
  mcp_implementation_id: {
23
23
  type: string;
24
- description: "The ID of the created mcp_implementation (only when result is \"posted\")";
24
+ description: "The ID of the created mcp_implementation (when result is \"posted\" or \"drafted\")";
25
25
  };
26
26
  };
27
27
  required: string[];
@@ -1,13 +1,15 @@
1
1
  import { z } from 'zod';
2
2
  const PARAM_DESCRIPTIONS = {
3
3
  id: 'The ID of the discovered URL to mark as processed',
4
- result: 'Processing result: "posted" (created MCP implementation), "skipped" (not relevant), "rejected" (invalid), or "error" (processing failed)',
4
+ result: 'Processing result: "posted" (published MCP implementation), "drafted" (created draft MCP implementation), "skipped" (not relevant), "rejected" (invalid), "error" (processing failed), or "needs_indexing" (awaiting indexing)',
5
5
  notes: 'Reason for skip/reject/error (e.g., "Not an MCP server", "Duplicate of ID 5678")',
6
- mcp_implementation_id: 'The ID of the created mcp_implementation (only when result is "posted")',
6
+ mcp_implementation_id: 'The ID of the created mcp_implementation (when result is "posted" or "drafted")',
7
7
  };
8
8
  const MarkDiscoveredUrlProcessedSchema = z.object({
9
9
  id: z.number().describe(PARAM_DESCRIPTIONS.id),
10
- result: z.enum(['posted', 'skipped', 'rejected', 'error']).describe(PARAM_DESCRIPTIONS.result),
10
+ result: z
11
+ .enum(['posted', 'skipped', 'rejected', 'error', 'needs_indexing', 'drafted'])
12
+ .describe(PARAM_DESCRIPTIONS.result),
11
13
  notes: z.string().optional().describe(PARAM_DESCRIPTIONS.notes),
12
14
  mcp_implementation_id: z.number().optional().describe(PARAM_DESCRIPTIONS.mcp_implementation_id),
13
15
  });
@@ -19,17 +21,19 @@ export function markDiscoveredUrlProcessed(_server, clientFactory) {
19
21
  Idempotent — calling on an already-processed URL updates the fields.
20
22
 
21
23
  Use cases:
22
- - Mark a URL as "posted" after creating an MCP implementation from it
24
+ - Mark a URL as "posted" after publishing an MCP implementation from it
25
+ - Mark a URL as "drafted" after creating a draft MCP implementation from it
23
26
  - Mark a URL as "skipped" if it's not relevant (e.g., not an MCP server)
24
27
  - Mark a URL as "rejected" if it's invalid or a duplicate
25
- - Mark a URL as "error" if processing failed`,
28
+ - Mark a URL as "error" if processing failed
29
+ - Mark a URL as "needs_indexing" to flag it for the indexing pipeline`,
26
30
  inputSchema: {
27
31
  type: 'object',
28
32
  properties: {
29
33
  id: { type: 'number', description: PARAM_DESCRIPTIONS.id },
30
34
  result: {
31
35
  type: 'string',
32
- enum: ['posted', 'skipped', 'rejected', 'error'],
36
+ enum: ['posted', 'skipped', 'rejected', 'error', 'needs_indexing', 'drafted'],
33
37
  description: PARAM_DESCRIPTIONS.result,
34
38
  },
35
39
  notes: { type: 'string', description: PARAM_DESCRIPTIONS.notes },
package/shared/types.d.ts CHANGED
@@ -750,7 +750,7 @@ export interface ProctorMetadataResponse {
750
750
  runtimes: ProctorRuntime[];
751
751
  exams: ProctorExam[];
752
752
  }
753
- export type DiscoveredUrlResult = 'posted' | 'skipped' | 'rejected' | 'error';
753
+ export type DiscoveredUrlResult = 'posted' | 'skipped' | 'rejected' | 'error' | 'needs_indexing' | 'drafted';
754
754
  export interface DiscoveredUrl {
755
755
  id: number;
756
756
  url: string;