Skip to main content
Glama
NPM_PACKAGE_CHECKLIST.md8.77 kB
# NPM Package Publication Checklist **Package**: faker-mcp-server **Version**: 1.0.0 **Date**: 2025-11-05 This checklist ensures the package is properly prepared for npm publication and provides a high-quality experience for users. --- ## 📋 Pre-Publication Checklist ### 1. Package.json Metadata - [x] **name**: `faker-mcp-server` - Clear, descriptive, follows npm naming conventions - [x] **version**: `1.0.0` - Follows semantic versioning (semver) - [x] **description**: "Model Context Protocol (MCP) server for generating fake/mock data using Faker.js" - Clear, concise summary - [ ] **author**: Currently empty - Should add author name/email (e.g., `"Your Name <your.email@example.com>"`) - [ ] **repository**: Missing - Should add GitHub repository URL ```json "repository": { "type": "git", "url": "git+https://github.com/username/faker-mcp.git" } ``` - [ ] **bugs**: Missing - Should add issue tracker URL ```json "bugs": { "url": "https://github.com/username/faker-mcp/issues" } ``` - [ ] **homepage**: Missing - Should add project homepage URL ```json "homepage": "https://github.com/username/faker-mcp#readme" ``` - [x] **license**: `MIT` - Properly specified - [x] **keywords**: Comprehensive and relevant - includes mcp, faker, test-data, etc. - [x] **engines**: `node >= 18.0.0` - Clearly specifies minimum Node.js version - [x] **type**: `module` - ESM module type specified - [x] **main**: `./dist/index.js` - Correct entry point - [x] **bin**: Correctly configured for CLI usage ### 2. Package Files Configuration - [x] **files**: Array specifies what gets published (`dist`, `README.md`, `LICENSE`) - [x] **dist/**: Built artifacts included - [x] **README.md**: Comprehensive documentation exists - [x] **LICENSE**: MIT license file exists ### 3. Dependencies - [x] **Production dependencies**: All required deps in `dependencies` section - `@faker-js/faker`, `@modelcontextprotocol/sdk`, `zod`, `zod-to-json-schema`, `randexp` - [x] **Dev dependencies**: All dev tools in `devDependencies` - [x] **No unnecessary dependencies**: Package is lean with minimal deps - [ ] **Dependency versions**: Check for outdated packages ```bash npm outdated ``` - [ ] **Security audit**: Run security check ```bash npm audit ``` ### 4. Scripts - [x] **build**: Production build script exists - [x] **test**: Test script exists and runs successfully - [x] **lint**: Linting script exists - [x] **format**: Code formatting script exists - [x] **prepare**: Husky install for git hooks - [ ] **prepublishOnly**: Consider adding pre-publish checks ```json "prepublishOnly": "npm run lint && npm run test && npm run build" ``` ### 5. Documentation - [x] **README.md**: Comprehensive documentation exists - [x] Installation instructions - [x] Usage examples - [x] API documentation - [x] Configuration options - [x] MCP client setup examples - [x] **CHANGELOG.md**: Version history documented - [x] **LICENSE**: MIT license file present - [ ] **CONTRIBUTING.md**: Guidelines for contributors (optional for 1.0) - [ ] **CODE_OF_CONDUCT.md**: Community guidelines (optional for 1.0) ### 6. Code Quality - [x] **TypeScript**: Strict mode enabled, no type errors - [x] **Linting**: ESLint configured and passing - [x] **Formatting**: Prettier configured and applied - [x] **Tests**: Comprehensive test suite with 90%+ coverage - [x] **Build**: Production build succeeds without errors ### 7. Testing & Validation - [ ] **Run all tests**: Ensure 100% pass rate ```bash npm test ``` - [ ] **Check test coverage**: Verify 90%+ coverage ```bash npm run test:coverage ``` - [ ] **Type checking**: No TypeScript errors ```bash npm run typecheck ``` - [ ] **Linting**: No lint errors ```bash npm run lint ``` - [ ] **Build verification**: Clean build succeeds ```bash rm -rf dist && npm run build ``` - [ ] **Package size check**: Verify reasonable bundle size ```bash npm pack --dry-run ``` ### 8. Runtime Verification - [ ] **Installation test**: Install from tarball ```bash npm pack npm install -g faker-mcp-server-1.0.0.tgz ``` - [ ] **Binary test**: Verify CLI command works ```bash faker-mcp-server --version ``` - [ ] **MCP Integration**: Test with MCP Inspector or Claude Desktop - [ ] **Cross-platform**: Test on macOS, Linux, Windows (if possible) ### 9. Security & Privacy - [x] **No secrets**: No API keys, tokens, or credentials in code - [x] **No personal data**: No personal information committed - [ ] **Security audit**: Run npm audit and fix issues ```bash npm audit fix ``` - [x] **.gitignore**: Properly configured to exclude sensitive files - [x] **.npmignore** or **files**: Ensures only necessary files published ### 10. Version Control - [ ] **Git tag**: Create version tag after publish ```bash git tag -a v1.0.0 -m "Release version 1.0.0" git push origin v1.0.0 ``` - [ ] **Clean working directory**: No uncommitted changes ```bash git status ``` - [ ] **Changelog updated**: CHANGELOG.md reflects current version --- ## 🚀 Publication Process ### Pre-Flight Checks 1. [ ] Run full test suite: `npm test` 2. [ ] Check test coverage: `npm run test:coverage` 3. [ ] Run linter: `npm run lint` 4. [ ] Check formatting: `npm run format:check` 5. [ ] Type check: `npm run typecheck` 6. [ ] Clean build: `rm -rf dist && npm run build` 7. [ ] Verify build output: Check `dist/` directory 8. [ ] Test package locally: `npm pack && npm install -g faker-mcp-server-1.0.0.tgz` ### NPM Account Setup 1. [ ] NPM account exists: https://www.npmjs.com/signup 2. [ ] Email verified 3. [ ] Two-factor authentication enabled (recommended) 4. [ ] Login to npm: `npm login` ### Package Name Availability 1. [ ] Check name availability: `npm view faker-mcp-server` - If returns error "E404", name is available - If returns package info, name is taken (choose alternative) ### Dry Run Publication 1. [ ] Test package contents: ```bash npm pack --dry-run ``` 2. [ ] Review file list - ensure no unwanted files included 3. [ ] Check package size - aim for < 1MB ### Actual Publication 1. [ ] **First time publish**: ```bash npm publish ``` 2. [ ] **For scoped packages** (if using @username/faker-mcp-server): ```bash npm publish --access public ``` ### Post-Publication 1. [ ] Verify on npmjs.com: https://www.npmjs.com/package/faker-mcp-server 2. [ ] Test installation: `npm install -g faker-mcp-server` 3. [ ] Test functionality: Run basic MCP server tests 4. [ ] Create git tag: `git tag -a v1.0.0 -m "Release version 1.0.0"` 5. [ ] Push tag: `git push origin v1.0.0` 6. [ ] Create GitHub release (if using GitHub) 7. [ ] Announce release (optional): social media, Discord, etc. --- ## 📝 Package.json Updates Needed ### Required Updates ```json { "author": "Your Name <your.email@example.com>", "repository": { "type": "git", "url": "git+https://github.com/username/faker-mcp.git" }, "bugs": { "url": "https://github.com/username/faker-mcp/issues" }, "homepage": "https://github.com/username/faker-mcp#readme" } ``` ### Optional Enhancements ```json { "scripts": { "prepublishOnly": "npm run lint && npm run test && npm run build" }, "publishConfig": { "access": "public" } } ``` --- ## 🔍 Quality Verification Commands Run these commands before publishing: ```bash # Install dependencies npm ci # Type checking npm run typecheck # Linting npm run lint # Tests with coverage npm run test:coverage # Build npm run build # Format check npm run format:check # Package size preview npm pack --dry-run # Security audit npm audit # Check for outdated dependencies npm outdated ``` --- ## 📊 Success Criteria - [ ] All pre-publication checklist items completed - [ ] Package successfully published to npm registry - [ ] Package can be installed globally: `npm install -g faker-mcp-server` - [ ] Binary works correctly: `faker-mcp-server` command available - [ ] Package appears correctly on npmjs.com with all metadata - [ ] README displays properly on npm package page - [ ] No security vulnerabilities: `npm audit` shows 0 vulnerabilities - [ ] Package size is reasonable (< 1MB compressed) --- ## 🎯 Next Steps After 1.0.0 Release 1. **Monitor Issues**: Watch for bug reports and user feedback 2. **Plan Updates**: Schedule patch releases for bug fixes 3. **Feature Requests**: Track feature requests for minor/major releases 4. **Documentation**: Keep docs updated with new examples 5. **Community**: Engage with users, answer questions 6. **Maintenance**: Keep dependencies updated, run security audits regularly --- **Status**: Ready for publication review **Last Updated**: 2025-11-05

Latest Blog Posts

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/funsjanssen/faker-mcp'

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