kuzu-mcp-server
Version:
A Model Context Protocol (MCP) server for Kuzu graph databases. Enables LLMs like Claude to execute Cypher queries and analyze graph data with path invariance support.
252 lines (182 loc) • 5.5 kB
Markdown
# NPM Publishing Instructions for Kuzu MCP Server
This document provides step-by-step instructions for publishing the Kuzu MCP Server to npm, making it available for global installation via `npx kuzu-mcp-server`.
## Prerequisites
1. **npm Account**: You need an npm account with publishing permissions
2. **Two-Factor Authentication**: Recommended for security
3. **npm CLI**: Ensure npm is installed and up to date
## Pre-Publishing Checklist
### 1. Verify Package Configuration
Ensure `package.json` contains:
- ✅ Correct package name: `kuzu-mcp-server`
- ✅ Valid version: `0.1.0`
- ✅ Author information: `freemorphism@gmail.com`
- ✅ Bin configuration for npx usage
- ✅ Repository and homepage URLs
- ✅ Proper keywords for discoverability
### 2. Test Package Locally
```bash
# Test all functionality
npm run test
node bin/kuzu-mcp-server.js --test
node bin/kuzu-mcp-server.js --setup ./test-db
node bin/kuzu-mcp-server.js --health ./test-db
# Test package creation
npm pack --dry-run
```
### 3. Verify File Inclusion
Check what files will be included in the package:
```bash
npm pack --dry-run
```
Expected files:
- `index.js` (main server)
- `bin/kuzu-mcp-server.js` (CLI executable)
- `package.json`
- `README.md`
- `LICENSE`
- Documentation and examples
- Test scripts
## Publishing Steps
### Step 1: Login to npm
```bash
npm login
```
Enter your npm credentials:
- Username
- Password
- Email: `freemorphism@gmail.com`
- Two-factor authentication code (if enabled)
### Step 2: Verify Login
```bash
npm whoami
```
Should return your npm username.
### Step 3: Run Pre-publish Tests
```bash
npm run prepublishOnly
```
This will run the test suite automatically.
### Step 4: Publish to npm
For first-time publishing:
```bash
npm publish --access public
```
The package will be published as a public package since it's specified in `package.json`.
### Step 5: Verify Publication
After publishing, verify the package is available:
```bash
# Check package info
npm info kuzu-mcp-server
# Test installation
npx kuzu-mcp-server --version
npx kuzu-mcp-server --help
```
## Post-Publishing Verification
### Test Global Installation
```bash
# Test npx usage (no installation required)
npx kuzu-mcp-server --version
npx kuzu-mcp-server --setup ./test-publish-db
npx kuzu-mcp-server --health ./test-publish-db
# Test global installation
npm install -g kuzu-mcp-server
kuzu-mcp-server --version
# Clean up
npm uninstall -g kuzu-mcp-server
rm -rf ./test-publish-db
```
### Verify Package Page
Visit the npm package page:
https://www.npmjs.com/package/kuzu-mcp-server
Check that:
- ✅ README displays correctly
- ✅ Version is correct
- ✅ Keywords are present
- ✅ Author information is displayed
- ✅ Repository link works
## Version Management
### For Future Updates
1. **Update Version Number**:
```bash
# Patch version (0.1.0 → 0.1.1)
npm version patch
# Minor version (0.1.0 → 0.2.0)
npm version minor
# Major version (0.1.0 → 1.0.0)
npm version major
```
2. **Commit and Push**:
```bash
git push origin main --tags
```
3. **Publish Update**:
```bash
npm publish
```
## Troubleshooting
### Common Issues
1. **Package Name Already Exists**:
- Error: `403 Forbidden - PUT https://registry.npmjs.org/kuzu-mcp-server`
- Solution: The name might be taken. Check on npmjs.com
2. **Authentication Issues**:
- Error: `ENEEDAUTH`
- Solution: Run `npm login` again
3. **Permission Denied**:
- Error: `EACCES`
- Solution: Ensure you have publish permissions for the package
4. **Two-Factor Authentication**:
- Error: `EOTP`
- Solution: Include OTP with `npm publish --otp=123456`
### Package Size Issues
If the package is too large:
```bash
# Check what's included
npm pack --dry-run
# Update .npmignore to exclude large files
echo "large-file.dat" >> .npmignore
```
## Testing Installation
After publishing, test the package works correctly:
```bash
# Create a temporary directory
mkdir /tmp/test-kuzu-mcp
cd /tmp/test-kuzu-mcp
# Test npx usage
npx kuzu-mcp-server --version
npx kuzu-mcp-server --setup ./test-db
npx kuzu-mcp-server --health ./test-db
# Test starting server
timeout 5s npx kuzu-mcp-server ./test-db
# Clean up
cd /
rm -rf /tmp/test-kuzu-mcp
```
## Success Criteria
The package is successfully published when:
- ✅ `npx kuzu-mcp-server --version` returns version 0.1.0
- ✅ `npx kuzu-mcp-server --help` shows usage instructions
- ✅ `npx kuzu-mcp-server --setup ./db` creates a working database
- ✅ `npx kuzu-mcp-server --health ./db` reports healthy status
- ✅ `npx kuzu-mcp-server --test` passes all tests
- ✅ Package appears on npmjs.com with correct metadata
- ✅ MCP server starts without errors
## Package Statistics
After publication, monitor:
- Download count
- GitHub stars
- Issues and feedback
- Usage in Claude Desktop configurations
## Security Considerations
- ✅ No secrets or API keys in published package
- ✅ .npmignore excludes sensitive files
- ✅ Package only includes necessary files
- ✅ Two-factor authentication enabled on npm account
## Support and Maintenance
After publishing:
1. Monitor for issues and feedback
2. Respond to GitHub issues
3. Update documentation as needed
4. Release patches for bugs
5. Consider feature requests for minor/major releases
---
**Ready to Publish**: Once all checks pass, run `npm publish --access public` to make the Kuzu MCP Server available worldwide via npx!