MCPHub
Provides tools for local file operations, including reading and writing UTF-8 files, listing directories, and unzipping archives.
Enables system-level interactions such as executing CLI commands, monitoring running processes, and performing disk usage analysis.
Supports querying and managing project databases through specialized PostgreSQL integration tools.
Allows for the execution of Python scripts, asynchronous script management, and package installation within the environment.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCPHubList all available MCP modules and their current status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCPHub
📸 System Screenshots
Login Interface

Default credentials: username
admin, passwordadmin123
Module Management Interface

Manage all MCP modules with support for loading, unloading, and reloading operations
Tool Details & Control

Enable/disable each tool individually, edit tool descriptions in real-time
Proxy Server Management

Proxy existing MCP Servers without modification
Usage Statistics Dashboard

Visualize tool call counts, success rates, and response times
AI Code Generation

Generate MCP plugin code through natural language conversation
Related MCP server: MCPilot
🎯 What is This?
MCPHub is a tool service platform based on the MCP (Model Context Protocol). It addresses a pain point in current AI Agent systems:
Each MCP Server needs to be configured separately on the client side. As the number of tools increases, configuration management becomes chaotic.
MCPHub's Solution:
┌─────────────────────────────────────────────────────────────────┐
│ Before: Scattered Configuration │
│ Claude/Cursor needs to configure dozens of MCP Server addresses│
│ - mcp-server-filesystem │
│ - mcp-server-github │
│ - mcp-server-postgres │
│ - mcp-server-python │
│ - ... (configuration explosion) │
└─────────────────────────────────────────────────────────────────┘
⬇️
┌─────────────────────────────────────────────────────────────────────┐
│ After: Unified Entry Point
│ Claude/Cursor only needs to configure one address
│ { "mcpServers": { "mcp-hub": { "url": "http://host:6081/mcp" } } }
│
│ MCP Hub automatically aggregates all tools, providing:
│ ✅ Centralized tool management
│ ✅ Hot-pluggable enable/disable
│ ✅ Unified monitoring and statistics
└─────────────────────────────────────────────────────────────────────┘✨ Key Features
1️⃣ One Address, Infinite Tools
AI Agent clients only need to configure one MCP Server address to access all tools on the platform. Whether built-in tools, custom plugins, or proxied third-party MCP Servers, they are all transparent to clients.
2️⃣ Hot-Pluggable Tool Management
Module-level Management: Load, unload, and reload modules without restarting the service
Tool-level Control: Individual tools can be enabled/disabled independently
Hot Configuration Updates: Tool description changes take effect immediately without restart
3️⃣ Proxy Existing MCP Servers
Already have MCP Servers? No modification needed - just configure a proxy to integrate:
{
"name": "my-existing-server",
"url": "http://existing-server:8080/mcp",
"transport": "streamable-http"
}The platform automatically discovers and transparently proxies all tools from that server.
4️⃣ AI-Powered MCP Plugin Generation
Built-in AI code generation feature - generate compliant MCP module code through natural language conversation:
User: Help me create a weather query tool
AI: Generated t_weather module with get_current_weather and get_forecast tools...Everyone can become an MCP tool developer!
5️⃣ Plugin Ecosystem: Install & Share
One-click Install: Upload a ZIP package to install third-party plugins
One-click Export: Package custom plugins as ZIP to share with other users
Modular Isolation: Separate management of built-in tools (
tools/) and external plugins (tools_external/)
6️⃣ Group-Based Access Control
Organize modules and proxy servers into groups to control which tools different AI clients can access:
Group Isolation: Each group has its own set of modules and proxy servers
Per-Client Access: Clients specify a group via the
x-group-idHTTP header — they only see and can call tools in that groupDefault Group: All newly added modules/proxies are automatically added to the default group, ensuring backward compatibility
Flexible Assignment: A module or proxy server can belong to multiple groups simultaneously
┌──────────────┐ ┌──────────────┐
│ Group A │ │ Group B │
│ (Dev Tools) │ │ (Ops Tools) │
│ • t_python │ │ • t_cli │
│ • t_notebook│ │ • t_ftp │
└──────────────┘ └──────────────┘
↑ x-group-id: A ↑ x-group-id: B
Claude Dev Agent Claude Ops Agent7️⃣ Comprehensive Usage Statistics
Intuitively view usage for each tool:
Call count statistics
Success rate tracking
Response time analysis
24-hour trend charts
🛠️ Built-in Tools
The platform comes with core tool modules ready to use:
Category | Module | Tools | Description |
🖥️ CLI Execution |
|
| Execute system commands, view processes, disk monitoring, network info |
🐍 Python Execution |
|
| Safely execute Python scripts, install dependencies, async execution |
🤖 GUI Automation |
|
| AI-driven desktop automation, automatic mouse and keyboard operations |
📓 Notebook |
|
| Note creation and querying, persistent storage |
Featured: AI-Driven GUI Automation
The t_autogui module implements AI-driven desktop automation:
User: Help me open the browser and visit GitHub
Agent: [Calls autogui_start_task] → AI plans task steps → Executes mouse and keyboard operationsThis is a killer feature of this platform: AI can operate the computer desktop like a human, completing complex GUI interaction tasks.
📦 Extension Tools
Beyond built-in tools, the platform supports installing extension plugins. Currently available extension tool in tools_external/:
Category | Module | Tools | Description |
🌐 FTP Transfer |
|
| FTP file transfer and management |
Extension tools are located in the
tools_external/directory and can be loaded on demand through the Web interface or API. You can also develop your own extension tools and install them on the platform.
🚀 Quick Start
Requirements
Python 3.10+
(Optional) Node.js 18+ - for building the frontend
Installation
# Clone the project
git clone https://github.com/Jayden-Dong/MCPHub.git
cd MCPHub
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# .venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txtStart the Service
cd app
python main.pyAfter starting, access:
🌐 Web Management Interface:
http://localhost:6080📚 API Documentation:
http://localhost:6080/docs🔌 MCP Endpoint:
http://localhost:6081/mcp
Configure MCP Client
Add the following in Claude Desktop / Cursor/Cherry Studio or other MCP clients:
{
"mcpServers": {
"general-tools": {
"url": "http://localhost:6081/mcp"
}
}
}🎉 Done! Your AI Agent can now use all enabled tools on the platform.
📖 Feature Details
Module Management
Manage modules through the Web interface or API:
┌───────────────────────────────────────────────────────────┐
│ Module List [Scan New Modules] [Install]
├───────────────────────────────────────────────────────────┤
│ ✅ t_cli Loaded [Details] [Reload] [Unload]
│ ✅ t_python Loaded [Details] [Reload] [Unload]
│ ⏸️ t_autogui Paused [Details] [Load]
│ 📦 t_weather Not Loaded [Details] [Load] [Export]
└───────────────────────────────────────────────────────────┘Tool-level Control
Enter module details to enable/disable each tool individually:
┌─────────────────────────────────────────────────────────┐
│ t_cli Module Details
├─────────────────────────────────────────────────────────┤
│ 🔧 run_cli_command [✅ Enabled]
│ 🔧 list_directory [✅ Enabled]
│ 🔧 get_system_info [❌ Disabled]
│ 🔧 kill_process [❌ Disabled] ⚠️ Dangerous
└─────────────────────────────────────────────────────────┘Proxy MCP Server
Connect existing MCP Servers to the platform:
Via Web Interface:
Navigate to the "Proxy Management" page
Click "Add Server"
Fill in server name, URL, and transport type
Click "Sync Tools" → Tools automatically appear in the platform
Via API:
curl -X POST http://localhost:6080/api/proxy/servers \
-H "Content-Type: application/json" \
-d '{
"name": "filesystem-server",
"url": "http://localhost:3000/mcp",
"transport": "streamable-http"
}'AI Code Generation
Generate MCP plugins through conversation:
# Start conversation
curl -X POST http://localhost:6080/api/codegen/chat \
-H "Content-Type: application/json" \
-d '{"message": "Help me create a stock query tool that supports real-time prices and historical trends"}'
# Preview generated code
curl http://localhost:6080/api/codegen/preview/{task_id}
# Install directly to platform
curl -X POST http://localhost:6080/api/codegen/install/{task_id}Group Management
Groups allow you to organize modules and proxy servers and control which tools each AI client can access.
Via Web Interface:
Navigate to the "Group Management" page
Click "Create Group" and give it a name
Add modules or proxy servers to the group
Copy the group ID and pass it to the client via the
x-group-idheader
Via API:
# Create a group
curl -X POST http://localhost:6080/api/groups \
-H "Content-Type: application/json" \
-d '{"name": "dev-tools", "description": "Tools for development"}'
# Add a module to the group
curl -X POST http://localhost:6080/api/groups/{group_id}/modules \
-H "Content-Type: application/json" \
-d '{"module_name": "t_python"}'Configuring the MCP Client with a Group:
{
"mcpServers": {
"dev-tools": {
"url": "http://localhost:6081/mcp",
"headers": {
"x-group-id": "<your-group-id>"
}
}
}
}When a client provides an x-group-id header, it can only list and call tools that belong to that group. Clients without a group header can access all enabled tools.
Usage Statistics
View tool call information:
# Overall overview
curl http://localhost:6080/api/stats/overview
# Statistics by tool
curl http://localhost:6080/api/stats/tools
# Recent call records
curl http://localhost:6080/api/stats/recent?limit=100Response example:
{
"total_calls": 1523,
"success_rate": 0.98,
"top_tools": [
{"name": "run_python_script", "calls": 456, "avg_duration_ms": 1234},
{"name": "run_cli_command", "calls": 312, "avg_duration_ms": 567}
]
}🔌 API Documentation
Module Management /api/modules
Method | Path | Description |
GET |
| Get all module list |
GET |
| Scan unloaded modules |
POST |
| Load module |
POST |
| Unload module |
POST |
| Reload module |
POST |
| Enable tool |
POST |
| Disable tool |
POST |
| Install ZIP plugin |
GET |
| Export module as ZIP |
DELETE |
| Delete external module |
Proxy Management /api/proxy
Method | Path | Description |
GET |
| Get proxy server list |
POST |
| Add proxy server |
PUT |
| Update configuration |
DELETE |
| Delete server |
POST |
| Sync tool list |
POST |
| Enable server |
POST |
| Disable server |
Group Management /api/groups
Method | Path | Description |
GET |
| Get all groups |
POST |
| Create a group |
GET |
| Get group details |
PUT |
| Update group info |
DELETE |
| Delete group |
GET |
| Get all members (modules + proxies) |
POST |
| Add module to group |
DELETE |
| Remove module from group |
POST |
| Add proxy server to group |
DELETE |
| Remove proxy from group |
GET |
| Get groups containing a module |
GET |
| Get groups containing a proxy |
Statistics Query /api/stats
Method | Path | Description |
GET |
| Overall statistics overview |
GET |
| Statistics by module |
GET |
| Statistics by tool |
GET |
| Recent call records |
AI Code Generation /api/codegen
Method | Path | Description |
POST |
| Conversational code generation |
POST |
| Streaming conversation |
GET |
| Preview generated code |
POST |
| Install to platform |
POST |
| Download ZIP |
🧩 Development Guide
Creating Custom Modules
For detailed module development specifications, please refer to MCP_MODULE_DEV_GUIDE.md.
Quick Start:
my_module/
├── __init__.py # Package marker
├── MODULE_INFO # Module metadata
├── my_module_mcp.py # MCP tool registration
├── my_module_tool.py # Business logic
└── requirements.txt # Optional dependenciesMODULE_INFO:
{
"display_name": "My Tool",
"version": "1.0.0",
"description": "Tool description",
"author": "Your Name"
}my_module_mcp.py:
from mcp_service import mcp
from config_py.config import settings
from config_py.prompt import prompt_manager
from utils import com_utils
from utils.com_utils import get_mcp_exposed_url
TOOL_NAME = "my_tool"
@mcp.tool(
name=f'{settings.MCP_TOOL_NAME_PREFIX}{TOOL_NAME}',
description=f'MCP Server URL: {get_mcp_exposed_url()}. {prompt_manager.get(TOOL_NAME)}',
enabled=com_utils.get_tool_enable(TOOL_NAME),
)
def my_tool(param: str) -> dict:
"""Tool description"""
return {"success": True, "data": "result"}Package & Share
# Package
zip -r my_module.zip my_module/
# Install
curl -X POST http://localhost:6080/api/modules/install \
-F "file=@my_module.zip"🏗️ System Architecture
┌─────────────────────────────────────────────────────────────────┐
│ MCP Client (Claude / Cursor) │
└───────────────────────────────┬─────────────────────────────────┘
│ MCP Protocol (HTTP Streamable)
▼ :6081
┌─────────────────────────────────────────────────────────────────┐
│ MCP Service (FastMCP)
│ ┌───────────────────────────────────────────────────────────┐
│ │ Middleware Layer
│ │ • RequestMCPMiddleware (logging/statistics)
│ │ • ToolDescriptionCheckerMiddleware (description hot update)
│ │ • ToolEnabledCheckerMiddleware (tool filtering)
│ └───────────────────────────────────────────────────────────┘
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ │ Built-in │ │ External │ │ Proxy │
│ │ Tools │ │ Plugins │ │ Tools │
│ │ tools/ │ │ external/ │ │ proxy/ │
│ └─────────────┘ └─────────────┘ └─────────────┘
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ REST API (FastAPI) :6080 │
│ /api/modules /api/stats /api/proxy /api/codegen /api/auth │
└───────────────────────────────┬─────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ Web Frontend (Vue 3) │
│ Module Management | Tool Control | Proxy Config | Statistics │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ Data Layer (SQLite) │
│ Module Status | Tool Config | Call Statistics | Proxy Config │
│ User Authentication │
└─────────────────────────────────────────────────────────────────┘📁 Project Structure
MCPHub/
├── requirements.txt # Python dependencies
├── README.md # This file
├── MCP_MODULE_DEV_GUIDE.md # Module development guide
├── config/
│ ├── config.json # Main configuration file
│ └── mcp_hub.db # SQLite database
└── app/
├── main.py # FastAPI entry point
├── mcp_service.py # MCP service initialization
├── my_mcp_middleware.py # MCP middleware
├── config_py/ # Configuration management
├── managers/ # Core managers
│ ├── module_manager.py # Module lifecycle
│ ├── proxy_manager.py # Proxy servers
│ └── stats_manager.py # Statistics management
├── api/ # REST API
├── tools/ # Built-in modules
│ ├── t_autogui/ # GUI automation
│ ├── t_cli/ # CLI commands
│ ├── t_python/ # Python execution
│ └── ...
├── tools_external/ # External plugins
├── toolsmcp/ # MCP tool wrappers
└── web/ # Vue 3 frontend⚙️ Configuration
Main configuration file: config/config.json
{
"api": {
"title": "MCPHub Service",
"version": "1.0.0"
},
"server": {
"host": "0.0.0.0",
"port": 6080
},
"mcp": {
"service_name": "mcphub",
"host": "0.0.0.0",
"port": 6081,
"path": "/mcp",
"tool_name_prefix": "",
"module_enable": [
{
"enable": true,
"module_name": "tools.t_cli.cli_mcp",
"disable_tool": [],
"config": {}
}
]
},
"database": {
"db_path": "./config/mcp_hub.db"
},
"auth": {
"secret_key": "your-secret-key",
"token_expire_hours": 24
}
}Configuration | Description |
| Tool name prefix for distinguishing multi-instance deployments |
| List of modules to auto-load on startup |
| List of disabled tool names in the module |
| Custom configuration passed to the module |
🤝 Contributing
Contributions, bug reports, and suggestions are welcome!
Fork this repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Create a Pull Request
📄 License
This project is licensed under the MIT License.
🙏 Acknowledgments
FastMCP - Framework for quickly building MCP Servers
MCP Protocol - Model Context Protocol specification
FastAPI - Modern high-performance Python web framework
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceA proxy server that unifies multiple MCP servers, enabling seamless tool, prompt, and resource management via the MetaMCP App.Last updated59154Apache 2.0
- FlicenseCqualityDmaintenanceA powerful gateway for the Model Context Protocol (MCP) that unifies AI toolchains by federating multiple MCP servers, wrapping REST APIs as MCP tools, and supporting multiple transport methods with an admin dashboard.Last updated1
- Flicense-quality-maintenanceMCP Hub aggregates and proxies multiple Model Context Protocol servers into a unified Streamable HTTP interface. It allows users to combine diverse stdio, SSE, and HTTP-based servers while providing tool namespacing, health monitoring, and secure authentication.Last updated880
- Alicense-qualityDmaintenanceMCPGate aggregates multiple MCP servers into a single unified endpoint, enabling centralized tool management with granular filtering, automatic namespacing, and observability. Features a real-time web dashboard and optional PostgreSQL-backed audit trails for monitoring and controlling AI tool access across local and remote deployments.Last updated26Apache 2.0
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jayden-Dong/MCPHub'
If you have feedback or need assistance with the MCP directory API, please join our Discord server