Desktop Extensions: One-click local MCP server installation in desktop apps
by modelcontextprotocolTypeScript
Last 12 weeks · 2 commits
5 of 6 standards met
Clarify the MCPB signature format in documentation The signature format documentation in https://github.com/modelcontextprotocol/mcpb/blob/main/CLI.md#signature-structure currently shows a simplified format that doesn't match the actual implementation. This PR corrects the documentation to accurately describe the binary signature structure. Motivation and Context The current documentation states that MCPB signatures use , but the actual implementation uses: A 4-byte little-endian length prefix before the signature DER-encoded (raw binary) signatures, not Base64 This discrepancy causes issues for developers implementing MCPB signing outside of the official CLI. For example, Microsoft is integrating MCPB signing with our enterprise signing service (ESRP), and we discovered the documentation didn't match the actual format expected by . The length prefix is essential because raw DER bytes could contain byte sequences that match , making parsing ambiguous without knowing the exact signature length. How Has This Been Tested? Verified by reading the source code in both the TypeScript implementation (/) and the C#/.NET implementation (/) Signed MCPB files using the correct format outside of the MCPB CLI and verified them with the CLI's command. Breaking Changes None. This is a documentation-only change that corrects the docs to match existing behavior. Types of changes [ ] Bug fix (non-breaking change which fixes an issue) [ ] New feature (non-breaking change which adds functionality) [ ] Breaking change (fix or feature that would cause existing functionality to change) [x] Documentation update Checklist [x] I have read the MCP Documentation [ ] My code follows the repository's style guidelines [ ] New and existing tests pass locally [ ] I have added appropriate error handling [x] I have added or updated documentation as needed Additional context Current documentation (incorrect): Proposed documentation (matches implementation):**
Repository: modelcontextprotocol/mcpb. Description: Desktop Extensions: One-click local MCP server installation in desktop apps Stars: 1738, Forks: 164. Primary language: TypeScript. Languages: TypeScript (92.7%), JavaScript (7.3%). Latest release: v2.1.2 (2mo ago). Open PRs: 13, open issues: 74. Last activity: 1w ago. Community health: 87%. Top contributors: joan-anthropic, felixrieseberg, asklar, MarshallOfSound, domdomegg, himself65, bryan-anthropic, ddworken, guyru, tobinsouth and others.
Is your feature request related to a problem? Please describe. Currently, favorites in Claude Desktop follow a fixed order and cannot be manually rearranged. This disrupts workflow when there are many saved favorites, as the most-used items get mixed in with less relevant ones. Describe the solution you'd like The ability to reorder favorites via drag and drop, or at least by usage frequency or alphabetical order. Describe alternatives you've considered Creating a folder or group for priority favorites would be an acceptable workaround, but manual reordering remains the most practical solution. Additional context Users who rely on Claude Desktop for intensive workflows tend to accumulate many favorites. Being able to organize them according to their own routine would significantly improve the usability of this feature.
Describe the bug** no window or black screen Claude.ai could not solve it. I found some descriptions as below in terminal of my Mac. =============================================== (node:2858) [DEP0180] DeprecationWarning: fs.Stats constructor is deprecated. (Use to show where the warning was created) This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: Error: [@formatjs/intl] An must be provided to format a message. You can either: 1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin) or [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR 2. Configure your config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id) to autofix this issue at nZe (/Applications/Claude.app/Contents/Resources/app.asar/.vite/build/index.js:83:2748) at Sae (/Applications/Claude.app/Contents/Resources/app.asar/.vite/build/index.js:83:4203) at WOt (/Applications/Claude.app/Contents/Resources/app.asar/.vite/build/index.js:705:13101) at RDe (/Applications/Claude.app/Contents/Resources/app.asar/.vite/build/index.js:705:14365) at Hd (/Applications/Claude.app/Contents/Resources/app.asar/.vite/build/index.js:705:15535) at EventEmitter. (/Applications/Claude.app/Contents/Resources/app.asar/.vite/build/index.js:1234:79020) This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: Error: [@formatjs/intl] An must be provided to format a message. You can either: 1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin) or [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR 2. Configure your config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id) to autofix this issue at nZe (/Applications/Claude.app/Contents/Resources/app.asar/.vite/build/index.js:83:2748) at Sae (/Applications/Claude.app/Contents/Resources/app.asar/.vite/build/index.js:83:4203) at WOt (/Applications/Claude.app/Contents/Resources/app.asar/.vite/build/index.js:705:13101) at RDe (/Applications/Claude.app/Contents/Resources/app.asar/.vite/build/index.js:705:14365) at Hd (/Applications/Claude.app/Contents/Resources/app.asar/.vite/build/index.js:705:15535) at CZ (/Applications/Claude.app/Contents/Resources/app.asar/.vite/build/index.js:1234:49037) at z5t (/Applications/Claude.app/Contents/Resources/app.asar/.vite/build/index.js:1234:48325) (node:2858) [DEP0169] DeprecationWarning: behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for vulnerabilities.