Skip to content

πŸ› οΈ Essential TypeScript utility library for Model Context Protocol (MCP) server development with Claude Desktop integration πŸ€– Powers GitHub-MCP, Google-Workspace-MCP & FS-MCP with MongoDB connectivity, AES-256-GCM encryption, cross-platform config management & more πŸš€

Notifications You must be signed in to change notification settings

pdas9647/MCP-Utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MCP-Utils πŸ› οΈ

TypeScript Node.js MongoDB License MCP Model Context Protocol Claude Desktop

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.

πŸš€ Features

  • πŸ”§ 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

πŸ“¦ Installation

# Install from GitHub npm install github:pdas9647/MCP-Utils#master # Or add to package.json "mcp-utils": "github:pdas9647/MCP-Utils#master"

🎯 Usage

Import Utilities

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';

MongoDB Connection

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');

Encryption & Decryption

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'

Claude Desktop Configuration

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);

Port Management

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();

Console Logging & Error Handling

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'); }

πŸ—οΈ Architecture

Core Utilities

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

Cross-Platform Support

The library provides full cross-platform support for:

  • macOS: ~/Library/Application Support/Claude/
  • Windows: %APPDATA%\Claude\
  • Linux: ~/.config/Claude/

πŸ”¨ Used By

This utility library powers several production MCP servers:

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.

Local file system operations with cross-platform support for macOS, Windows & Linux.

πŸ›‘οΈ Security Features

  • 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

πŸ”§ Development

Prerequisites

  • Node.js 18+
  • TypeScript 5.8+
  • MongoDB (for database utilities)

Build

npm run build # Compile TypeScript npm run dev # Development mode

Project Structure

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 

πŸ“„ License

MIT License - see LICENSE file for details.

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ”— Related Projects

πŸ“Š Stats

  • 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

Report Bug Β· Request Feature Β· Documentation

About

πŸ› οΈ Essential TypeScript utility library for Model Context Protocol (MCP) server development with Claude Desktop integration πŸ€– Powers GitHub-MCP, Google-Workspace-MCP & FS-MCP with MongoDB connectivity, AES-256-GCM encryption, cross-platform config management & more πŸš€

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •