Skip to content

Collinstudied660/mcp-hub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ”Œ MCP Hub

A curated collection of production-ready MCP servers. Plug-and-play tools for Claude, Cursor, Windsurf & more.

GitHub Stars License: MIT Python 3.10+ MCP

Stop writing MCP servers from scratch. Ship in seconds, not hours.

πŸ“¦ 20+ ready-to-use MCP servers
⚑ One-line install
πŸ”Œ Works with Claude Desktop, Cursor, Windsurf, Zed & more
πŸ› οΈ Customizable & extensible

πŸš€ Quick Start

pip install mcp-hub

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": ["-m", "mcp_hub.server_weather"]
    }
  }
}

Cursor / Windsurf

{
  "mcp": {
    "servers": {
      "weather": {
        "command": "python",
        "args": ["-m", "mcp_hub.server_weather"]
      }
    }
  }
}

Restart your editor. That's it. πŸŽ‰


πŸ“¦ Available Servers

Server Description Install
🌀️ Weather Real-time weather & forecasts mcp_hub.server_weather
πŸ” Web Search Search the web with multiple engines mcp_hub.server_web_search
πŸ™ GitHub Repo management, issues, PRs, code search mcp_hub.server_github
πŸ’° Crypto Live prices, charts, market data mcp_hub.server_crypto
πŸ–₯️ System System info, processes, file ops mcp_hub.server_system
🐳 Docker Container management & monitoring mcp_hub.server_docker
πŸ—„οΈ Database SQL queries, schema inspection mcp_hub.server_database
πŸ“§ Email Send & read emails via SMTP/IMAP mcp_hub.server_email
πŸ“… Calendar Google Calendar integration mcp_hub.server_calendar
πŸ“ Notes Obsidian/Markdown note management mcp_hub.server_notes
🌐 HTTP Make HTTP requests, scrape pages mcp_hub.server_http
πŸ“Š CSV Analyze & transform CSV/Excel files mcp_hub.server_csv
πŸ—ΊοΈ Maps Geocoding, routes, places mcp_hub.server_maps
🐦 Twitter Post tweets, search, get profiles mcp_hub.server_twitter
πŸ’¬ Slack Send messages, read channels mcp_hub.server_slack
🎡 Spotify Search tracks, playlists, playback mcp_hub.server_spotify
πŸ“Έ Screenshot Take webpage screenshots mcp_hub.server_screenshot
πŸ” Passwords Bitwarden/1Password integration mcp_hub.server_passwords
πŸ“ Files Advanced file operations & search mcp_hub.server_files
⏰ Reminder Set reminders & notifications mcp_hub.server_reminder

🌀️ Weather

Get current weather and forecasts for any location worldwide.

# Tools available:
- get_current_weather(location: str) -> dict
- get_forecast(location: str, days: int = 5) -> list
- get_air_quality(lat: float, lon: float) -> dict

Example prompt: "What's the weather in Tokyo right now?"


πŸ” Web Search

Search the web using DuckDuckGo. No API key required.

# Tools available:
- web_search(query: str, count: int = 5) -> list
- fetch_url(url: str) -> str
- extract_text(url: str) -> str

Example prompt: "Search for the latest news about AI agents"


πŸ™ GitHub

Full GitHub integration β€” repos, issues, PRs, code search, and more.

# Tools available:
- list_repos(username: str) -> list
- get_repo(owner: str, repo: str) -> dict
- list_issues(owner: str, repo: str, state: str) -> list
- create_issue(owner: str, repo: str, title: str, body: str) -> dict
- search_code(query: str) -> list
- get_file_content(owner: str, repo: str, path: str) -> str

Example prompt: "Show me open issues in the react repo"


πŸ’° Crypto

Live cryptocurrency prices, market data, and charts.

# Tools available:
- get_price(symbol: str) -> dict
- get_market_data(symbol: str) -> dict
- get_trending() -> list
- get_price_history(symbol: str, days: int) -> list

