NexusHub

NexusHub

1

NexusHub is an MCP server designed to connect Claude AI to various external services, enhancing its capabilities with tools for filesystem access, database management, and integration with platforms like GitHub and Brave Search. It offers a modern dashboard, dual interface support, and easy integration through Docker.

๐Ÿš€ NexusHub

Unified MCP Server for Claude AI Tools

Version Node.js Docker MCP

NexusHub Logo

A powerful bridge between Claude AI and external services via Model Context Protocol.
Enhance Claude Code with filesystem access, database operations, vector search, GitHub integration, and more.

Demo โ€ข Documentation โ€ข Report Bug โ€ข Request Feature


โœจ Features

  • ๐Ÿ“ก Dual Interface - Supports both HTTP and stdio MCP protocols
  • ๐Ÿ’… Modern Dashboard - Beautiful Protocol design system admin interface with dark mode by default
  • ๐Ÿ”Œ Integrated Services - Combines multiple MCP servers (Memory, GitHub, Brave Search)
  • ๐Ÿ” Vector Database - Document ingestion and semantic search capabilities
  • ๐Ÿ”‘ API Management - Securely manage API keys and service configurations
  • ๐Ÿณ Docker Integration - Easy deployment with Docker and Docker Compose
  • ๐Ÿ“‹ Advanced Prompts - Pre-configured prompts for effective AI interactions
  • ๐Ÿ”„ Real-time Status - Monitor the health of all connected services

NexusHub Dashboard
The elegant NexusHub dashboard interface with Protocol design system

๐Ÿ›๏ธ Architecture

NexusHub uses a Node.js backend with Express for the HTTP interface and native stdio handling for the CLI interface. The server integrates with several key services:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                  Claude Desktop                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
            โ”‚                 โ”‚           โ”‚
            โ–ผ                 โ–ผ           โ–ผ           
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” 
โ”‚    NexusHub MCP   โ”‚ โ”‚ Memory MCP  โ”‚ โ”‚ GitHub MCP  โ”‚ 
โ”‚       Server      โ”‚ โ”‚   Server    โ”‚ โ”‚   Server    โ”‚ 
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ 
          โ”‚                  โ–ฒ                โ–ฒ        
          โ–ผ                  โ”‚                โ”‚        
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”‚                โ”‚        
โ”‚  Vector Store   โ”‚          โ”‚                โ”‚        
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ”‚                โ”‚        
          โ”‚                  โ”‚                โ”‚        
          โ–ผ                  โ”‚                โ”‚        
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Filesystem API  โ”‚ โ”‚ Database APIโ”‚ โ”‚   Docker API    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ› ๏ธ Available Tools

NexusHub provides the following tools to Claude AI:

CategoryToolDescription
Filesystemfs_list_filesList files in a directory
fs_read_fileRead file contents
fs_write_fileWrite to a file
Databasedb_execute_queryExecute a read-only SQL query
db_list_tablesList all tables in the database
db_describe_tableGet table schema
db_insert_dataInsert data into a table
Dockerdocker_list_containersList Docker containers
docker_start_containerStart a container
docker_stop_containerStop a container
docker_get_container_logsGet container logs
Searchserper_searchPerform web search via Serper API
Vector DBingest_docsIngest documents into the vector store
vector_searchSearch for similar documents

๐Ÿš€ Getting Started

Prerequisites

  • Docker and Docker Compose
  • Node.js 18+
  • Python 3.8+ (for vector embedding)

Installation

  1. Clone the repository:

    git clone https://github.com/webdevtodayjason/NexusHub.git
    cd NexusHub
    
  2. Set up environment variables:

    cp .env.example .env
    # Edit .env file with your API keys
    
  3. Start the services:

    docker-compose up -d
    
  4. Access the dashboard: Open http://localhost:8001/dashboard in your browser

Configuration for Claude Desktop

NexusHub supports two different integration methods with Claude Desktop:

1. HTTP Mode

This mode connects to NexusHub via HTTP endpoints. Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "nexushub": {
      "name": "NexusHub MCP Server",
      "description": "Centralized MCP server with multiple capabilities",
      "url": "http://localhost:8001/mcp",
      "enabled": true
    }
  }
}
2. STDIO Mode (Recommended)

