From a48002ec699158469a7b34645a0b1cb1b43ec6e0 Mon Sep 17 00:00:00 2001 From: Joan Xie Date: Fri, 12 Sep 2025 11:53:11 -0700 Subject: [PATCH] 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)