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

  •  
  •