This mode uses direct process communication for better performance and reliability. It requires the NexusHub code to be available locally:

  1. Prepare the wrapper scripts:

    # Make the wrapper script executable
    chmod +x /path/to/nexushub/nexushub-mcp.sh
    chmod +x /path/to/nexushub/src/mcp/adapters/stdio-wrapper.js
    chmod +x /path/to/nexushub/src/mcp/stdio-adapter.js
    
  2. Add to your claude_desktop_config.json:

    {
      "mcpServers": {
        "nexushub": {
          "name": "NexusHub MCP Server",
          "description": "Centralized MCP server with multiple capabilities",
          "command": "/path/to/nexushub/nexushub-mcp.sh",
          "enabled": true
        },
        "brave-search": {
          "name": "Brave Search MCP",
          "description": "Provides web search capabilities via Brave Search API.",
          "command": "docker",
          "args": ["exec", "-i", "mcp_brave_search", "node", "dist/index.js"],
          "enabled": true
        },
        "github": {
          "name": "GitHub MCP",
          "description": "Provides GitHub repository interaction.",
          "command": "docker",
          "args": ["exec", "-i", "mcp_github", "node", "dist/index.js"],
          "enabled": true
        },
        "memory": {
          "name": "Memory MCP",
          "description": "Persistent knowledge graph memory.",
          "command": "docker",
          "args": ["exec", "-i", "mcp_memory", "node", "dist/index.js"],
          "enabled": true
        }
      }
    }
    

Note: Replace /path/to/nexushub with your actual NexusHub installation path.

Docker Containers

Make sure all Docker containers are running before starting Claude Desktop:

cd /path/to/nexushub
docker-compose up -d

This will start all required MCP servers:

  • NexusHub (primary server with filesystem, database, Docker tools)
  • Brave Search MCP (web search capabilities)
  • GitHub MCP (repository interaction)
  • Memory MCP (knowledge graph/persistent memory)

๐Ÿ’ก Example Usage

Here are some examples of how to use NexusHub with Claude AI:

File Operations

Please use fs_list_files to show me all the JavaScript files in the src directory, 
then read the content of any interesting files you find.

Database Query

Can you use db_execute_query to find all users in the database who joined 
in the last month and have the "admin" role?

Vector Search

Please use vector_search to find documentation related to "authentication flow" 
and summarize the key points.

Combined Tools

First, use brave_web_search to find the latest best practices for React error boundaries. 
Then, use fs_read_file to examine our current implementation in ErrorBoundary.jsx, 
and suggest improvements based on what you found.

๐Ÿงฉ How to Add Your Own Tools

You can extend NexusHub with custom tools by adding new tool definitions to the /src/mcp/tools/ directory:

// src/mcp/tools/my-custom-tools.js

export function getToolDefinitions() {
  return {
    my_custom_tool: {
      name: 'my_custom_tool',
      description: 'Description of what the tool does.',
      inputSchema: {
        type: 'object',
        properties: {
          param1: {
            type: 'string',
            description: 'Description of parameter 1'
          }
          // Add more parameters as needed
        },
        required: ['param1']
      }
    }
  };
}

// Tool implementation
export async function myCustomTool(param1) {
  // Your custom tool logic here
  return { result: 'Success!' };
}

Then add the tool to /src/mcp/tools/index.js and /src/mcp/tools/handler.js.

๐Ÿ”„ Local Development

  1. Install dependencies:

    npm install
    
  2. Run in development mode:

    npm run dev
    
  3. For stdio mode testing:

    npm run stdio
    

๐Ÿงช Running Tests

# Run all tests
npm test

# Run specific test suite
npm test -- --grep "API Keys"

๐Ÿ”ง Troubleshooting

Claude Desktop Integration Issues

  1. "Unexpected token" errors when starting Claude Desktop:

    • Make sure your wrapper scripts have proper permissions: chmod +x nexushub-mcp.sh
    • Verify that all scripts filter non-JSON output correctly
    • Check log files in /tmp/nexushub-debug-*.log for details
  2. MCP server not loading or tools not appearing:

    • Ensure Docker containers are running: docker ps | grep mcp
    • Check container logs: docker logs mcp_brave_search
    • Verify Claude Desktop configuration has the correct paths/commands
    • Try restarting Claude Desktop after making changes
  3. Docker container issues:

    • Clear Docker logs if they get too large: docker system prune
    • Restart containers: docker-compose restart
    • Check for port conflicts: lsof -i :8001

Common Error Messages

ErrorSolution
"Method not found"The MCP server doesn't support this method. Check if you're using the correct tool name.
"Socket hang up"Connection issue. Check if the MCP server is running.
"ENOENT"File or directory not found. Check paths in your configuration.
"Permission denied"File permission issue. Check script permissions.
"Unexpected token"JSON parsing error. Check the MCP server's stdout output.

๐Ÿ“š Documentation

Tool Development Guides

  • - Get up and running in 5 minutes
  • - Comprehensive guide to creating tools
  • - Optimized prompts for AI-assisted tool creation

Integration Guides

  • - Connect NexusHub to Claude Desktop
  • - Use NexusHub with Claude CLI

MCP Resources

For complete documentation, visit the NexusHub Wiki.

๐Ÿค Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“ License

Distributed under the MIT License. See LICENSE for more information.

๐Ÿ‘จโ€๐Ÿ’ป Author

Jason Brashear

๐Ÿ™ Acknowledgments


Built with โค๏ธ by Jason Brashear