pulsemcp-cms-admin-mcp-server 0.10.0 → 0.10.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/build/shared/src/tools/save-mcp-implementation.js +16 -0
- package/build/shared/src/tools/update-mcp-server.js +22 -2
- package/package.json +1 -1
- package/shared/tools/save-mcp-implementation.d.ts +8 -0
- package/shared/tools/save-mcp-implementation.js +16 -0
- package/shared/tools/update-mcp-server.d.ts +2 -2
- package/shared/tools/update-mcp-server.js +22 -2
|
@@ -48,6 +48,9 @@ const PARAM_DESCRIPTIONS = {
|
|
|
48
48
|
github_owner: 'GitHub organization or username that owns the repository.',
|
|
49
49
|
github_repo: 'GitHub repository name (without owner prefix).',
|
|
50
50
|
github_subfolder: 'Subfolder path within the repository, for monorepos. Omit for root-level projects.',
|
|
51
|
+
// Package registry fields (UPDATE only)
|
|
52
|
+
package_registry: "(UPDATE ONLY, SERVER ONLY) Package registry: npm, pypi, cargo, etc. To CLEAR (unlink) the server's registry package, pass an empty string for BOTH `package_registry` and `package_name`. Passing an empty string for only one of the two is rejected with a 422 error.",
|
|
53
|
+
package_name: '(UPDATE ONLY, SERVER ONLY) Package name on the registry (e.g., "@modelcontextprotocol/server-filesystem"). To CLEAR (unlink) the server\'s registry package, pass an empty string for BOTH `package_name` and `package_registry`. Passing an empty string for only one of the two is rejected with a 422 error.',
|
|
51
54
|
// Remote endpoints
|
|
52
55
|
remote: 'Array of remote endpoint configurations for MCP servers. Providing this replaces ALL existing remotes. Omitting leaves them unchanged. Pass an empty array to delete all. Each remote can have: id (existing remote ID or blank for new), url_direct, url_setup, transport (e.g., "sse"), host_platform (e.g., "smithery"), host_infrastructure (e.g., "cloudflare"), authentication_method (e.g., "open"), cost (e.g., "free"), status (defaults to "live"), display_name, and internal_notes.',
|
|
53
56
|
// Canonical URLs
|
|
@@ -90,6 +93,9 @@ const SaveMCPImplementationSchema = z.object({
|
|
|
90
93
|
github_owner: z.string().optional().describe(PARAM_DESCRIPTIONS.github_owner),
|
|
91
94
|
github_repo: z.string().optional().describe(PARAM_DESCRIPTIONS.github_repo),
|
|
92
95
|
github_subfolder: z.string().optional().describe(PARAM_DESCRIPTIONS.github_subfolder),
|
|
96
|
+
// Package registry fields (UPDATE only)
|
|
97
|
+
package_registry: z.string().optional().describe(PARAM_DESCRIPTIONS.package_registry),
|
|
98
|
+
package_name: z.string().optional().describe(PARAM_DESCRIPTIONS.package_name),
|
|
93
99
|
// Remote endpoints
|
|
94
100
|
remote: z
|
|
95
101
|
.array(z.object({
|
|
@@ -208,6 +214,7 @@ Important notes:
|
|
|
208
214
|
- \`classification\` and \`implementation_language\` only apply to servers
|
|
209
215
|
- \`provider_name\` reuses existing provider if it matches a provider's slug
|
|
210
216
|
- Setting mcp_server_id or mcp_client_id to null will unlink the association (UPDATE only)
|
|
217
|
+
- Registry package (UPDATE only): pass an empty string for BOTH \`package_registry\` and \`package_name\` to CLEAR (unlink) the link; passing only one as empty is rejected with a 422 error; omitting both leaves the link unchanged
|
|
211
218
|
- Remote endpoints are for MCP servers only and configure how they can be accessed
|
|
212
219
|
- Canonical URLs help identify the authoritative source for the implementation
|
|
213
220
|
- After creating/updating, use \`get_mcp_server\` to verify the full state including remotes and canonical URLs`,
|
|
@@ -299,6 +306,15 @@ Important notes:
|
|
|
299
306
|
type: 'string',
|
|
300
307
|
description: PARAM_DESCRIPTIONS.github_subfolder,
|
|
301
308
|
},
|
|
309
|
+
// Package registry fields (UPDATE only)
|
|
310
|
+
package_registry: {
|
|
311
|
+
type: 'string',
|
|
312
|
+
description: PARAM_DESCRIPTIONS.package_registry,
|
|
313
|
+
},
|
|
314
|
+
package_name: {
|
|
315
|
+
type: 'string',
|
|
316
|
+
description: PARAM_DESCRIPTIONS.package_name,
|
|
317
|
+
},
|
|
302
318
|
// Remote endpoints
|
|
303
319
|
remote: {
|
|
304
320
|
type: 'array',
|
|
@@ -13,8 +13,8 @@ const PARAM_DESCRIPTIONS = {
|
|
|
13
13
|
provider_slug: 'URL slug for provider (auto-generated from name if omitted)',
|
|
14
14
|
provider_url: 'Website URL for provider',
|
|
15
15
|
source_code: 'GitHub repository information',
|
|
16
|
-
package_registry:
|
|
17
|
-
package_name: 'Package name on the registry (e.g., "@modelcontextprotocol/server-filesystem")',
|
|
16
|
+
package_registry: "Package registry: npm, pypi, cargo, etc. To CLEAR (unlink) the server's registry package, pass an empty string for BOTH `package_registry` and `package_name`. Passing an empty string for only one of the two is rejected with a 422 error.",
|
|
17
|
+
package_name: 'Package name on the registry (e.g., "@modelcontextprotocol/server-filesystem"). To CLEAR (unlink) the server\'s registry package, pass an empty string for BOTH `package_name` and `package_registry`. Passing an empty string for only one of the two is rejected with a 422 error.',
|
|
18
18
|
recommended: 'Mark this server as recommended by PulseMCP',
|
|
19
19
|
verified_no_remote_canonicals: 'Mark that this server has been verified to have no remote canonical URLs (true = verified no remote canonicals exist, false = reset/canonicals found)',
|
|
20
20
|
created_on_override: 'Override the automatically derived created date (ISO date string, e.g., "2025-01-15")',
|
|
@@ -176,6 +176,26 @@ To update an existing remote, include its ID:
|
|
|
176
176
|
}
|
|
177
177
|
\`\`\`
|
|
178
178
|
|
|
179
|
+
## Updating / Clearing the Registry Package Link
|
|
180
|
+
Set the link by providing both fields:
|
|
181
|
+
\`\`\`json
|
|
182
|
+
{
|
|
183
|
+
"implementation_id": 456,
|
|
184
|
+
"package_registry": "npm",
|
|
185
|
+
"package_name": "@modelcontextprotocol/server-filesystem"
|
|
186
|
+
}
|
|
187
|
+
\`\`\`
|
|
188
|
+
|
|
189
|
+
To **clear** (unlink) the registry package, pass an empty string for **both** fields:
|
|
190
|
+
\`\`\`json
|
|
191
|
+
{
|
|
192
|
+
"implementation_id": 456,
|
|
193
|
+
"package_registry": "",
|
|
194
|
+
"package_name": ""
|
|
195
|
+
}
|
|
196
|
+
\`\`\`
|
|
197
|
+
Passing an empty string for only one of the two is rejected with a 422 error ("Package registry and package name must be provided together"); omitting both leaves the link unchanged.
|
|
198
|
+
|
|
179
199
|
## Linking/Creating Provider
|
|
180
200
|
Link existing provider by ID:
|
|
181
201
|
\`\`\`json
|
package/package.json
CHANGED
|
@@ -91,6 +91,14 @@ export declare function saveMCPImplementation(_server: Server, clientFactory: Cl
|
|
|
91
91
|
type: string;
|
|
92
92
|
description: "Subfolder path within the repository, for monorepos. Omit for root-level projects.";
|
|
93
93
|
};
|
|
94
|
+
package_registry: {
|
|
95
|
+
type: string;
|
|
96
|
+
description: "(UPDATE ONLY, SERVER ONLY) Package registry: npm, pypi, cargo, etc. To CLEAR (unlink) the server's registry package, pass an empty string for BOTH `package_registry` and `package_name`. Passing an empty string for only one of the two is rejected with a 422 error.";
|
|
97
|
+
};
|
|
98
|
+
package_name: {
|
|
99
|
+
type: string;
|
|
100
|
+
description: "(UPDATE ONLY, SERVER ONLY) Package name on the registry (e.g., \"@modelcontextprotocol/server-filesystem\"). To CLEAR (unlink) the server's registry package, pass an empty string for BOTH `package_name` and `package_registry`. Passing an empty string for only one of the two is rejected with a 422 error.";
|
|
101
|
+
};
|
|
94
102
|
remote: {
|
|
95
103
|
type: string;
|
|
96
104
|
items: {
|
|
@@ -48,6 +48,9 @@ const PARAM_DESCRIPTIONS = {
|
|
|
48
48
|
github_owner: 'GitHub organization or username that owns the repository.',
|
|
49
49
|
github_repo: 'GitHub repository name (without owner prefix).',
|
|
50
50
|
github_subfolder: 'Subfolder path within the repository, for monorepos. Omit for root-level projects.',
|
|
51
|
+
// Package registry fields (UPDATE only)
|
|
52
|
+
package_registry: "(UPDATE ONLY, SERVER ONLY) Package registry: npm, pypi, cargo, etc. To CLEAR (unlink) the server's registry package, pass an empty string for BOTH `package_registry` and `package_name`. Passing an empty string for only one of the two is rejected with a 422 error.",
|
|
53
|
+
package_name: '(UPDATE ONLY, SERVER ONLY) Package name on the registry (e.g., "@modelcontextprotocol/server-filesystem"). To CLEAR (unlink) the server\'s registry package, pass an empty string for BOTH `package_name` and `package_registry`. Passing an empty string for only one of the two is rejected with a 422 error.',
|
|
51
54
|
// Remote endpoints
|
|
52
55
|
remote: 'Array of remote endpoint configurations for MCP servers. Providing this replaces ALL existing remotes. Omitting leaves them unchanged. Pass an empty array to delete all. Each remote can have: id (existing remote ID or blank for new), url_direct, url_setup, transport (e.g., "sse"), host_platform (e.g., "smithery"), host_infrastructure (e.g., "cloudflare"), authentication_method (e.g., "open"), cost (e.g., "free"), status (defaults to "live"), display_name, and internal_notes.',
|
|
53
56
|
// Canonical URLs
|
|
@@ -90,6 +93,9 @@ const SaveMCPImplementationSchema = z.object({
|
|
|
90
93
|
github_owner: z.string().optional().describe(PARAM_DESCRIPTIONS.github_owner),
|
|
91
94
|
github_repo: z.string().optional().describe(PARAM_DESCRIPTIONS.github_repo),
|
|
92
95
|
github_subfolder: z.string().optional().describe(PARAM_DESCRIPTIONS.github_subfolder),
|
|
96
|
+
// Package registry fields (UPDATE only)
|
|
97
|
+
package_registry: z.string().optional().describe(PARAM_DESCRIPTIONS.package_registry),
|
|
98
|
+
package_name: z.string().optional().describe(PARAM_DESCRIPTIONS.package_name),
|
|
93
99
|
// Remote endpoints
|
|
94
100
|
remote: z
|
|
95
101
|
.array(z.object({
|
|
@@ -208,6 +214,7 @@ Important notes:
|
|
|
208
214
|
- \`classification\` and \`implementation_language\` only apply to servers
|
|
209
215
|
- \`provider_name\` reuses existing provider if it matches a provider's slug
|
|
210
216
|
- Setting mcp_server_id or mcp_client_id to null will unlink the association (UPDATE only)
|
|
217
|
+
- Registry package (UPDATE only): pass an empty string for BOTH \`package_registry\` and \`package_name\` to CLEAR (unlink) the link; passing only one as empty is rejected with a 422 error; omitting both leaves the link unchanged
|
|
211
218
|
- Remote endpoints are for MCP servers only and configure how they can be accessed
|
|
212
219
|
- Canonical URLs help identify the authoritative source for the implementation
|
|
213
220
|
- After creating/updating, use \`get_mcp_server\` to verify the full state including remotes and canonical URLs`,
|
|
@@ -299,6 +306,15 @@ Important notes:
|
|
|
299
306
|
type: 'string',
|
|
300
307
|
description: PARAM_DESCRIPTIONS.github_subfolder,
|
|
301
308
|
},
|
|
309
|
+
// Package registry fields (UPDATE only)
|
|
310
|
+
package_registry: {
|
|
311
|
+
type: 'string',
|
|
312
|
+
description: PARAM_DESCRIPTIONS.package_registry,
|
|
313
|
+
},
|
|
314
|
+
package_name: {
|
|
315
|
+
type: 'string',
|
|
316
|
+
description: PARAM_DESCRIPTIONS.package_name,
|
|
317
|
+
},
|
|
302
318
|
// Remote endpoints
|
|
303
319
|
remote: {
|
|
304
320
|
type: 'array',
|
|
@@ -78,11 +78,11 @@ export declare function updateMCPServer(_server: Server, clientFactory: ClientFa
|
|
|
78
78
|
};
|
|
79
79
|
package_registry: {
|
|
80
80
|
type: string;
|
|
81
|
-
description: "Package registry: npm, pypi, cargo, etc.";
|
|
81
|
+
description: "Package registry: npm, pypi, cargo, etc. To CLEAR (unlink) the server's registry package, pass an empty string for BOTH `package_registry` and `package_name`. Passing an empty string for only one of the two is rejected with a 422 error.";
|
|
82
82
|
};
|
|
83
83
|
package_name: {
|
|
84
84
|
type: string;
|
|
85
|
-
description: "Package name on the registry (e.g., \"@modelcontextprotocol/server-filesystem\")";
|
|
85
|
+
description: "Package name on the registry (e.g., \"@modelcontextprotocol/server-filesystem\"). To CLEAR (unlink) the server's registry package, pass an empty string for BOTH `package_name` and `package_registry`. Passing an empty string for only one of the two is rejected with a 422 error.";
|
|
86
86
|
};
|
|
87
87
|
recommended: {
|
|
88
88
|
type: string;
|
|
@@ -13,8 +13,8 @@ const PARAM_DESCRIPTIONS = {
|
|
|
13
13
|
provider_slug: 'URL slug for provider (auto-generated from name if omitted)',
|
|
14
14
|
provider_url: 'Website URL for provider',
|
|
15
15
|
source_code: 'GitHub repository information',
|
|
16
|
-
package_registry:
|
|
17
|
-
package_name: 'Package name on the registry (e.g., "@modelcontextprotocol/server-filesystem")',
|
|
16
|
+
package_registry: "Package registry: npm, pypi, cargo, etc. To CLEAR (unlink) the server's registry package, pass an empty string for BOTH `package_registry` and `package_name`. Passing an empty string for only one of the two is rejected with a 422 error.",
|
|
17
|
+
package_name: 'Package name on the registry (e.g., "@modelcontextprotocol/server-filesystem"). To CLEAR (unlink) the server\'s registry package, pass an empty string for BOTH `package_name` and `package_registry`. Passing an empty string for only one of the two is rejected with a 422 error.',
|
|
18
18
|
recommended: 'Mark this server as recommended by PulseMCP',
|
|
19
19
|
verified_no_remote_canonicals: 'Mark that this server has been verified to have no remote canonical URLs (true = verified no remote canonicals exist, false = reset/canonicals found)',
|
|
20
20
|
created_on_override: 'Override the automatically derived created date (ISO date string, e.g., "2025-01-15")',
|
|
@@ -176,6 +176,26 @@ To update an existing remote, include its ID:
|
|
|
176
176
|
}
|
|
177
177
|
\`\`\`
|
|
178
178
|
|
|
179
|
+
## Updating / Clearing the Registry Package Link
|
|
180
|
+
Set the link by providing both fields:
|
|
181
|
+
\`\`\`json
|
|
182
|
+
{
|
|
183
|
+
"implementation_id": 456,
|
|
184
|
+
"package_registry": "npm",
|
|
185
|
+
"package_name": "@modelcontextprotocol/server-filesystem"
|
|
186
|
+
}
|
|
187
|
+
\`\`\`
|
|
188
|
+
|
|
189
|
+
To **clear** (unlink) the registry package, pass an empty string for **both** fields:
|
|
190
|
+
\`\`\`json
|
|
191
|
+
{
|
|
192
|
+
"implementation_id": 456,
|
|
193
|
+
"package_registry": "",
|
|
194
|
+
"package_name": ""
|
|
195
|
+
}
|
|
196
|
+
\`\`\`
|
|
197
|
+
Passing an empty string for only one of the two is rejected with a 422 error ("Package registry and package name must be provided together"); omitting both leaves the link unchanged.
|
|
198
|
+
|
|
179
199
|
## Linking/Creating Provider
|
|
180
200
|
Link existing provider by ID:
|
|
181
201
|
\`\`\`json
|