Example prompt: "What's the current price of Bitcoin?"


πŸ–₯️ System

System information, process monitoring, and file operations.

# Tools available:
- get_system_info() -> dict
- list_processes(sort_by: str) -> list
- get_disk_usage() -> dict
- get_network_info() -> dict
- run_command(cmd: str) -> str

🐳 Docker

Manage Docker containers, images, and volumes.

# Tools available:
- list_containers(all: bool) -> list
- get_container_logs(name: str, tail: int) -> str
- get_container_stats(name: str) -> dict
- list_images() -> list
- inspect_container(name: str) -> dict

πŸ—„οΈ Database

Query and inspect SQL databases (SQLite, PostgreSQL, MySQL).

# Tools available:
- execute_query(connection: str, query: str) -> list
- list_tables(connection: str) -> list
- describe_table(connection: str, table: str) -> dict
- get_schema(connection: str) -> dict

πŸ”§ Configuration

Environment Variables

Variable Description Required
GITHUB_TOKEN GitHub personal access token For GitHub server
OPENWEATHER_API_KEY OpenWeatherMap API key For Weather server
BRAVE_API_KEY Brave Search API key Optional for Web Search
COINMARKETCAP_API_KEY CoinMarketCap API key Optional for Crypto
SMTP_HOST SMTP server host For Email server
SLACK_TOKEN Slack bot token For Slack server

Run Multiple Servers

{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": ["-m", "mcp_hub.server_weather"]
    },
    "search": {
      "command": "python",
      "args": ["-m", "mcp_hub.server_web_search"]
    },
    "github": {
      "command": "python",
      "args": ["-m", "mcp_hub.server_github"],
      "env": {
        "GITHUB_TOKEN": "ghp_xxxxxxxxxxxx"
      }
    },
    "crypto": {
      "command": "python",
      "args": ["-m", "mcp_hub.server_crypto"]
    }
  }
}

πŸ› οΈ Create Your Own Server

MCP Hub servers follow a simple pattern:

from mcp.server import Server
from mcp.types import Tool, TextContent

server = Server("my-server")

@server.list_tools()
async def list_tools():
    return [
        Tool(
            name="my_tool",
            description="Does something cool",
            inputSchema={
                "type": "object",
                "properties": {
                    "input": {"type": "string"}
                },
                "required": ["input"]
            }
        )
    ]

@server.call_tool()
async def call_tool(name: str, arguments: dict):
    if name == "my_tool":
        result = do_something(arguments["input"])
        return [TextContent(type="text", text=result)]

# Run with stdio transport
from mcp.server.stdio import stdio_server

async def main():
    async with stdio_server() as (read_stream, write_stream):
        await server.run(read_stream, write_stream, server.create_initialization_options())

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

πŸ“Š Why MCP Hub?

Feature MCP Hub Building from scratch
Time to deploy ⚑ Seconds 🐒 Hours/Days
Production-ready βœ… Yes ❌ Needs work
Multiple services βœ… 20+ servers ❌ One at a time
Documentation βœ… Complete ❌ DIY
Maintenance βœ… Community ❌ All on you

πŸ—ΊοΈ Roadmap

  • 30+ MCP servers
  • GUI configuration tool
  • Docker Compose for all servers
  • Server marketplace & discovery
  • Plugin system for custom servers
  • MCP Inspector integration
  • Server health monitoring dashboard

🀝 Contributing

Contributions welcome! Add your own MCP server in 3 steps:

  1. Create mcp_hub/server_yourname.py
  2. Follow the template
  3. Open a PR

See CONTRIBUTING.md for details.


⭐ Star History

If you find MCP Hub useful, please give it a star! It helps others discover the project.

Star History Chart


πŸ“„ License

MIT Β© 4Artursmith


Made with ❀️ for the MCP community

About

Build and use production-ready MCP servers for Claude, Cursor, Windsurf, and more with one-line install and ready-to-run tools

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages