Essential TypeScript utility library for Model Context Protocol (MCP) server development with Claude Desktop integration. This production-ready utility package provides comprehensive tools for building robust MCP servers with MongoDB connectivity, encryption, cross-platform configuration management, and more.
- π§ MCP Server Utilities: Core utilities for building Model Context Protocol servers
- ποΈ MongoDB Integration: Simplified database connectivity with error handling
- π AES-256-GCM Encryption: Secure token encryption and decryption
- βοΈ Claude Configuration: Automatic Claude Desktop config updates across platforms
- π Port Management: Smart port killing and process management
- π Logging & Error Handling: Structured console logging and error reporting
- π Cross-Platform: Full support for macOS, Windows, and Linux
- π¦ TypeScript Ready: Full TypeScript support with type definitions
# Install from GitHub
npm install github:pdas9647/MCP-Utils#master
# Or add to package.json
"mcp-utils": "github:pdas9647/MCP-Utils#master"
import {
connect, // MongoDB connection
encryptToken, decryptToken, // Encryption utilities
addOrUpdateMCPServer, // Claude config management
killPortOnLaunch, // Port management
printInConsole, // Console logging
sendError // Error handling
} from 'mcp-utils/utils';
import {connect} from 'mcp-utils/utils';
import {StdioServerTransport} from "@modelcontextprotocol/sdk/server/stdio.js";
const transport = new StdioServerTransport();
const MONGODB_URI = process.env.MONGODB_URI;
const db = await connect(transport, MONGODB_URI, 'your-database-name');
import {encryptToken, decryptToken} from 'mcp-utils/utils';
const TOKEN_SECRET = 'your-32-byte-hex-secret';
const plainText = 'sensitive-data';
// Encrypt
const encrypted = encryptToken(TOKEN_SECRET, plainText);
console.log(encrypted); // { iv: '...', content: '...', tag: '...' }
// Decrypt
const decrypted = decryptToken(TOKEN_SECRET, encrypted);
console.log(decrypted); // 'sensitive-data'
import {addOrUpdateMCPServer, setEntry} from 'mcp-utils/utils';
// Create server entry
const {entry} = setEntry('your-project-name');
// Add/update MCP server in Claude Desktop config
await addOrUpdateMCPServer('server-name', entry);
import {killPortOnLaunch, freezePortOnQuit} from 'mcp-utils/utils';
// Kill processes using a specific port
await killPortOnLaunch(3000);
// Monitor parent process and exit when it dies
freezePortOnQuit();
import {printInConsole, sendError} from 'mcp-utils/utils';
import {StdioServerTransport} from "@modelcontextprotocol/sdk/server/stdio.js";
const transport = new StdioServerTransport();
// Log messages to console
await printInConsole(transport, 'Server started successfully');
// Send structured errors
try {
// Some operation
} catch (error) {
sendError(transport, error instanceof Error ? error : new Error(String(error)), 'operation-context');
}
Utility | Purpose | Key Features |
---|---|---|
db.ts |
MongoDB connectivity | Connection management, error handling |
encryption.ts |
Token security | AES-256-GCM encryption/decryption |
updateClaudeConfig.ts |
Claude integration | Cross-platform config management |
killPortOnLaunch.ts |
Process management | Port killing, process monitoring |
printInConsole.ts |
Logging | Structured console output |
sendError.ts |
Error handling | JSON-RPC error reporting |
directory.ts |
Path utilities | Cross-platform directory resolution |
The library provides full cross-platform support for:
- macOS:
~/Library/Application Support/Claude/
- Windows:
%APPDATA%\Claude\
- Linux:
~/.config/Claude/
This utility library powers several production MCP servers:
1. GitHub-MCP
Complete GitHub integration with repository management, issue tracking, and collaboration features.
// Usage example from GitHub-MCP
import {addOrUpdateMCPServer, freezePortOnQuit, killPortOnLaunch, printInConsole, setEntry} from "mcp-utils/utils";
await killPortOnLaunch(PORT);
const {entry} = setEntry('') as any;
await addOrUpdateMCPServer('github', entry);
Google Drive, Sheets, and Docs integration for comprehensive workspace management.
3. FS-MCP
Local file system operations with cross-platform support for macOS, Windows & Linux.
- AES-256-GCM Encryption: Industry-standard encryption for sensitive data
- Secure Token Management: Proper IV generation and authentication tags
- Error Context Isolation: Structured error handling without exposing sensitive information
- Development/Production Modes: Stack traces only in development environment
- Node.js 18+
- TypeScript 5.8+
- MongoDB (for database utilities)
npm run build # Compile TypeScript
npm run dev # Development mode
mcp-utils/
βββ src/
β βββ server.ts # Example server
βββ utils/
β βββ tool.ts # Main exports
β βββ db.ts # MongoDB utilities
β βββ encryption.ts # Crypto utilities
β βββ updateClaudeConfig.ts # Claude config
β βββ killPortOnLaunch.ts # Port management
β βββ printInConsole.ts # Logging
β βββ sendError.ts # Error handling
β βββ directory.ts # Path utilities
βββ package.json
βββ tsconfig.json
MIT License - see LICENSE file for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Model Context Protocol - Official MCP documentation
- Claude Desktop - Anthropic's Claude Desktop application
- @modelcontextprotocol/sdk - Official MCP SDK
- Language: TypeScript
- Dependencies: 2 (crypto-js, mongodb)
- Zero Runtime Dependencies: Core utilities with minimal footprint
- Cross-Platform: macOS, Windows, Linux support
- Production Ready: Used in multiple production MCP servers
Built with β€οΈ for the MCP ecosystem