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 modemcp-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