nobody-mcp-server
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

🚀 Unified MCP Server

A production-ready, single MCP server that contains multiple embedded MCP servers. Perfect for developers who want multiple MCP capabilities in one package that can be easily extended, compiled, and published.

🎯 What This Is

This is one MCP server that contains 5 MCP servers built directly into the code:

  • 📁 Filesystem Server: File operations (read, write, list, search, create directories)
  • 🔍 Web Search Server: Web search and content extraction
  • 🗄️ Database Server: SQLite operations with backup/restore
  • 🧮 Calculator Server: Mathematical calculations and advanced functions
  • 💻 System Server: System monitoring and process management

🚀 Quick Start - Copy & Paste Configuration

For Claude Desktop (or any MCP client):

{
  "mcpServers": {
    "unified-mcp": {
      "command": "npx",
      "args": ["-y", "unified-mcp-server"]
    }
  }
}

That's it! This single configuration gives you access to all 5 embedded servers.

Alternative Installation Methods:

{
  "mcpServers": {
    "unified-mcp": {
      "command": "node",
      "args": ["/path/to/unified-mcp-server/dist/index.js"]
    }
  }
}

Or install globally:

npm install -g unified-mcp-server

Then use:

{
  "mcpServers": {
    "unified-mcp": {
      "command": "unified-mcp-server"
    }
  }
}

🛠️ Available Tools

Once configured, you'll have access to these tools:

Filesystem Operations

  • filesystem:read_file - Read file contents
  • filesystem:write_file - Write to files
  • filesystem:list_files - List directory contents
  • filesystem:search_files - Search for files
  • filesystem:create_directory - Create directories
  • filesystem:delete_file - Delete files
  • filesystem:file_info - Get file information

Web Search & Content

  • web-search:search_web - Search the web
  • web-search:fetch_webpage - Fetch webpage content
  • web-search:get_page_title - Get page titles
  • web-search:extract_links - Extract links from pages

Database Operations

  • database:execute_query - Run SQL queries
  • database:create_note - Create notes
  • database:list_notes - List all notes
  • database:search_notes - Search notes
  • database:backup_database - Backup database
  • database:restore_database - Restore from backup

Calculator & Math

  • calculator:calculate - Basic calculations
  • calculator:convert_units - Unit conversions
  • calculator:statistics - Statistical calculations
  • calculator:random_number - Generate random numbers
  • calculator:advanced_math - Advanced mathematical functions

System Monitoring

  • system:system_info - Get system information
  • system:memory_usage - Check memory usage
  • system:cpu_info - Get CPU information
  • system:process_info - List running processes
  • system:disk_usage - Check disk usage

🔧 For Developers: Adding Your Own Servers

Step 1: Create Your Server

Create src/servers/my-custom-server.ts:

export class MyCustomServer {
  async getTools() {
    return [
      {
        name: 'my_tool',
        description: 'My custom tool',
        inputSchema: {
          type: 'object',
          properties: {
            input: { type: 'string', description: 'Input parameter' }
          },
          required: ['input']
        }
      }
    ];
  }

  async callTool(name: string, args: any) {
    switch (name) {
      case 'my_tool':
        return {
          content: [{
            type: 'text',
            text: `Processed: ${args.input}`
          }]
        };
      default:
        throw new Error(`Unknown tool: ${name}`);
    }
  }

  async getResources() { return []; }
  async getPrompts() { return []; }
  async cleanup() { /* cleanup code */ }
}

Step 2: Register Your Server

Add to src/config/server-registry.ts:

import { MyCustomServer } from '../servers/my-custom-server.js';

export const SERVER_REGISTRY: ServerConfig[] = [
  // ... existing servers
  {
    name: 'my-custom',
    description: 'My custom functionality',
    enabled: true,
    serverClass: MyCustomServer,
    category: 'custom',
    version: '1.0.0',
    tags: ['custom', 'example']
  }
];

Step 3: Build and Publish

# Build the updated server
npm run build

# Test locally
npm start

# Update version and publish
npm version patch
npm publish

🏗️ Development Setup

# Clone the repository
git clone <your-repo-url>
cd unified-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

# Test the server
npm start

# Run CLI tools
npm run health    # Health checks
npm run info      # Server information
npm run benchmark # Performance tests

📦 Publishing Your Custom Version

  1. Fork this repository
  2. Add your custom servers to src/servers/
  3. Update the registry in src/config/server-registry.ts
  4. Update package.json with your package name
  5. Build and test: npm run build && npm start
  6. Publish: npm publish

Your users can then use:

{
  "mcpServers": {
    "my-custom-mcp": {
      "command": "npx",
      "args": ["-y", "your-package-name"]
    }
  }
}

🔍 Troubleshooting

Server Not Starting

# Check if it builds correctly
npm run build

# Test with simple version
npm run start:simple

# Check logs
npm run health

Tools Not Working

# Validate configuration
npm run validate

# Check server info
npm run info

📄 License

MIT License - feel free to use, modify, and distribute.


Made for the MCP community 🤝

Package Sidebar

Install

npm i nobody-mcp-server

Weekly Downloads

20

Version

1.0.2

License

MIT

Unpacked Size

571 kB

Total Files

70

Last publish

Collaborators

  • zrald