From a48002ec699158469a7b34645a0b1cb1b43ec6e0 Mon Sep 17 00:00:00 2001 From: Joan Xie Date: Fri, 12 Sep 2025 11:53:11 -0700 Subject: [PATCH 1/4] feat: add privacy_policies field to manifest schema Add optional privacy_policies array field to manifest.json that allows developers to declare their data handling practices. This field accepts an array of privacy policy statements that describe how the extension collects, uses, and protects user data. - Update manifest schema to include privacy_policies field - Add empty privacy_policies array to all example manifests - Document the new field in MANIFEST.md --- MANIFEST.md | 2 ++ examples/chrome-applescript/manifest.json | 3 ++- examples/file-manager-python/manifest.json | 3 ++- examples/file-system-node/manifest.json | 3 ++- examples/hello-world-node/manifest.json | 3 ++- src/schemas.ts | 1 + 6 files changed, 11 insertions(+), 4 deletions(-) diff --git a/MANIFEST.md b/MANIFEST.md index 08d88fd..aba4d06 100644 --- a/MANIFEST.md +++ b/MANIFEST.md @@ -122,6 +122,7 @@ A full `manifest.json` with most of the optional fields looks like this: "tools_generated": true, "keywords": ["api", "automation", "productivity"], "license": "MIT", + "privacy_policies": [], "compatibility": { "claude_desktop": ">=1.0.0", "platforms": ["darwin", "win32", "linux"], @@ -185,6 +186,7 @@ A full `manifest.json` with most of the optional fields looks like this: - **prompts_generated**: Boolean indicating the server generates additional prompts at runtime (default: false) - **keywords**: Search keywords - **license**: License identifier +- **privacy_policies**: Array of privacy policy statements describing data handling practices - **compatibility**: Compatibility requirements (client app version, platforms, and runtime versions) - **user_config**: User-configurable options for the extension (see User Configuration section) diff --git a/examples/chrome-applescript/manifest.json b/examples/chrome-applescript/manifest.json index cb9261e..a957ce6 100644 --- a/examples/chrome-applescript/manifest.json +++ b/examples/chrome-applescript/manifest.json @@ -70,5 +70,6 @@ "platforms": ["darwin"] }, "keywords": ["chrome", "browser", "remote"], - "license": "MIT" + "license": "MIT", + "privacy_policies": [] } diff --git a/examples/file-manager-python/manifest.json b/examples/file-manager-python/manifest.json index 89546f3..964b2aa 100644 --- a/examples/file-manager-python/manifest.json +++ b/examples/file-manager-python/manifest.json @@ -64,5 +64,6 @@ "runtimes": { "python": ">=3.8.0 <4" } - } + }, + "privacy_policies": [] } diff --git a/examples/file-system-node/manifest.json b/examples/file-system-node/manifest.json index 890ecdb..6a5b757 100644 --- a/examples/file-system-node/manifest.json +++ b/examples/file-system-node/manifest.json @@ -89,5 +89,6 @@ "required": true, "default": [] } - } + }, + "privacy_policies": [] } diff --git a/examples/hello-world-node/manifest.json b/examples/hello-world-node/manifest.json index 30837eb..e2be022 100644 --- a/examples/hello-world-node/manifest.json +++ b/examples/hello-world-node/manifest.json @@ -103,5 +103,6 @@ "runtimes": { "node": ">=16.0.0" } - } + }, + "privacy_policies": [] } diff --git a/src/schemas.ts b/src/schemas.ts index 2b59709..adaca4c 100644 --- a/src/schemas.ts +++ b/src/schemas.ts @@ -100,6 +100,7 @@ export const McpbManifestSchema = z prompts_generated: z.boolean().optional(), keywords: z.array(z.string()).optional(), license: z.string().optional(), + privacy_policies: z.array(z.string()).optional(), compatibility: McpbManifestCompatibilitySchema.optional(), user_config: z .record(z.string(), McpbUserConfigurationOptionSchema) From bd7fdf7e3c4af708e226b8a59ced24aec08bcb82 Mon Sep 17 00:00:00 2001 From: Joan Xie Date: Fri, 12 Sep 2025 11:59:18 -0700 Subject: [PATCH 2/4] docs: update privacy_policies example to show single URL Simplify the privacy_policies field example in the documentation to show a single privacy policy URL. --- MANIFEST.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MANIFEST.md b/MANIFEST.md index aba4d06..6144eea 100644 --- a/MANIFEST.md +++ b/MANIFEST.md @@ -122,7 +122,7 @@ A full `manifest.json` with most of the optional fields looks like this: "tools_generated": true, "keywords": ["api", "automation", "productivity"], "license": "MIT", - "privacy_policies": [], + "privacy_policies": ["https://example.com/privacy"], "compatibility": { "claude_desktop": ">=1.0.0", "platforms": ["darwin", "win32", "linux"], @@ -186,7 +186,7 @@ A full `manifest.json` with most of the optional fields looks like this: - **prompts_generated**: Boolean indicating the server generates additional prompts at runtime (default: false) - **keywords**: Search keywords - **license**: License identifier -- **privacy_policies**: Array of privacy policy statements describing data handling practices +- **privacy_policies**: Array of privacy policy URLs describing data handling practices - **compatibility**: Compatibility requirements (client app version, platforms, and runtime versions) - **user_config**: User-configurable options for the extension (see User Configuration section) From 9d62ba5d509792de9049ecb3158f62e1a9e654c8 Mon Sep 17 00:00:00 2001 From: Joan Xie Date: Fri, 12 Sep 2025 12:02:52 -0700 Subject: [PATCH 3/4] docs: clarify privacy_policies field description for external services Update the privacy_policies field description to be more specific about its purpose - linking to privacy policies of external services that handle user data, as required for extensions connecting to first- or third-party services. --- MANIFEST.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MANIFEST.md b/MANIFEST.md index 6144eea..d129c75 100644 --- a/MANIFEST.md +++ b/MANIFEST.md @@ -186,7 +186,7 @@ A full `manifest.json` with most of the optional fields looks like this: - **prompts_generated**: Boolean indicating the server generates additional prompts at runtime (default: false) - **keywords**: Search keywords - **license**: License identifier -- **privacy_policies**: Array of privacy policy URLs describing data handling practices +- **privacy_policies**: Array of URLs to privacy policies for external services that handle user data. Required when the extension connects to external services (first- or third-party) that process user data. Each URL should link to the respective service's privacy policy document - **compatibility**: Compatibility requirements (client app version, platforms, and runtime versions) - **user_config**: User-configurable options for the extension (see User Configuration section) From bc129a72232d054bc5fea097b9e4eecb36e21657 Mon Sep 17 00:00:00 2001 From: Joan Xie Date: Fri, 12 Sep 2025 12:04:38 -0700 Subject: [PATCH 4/4] docs: bump manifest version to 0.2 Update manifest spec version from 0.1 to 0.2 to reflect the addition of the privacy_policies field. Update last updated date to current date. --- MANIFEST.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MANIFEST.md b/MANIFEST.md index d129c75..eb8ee46 100644 --- a/MANIFEST.md +++ b/MANIFEST.md @@ -1,7 +1,7 @@ # MCPB Manifest.json Spec -Current version: `0.1` -Last updated: 2025-06-17 +Current version: `0.2` +Last updated: 2025-09-12 ## Manifest Schema