Skip to main content
Glama

Claude Desktop Commander MCP

# Publishing Guide for Desktop Commander MCP This document outlines the complete process for publishing new versions of Desktop Commander to both NPM and the MCP Registry. ## Prerequisites - Node.js 18+ installed - NPM account with publish permissions to `@wonderwhy-er/desktop-commander` - GitHub account with access to `wonderwhy-er/DesktopCommanderMCP` - `mcp-publisher` CLI tool installed: `brew install mcp-publisher` ## Publishing Process ### 1. Version Bump Choose the appropriate version bump based on your changes: ```bash # Patch version (0.2.14 → 0.2.15) - Bug fixes, small improvements npm run bump # Minor version (0.2.14 → 0.3.0) - New features, backwards compatible npm run bump:minor # Major version (0.2.14 → 1.0.0) - Breaking changes npm run bump:major ``` This script automatically updates: - `package.json` version - `server.json` version and packages array - `src/version.ts` version ### 2. Build and Test ```bash # Build the project to ensure everything compiles npm run build # Run tests to ensure quality npm test # Optional: Test locally if needed npm run setup:debug ``` ### 3. Commit and Tag ```bash # Stage the version files git add package.json server.json src/version.ts # Commit with descriptive message git commit -m "Bump version to X.Y.Z - Brief description of changes - Notable features or fixes - Any breaking changes" # Create and push git tag git tag vX.Y.Z git push origin main git push origin vX.Y.Z ``` ### 4. Publish to NPM ```bash # Publish to NPM registry npm publish # Verify publication npm view @wonderwhy-er/desktop-commander version ``` **Note**: Make sure you're logged into NPM with the correct account: ```bash npm whoami # If not logged in: npm login ``` ### 5. Publish to MCP Registry ```bash # Authenticate with GitHub (if token expired) mcp-publisher login github # Follow the device flow authentication # Publish to MCP Registry mcp-publisher publish # Verify publication curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.wonderwhy-er/desktop-commander" | jq '.servers[0].version' ``` ### 6. Create GitHub Release (Optional but Recommended) 1. Go to https://github.com/wonderwhy-er/DesktopCommanderMCP/releases 2. Click "Create a new release" 3. Select the tag you just created (`vX.Y.Z`) 4. Fill in release notes with: - **What's New**: New features and improvements - **Bug Fixes**: Issues resolved - **Breaking Changes**: If any (for major versions) - **Installation**: Reference to updated installation methods ## Complete Example Workflow ```bash # 1. Bump version (patch example) npm run bump # 2. Build and test npm run build npm test # 3. Commit and tag git add package.json server.json src/version.ts git commit -m "Bump version to 0.2.15 - Fixed issue with file search performance - Added better error handling for process timeouts - Updated documentation" git tag v0.2.15 git push origin main git push origin v0.2.15 # 4. Publish to NPM npm publish # 5. Publish to MCP Registry mcp-publisher publish # 6. Verify both publications npm view @wonderwhy-er/desktop-commander version curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.wonderwhy-er/desktop-commander" | jq '.servers[0].version' ``` ## Troubleshooting ### NPM Publishing Issues - **Authentication Error**: Run `npm login` and verify with `npm whoami` - **Permission Error**: Ensure you have publish rights to the `@wonderwhy-er` scope - **Version Already Exists**: You cannot republish the same version. Bump the version again. ### MCP Registry Issues - **Authentication Expired**: Run `mcp-publisher login github` and complete device flow - **Repository URL Invalid**: Ensure the GitHub repository is public and accessible - **Server.json Validation**: Check that the format matches the schema requirements ### Common Mistakes to Avoid 1. **Forgetting to build**: Always run `npm run build` before publishing 2. **Inconsistent versions**: Use the bump scripts to keep all files in sync 3. **Missing git tags**: Tags help track releases and are expected by many tools 4. **Not testing**: Test the build locally before publishing 5. **Publishing without committing**: Always commit version changes before publishing ## Registry Information - **NPM Package**: https://www.npmjs.com/package/@wonderwhy-er/desktop-commander - **MCP Registry**: https://registry.modelcontextprotocol.io/ - **Server ID**: `490703ba-12b3-48d8-81ef-056010280a9a` - **GitHub Repository**: https://github.com/wonderwhy-er/DesktopCommanderMCP ## Version Sync Script Details The `scripts/sync-version.js` script ensures version consistency by: 1. Reading the version from `package.json` 2. Optionally bumping it (patch/minor/major) 3. Writing the updated version to: - `package.json` - `server.json` (both main version and packages array) - `src/version.ts` This prevents version mismatches between NPM and MCP Registry publications.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wonderwhy-er/DesktopCommanderMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server