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
This commit is contained in:
Joan Xie 2025-09-12 11:53:11 -07:00
commit a48002ec69
No known key found for this signature in database
6 changed files with 11 additions and 4 deletions

View file

@ -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)

View file

@ -70,5 +70,6 @@
"platforms": ["darwin"]
},
"keywords": ["chrome", "browser", "remote"],
"license": "MIT"
"license": "MIT",
"privacy_policies": []
}

View file

@ -64,5 +64,6 @@
"runtimes": {
"python": ">=3.8.0 <4"
}
}
},
"privacy_policies": []
}

View file

@ -89,5 +89,6 @@
"required": true,
"default": []
}
}
},
"privacy_policies": []
}

View file

@ -103,5 +103,6 @@
"runtimes": {
"node": ">=16.0.0"
}
}
},
"privacy_policies": []
}

View file

@ -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)