MCP Hub
Provides tools for market data (klines, indicators like RSI/MACD/Bollinger), order book, spot trading, and portfolio management.
Provides tools for extracting CSS, layout trees, images, comments, components, and styles from Figma files.
Provides tools for managing calendars and events (list/get/create/update/delete) with Google Meet integration.
Provides tools for managing Miro boards, including sticky notes, text, shapes, cards, and connectors.
Provides tools for accessing Slack channels, messages, direct messages, user lookup, and canvases.
Provides tools for interacting with Telegram, including dialogs, messages, search, history, and sending messages via personal account or bot.
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., "@MCP Hubcreate a task in Teamwork and notify me on Slack"
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.
MCP Hub
MCP Hub is a self-hosted AI operations platform with a unified MCP gateway, semantic tool routing, persistent vector memory, automation scheduler, multi-agent flows, and a full ReAct orchestration engine.
Connect Claude Desktop, ChatGPT, Cursor, Telegram, or any MCP client to 130+ tools across 12 integrations — through just 3 hub endpoints. The AI never drowns in schemas. It searches, finds, and acts.
The Core Idea
Most MCP setups dump every tool schema into the AI's context window on every call. With 10 integrations and 130+ tools, that's thousands of tokens wasted before the AI even starts thinking.
MCP Hub does it differently:
AI sees: hub.integrations.list
hub.tools.search ← semantic vector search
hub.tools.call
Behind the scenes: 130+ tools across 12 integrations
Local embedding model routes queries to the right tools
ReAct loop executes multi-step tasks autonomouslyThe AI calls hub.tools.search("teamwork create task; add task to project") and gets back exactly the 3-5 tools it needs. Nothing else enters the context. Token usage drops by 60-80% on complex tasks.
Related MCP server: MCP Hub
Why MCP Hub?
Problem | Solution |
130+ tool schemas bloat every LLM call | Semantic routing — AI sees only relevant tools |
AI can't remember context between sessions | Persistent vector memory with FTS5 + embedding search |
Each integration needs its own MCP server | Single gateway for everything |
Token security concerns | AES-256 encrypted storage, tokens never exposed to AI |
No visibility into what AI does | Full audit trail — every tool call logged |
Team needs shared access | Multi-user with admin approval, per-user credentials |
Complex deployment | Single Docker container, SQLite, zero external services |
Repetitive tasks need automation | Built-in cron/interval/event scheduler with LLM payloads |
Integrations
Integration | Auth | Tools | What it does |
Teamwork | OAuth 2.0 | 47 | Projects, tasks, subtasks, dependencies, time tracking, tags, comments, board management |
Slack | OAuth 2.0 | 19 | Channels, messages, DMs, user lookup, canvases |
Miro | OAuth 2.0 | 18 | Boards, sticky notes, text, shapes, cards, connectors |
Figma | OAuth 2.0 | 20 | CSS extraction, layout trees, images, comments, components, styles |
Google Calendar | OAuth 2.0 | 7 | Calendars, events (list/get/create/update/delete), Google Meet |
Binance | API Key | 11 | Market data + indicators (RSI, MACD, Bollinger), order book, spot trading, portfolio |
Telegram | MTProto | 5 | Personal account — dialogs, messages, search, history, send |
Telegram Bot | Bot Token | 2 | Notifications, alerts via Bot API |
Memory | Built-in | 7 | Persistent AI memory with FTS5 + semantic vector search |
Automation | Built-in | 11 | Interval/cron/event scheduler, run history, LLM payloads |
Agents | Built-in | 21 | Multi-agent flows, graph orchestration, delegation, skills |
Web Search | Built-in | 3 | Web search, page fetch, full-search with content extraction |
Hub | — | 4 | Semantic discovery + tool routing |
170+ |
Semantic Tool Routing
The centerpiece of MCP Hub's architecture. Instead of loading all 130+ tool schemas on every call, a local sentence-transformers model runs on CPU and routes each request to the 3-5 most relevant tools.
User: "create a task in teamwork for the design review"
↓ LLM generates search phrases:
"teamwork create task; add task to project; teamwork tasks"
↓ Embedding model finds:
teamwork.tasks.bulk_create (score: 0.94)
teamwork.tasklists.list (score: 0.87)
teamwork.projects.list (score: 0.85)
↓ AI calls hub.tools.call → doneHow it works:
On startup, every tool is embedded:
tool name + description + use cases + tagsPer request,
_expand_semantic_intentsgenerates 3-5 action phrases from the user queryCosine similarity ranks all tools → top N sent to LLM
Result: the AI only ever sees tools it actually needs
Token impact: A complex 5-step automation that previously consumed ~60K tokens now uses ~20-30K. The AI still has full access to all 130+ tools — it just fetches them on demand.
Memory with Vector Search
Persistent AI memory that works across conversations, automations, and agents. Now with dual search: FTS5 full-text + semantic embedding search.
Saved: "prefer concise summaries, not bullet points"
Search: "formatting style preference" → found (semantic, no exact keyword match)
Saved: "BNB target price $700"
Search: "my crypto goals binance" → found (semantic scope match)Memory item types with auto TTL:
Type | Lifetime | Use |
| Permanent | User preferences, style settings |
| Permanent | Rules the AI must follow |
| Permanent | Important decisions made |
| Permanent | Active project context |
| Permanent | People and entities |
| Permanent | Tracked assets, crypto positions |
| 30 days | Objectives and targets |
| 7 days | Temporary notes (pin to keep forever) |
Features:
Auto-vectorized on save — every upsert computes and stores embedding
Hybrid search — FTS5 keywords + vector similarity, results merged and deduplicated
memory.summarize_context(query="...")— semantic context pack: returns only relevant memories for the current task instead of dumping everythingSecret detection — blocks auto-saving passwords, API keys, tokens
Scope filtering — memories can be scoped to specific integrations (binance, teamwork, etc.)
ReAct Orchestration Engine
Every chat message, automation payload, and agent run goes through the built-in ReAct loop:
Step 1: Understand intent, detect provider, generate semantic search phrases
Step 2: hub.tools.search → find relevant tools
Step 3: hub.tools.call → execute
Step 4: Observe result → verify → iterate if needed
Step 5: Synthesize final answerSmart behaviours built in:
Identity bootstrap — for "my tasks" requests, auto-fetches
users.mebefore listingProgressive tool disclosure — new providers loaded only when actually needed
Repeated call guard — prevents identical tool calls from looping
Send short-circuit — for action requests, returns immediately after success
Web search fallback — if a URL fetch times out, retries with next search result
Multi-LLM — OpenAI, Anthropic, Google, DeepSeek — configured per user
Automation Engine
Schedule any LLM workflow. The automation engine is itself accessible via MCP tools, so AI agents can create, update, and monitor their own scheduled tasks.
Trigger types:
interval— run every N seconds (with optionalstart_at/end_atwindow for one-shot runs)cron— full cron expression with timezone (0 8 * * *for 08:00 daily)event— trigger on named event emitted from tools or webhooks
Payload types:
telegram_bot_message— send a notificationllm_tool_agent— full ReAct loop with any prompt and tool accessmcp_tool— call a specific tool with arguments
Practical recipes:
Daily BNB market report at 08:00
cron: "0 8 * * *"
payload: llm_tool_agent
prompt: "Fetch BNBUSDT 1h and 4h klines with RSI/MACD/SMA indicators.
Read my BNB goals from memory. Generate concise analysis.
Send to Telegram."
Weekly Teamwork summary every Monday 09:00
cron: "0 9 * * 1"
prompt: "List my overdue tasks and tasks due this week.
Summarize in bullet points. Send to Slack #general."
One-shot reminder in 5 minutes
interval_sec: 60, start_at: now+5min, end_at: start_at+90sec
payload: telegram_bot_messageMulti-Agent Flows
Build graphs of specialized agents that delegate to each other. Each agent has:
Its own system prompt
Allowed tool set (policy per integration/tool)
Mounted skills from the global catalog
Optional custom MCP server connections
Flow: "Morning Operations"
Orchestrator Agent
├── delegates to → Market Agent (Binance tools only)
├── delegates to → Calendar Agent (Google Calendar tools only)
└── delegates to → Notifier Agent (Telegram Bot only)Flows can be triggered manually, via automation scheduler, or through MCP.
Hub Protocol — How AI Clients Use It
The hub exposes 4 meta-tools that give AI clients full access to everything without schema bloat:
Tool | When to use |
| Discover which providers are connected |
| Primary — find tools by semantic intent. Query = 2-4 action phrases |
| Browse all tools for a specific provider |
| Execute a tool by exact name |
Optimal workflow for any AI client:
1. hub.tools.search(query="teamwork create task; add task to project")
→ returns: teamwork.tasks.bulk_create, teamwork.projects.list, teamwork.tasklists.list
2. hub.tools.call(provider="teamwork", tool_name="teamwork.tasks.bulk_create",
arguments={...})
→ doneQuery format for hub.tools.search:
Use 2-4 short action phrases separated by
;Include provider name + action verb + entity type
Examples:
"slack send message; post to channel""telegram list dialogs; my chats""binance get ticker BNBUSDT; market price""memory save preference; remember this"
Architecture
┌──────────────────────────────────────────────────────────────────────┐
│ AI Clients │
│ Claude Desktop │ ChatGPT │ Cursor │ Telegram Bot │ Web UI │
└──────────────────────┬───────────────────────────────────────────────┘
│ JSON-RPC 2.0 + Bearer Token
▼
┌──────────────────────────────────────────────────────────────────────┐
│ MCP Hub │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Semantic Tool Router │ │
│ │ sentence-transformers (CPU) · cosine similarity │ │
│ │ intent expansion · provider ranking · tool ranking │ │
│ └───────────────────────────┬─────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ ReAct Orchestration Engine │ │
│ │ hub.tools.search · hub.tools.call · multi-step loop │ │
│ │ identity bootstrap · retry logic · answer synthesis │ │
│ └───────────────────────────┬─────────────────────────────────┘ │
│ │ │
│ ┌──────┬──────┬──────┬──────┴──────┬──────┬──────┬──────┬───────┐ │
│ │Team- │Slack │Miro │Figma │Bin- │Tele- │Mem- │Auto- │ │
│ │work │ │ │ │ance │gram │ory │mation │ │
│ │47 │19 │18 │20 │11 │5+2 │7 │11 │ │
│ │tools │tools │tools │tools │tools │tools │tools │tools │ │
│ └──────┴──────┴──────┴─────────────┴──────┴──────┴──────┴───────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ SQLite │ FTS5 │ Vector Embeddings │ AES-256 Tokens │ │
│ │ Audit Log │ OAuth 2.0 + PKCE │ Auto Migrations │ │
│ └─────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────┘Quick Start
Docker (Recommended)
git clone https://github.com/Vangardo/mcp_hub.git
cd mcp_hub
cp .env.example .env
# Set: ADMIN_EMAIL, ADMIN_PASSWORD, JWT_SECRET, TOKENS_ENCRYPTION_KEY
cd docker
docker-compose up -d
# Open http://localhost:8000Local Development
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reloadConnecting AI Clients
Claude Desktop
Generate a Personal Access Token in MCP Hub → Settings → Tokens, then add to claude_desktop_config.json:
{
"mcpServers": {
"mcp-hub": {
"url": "https://your-domain.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_PAT_TOKEN"
}
}
}
}ChatGPT (Actions)
Click Get GPT Config in MCP Hub
Use the OAuth tab — ChatGPT auto-discovers endpoints via RFC 8414
Server URL:
https://your-domain.com/mcp
Cursor / Other MCP Clients
Same as Claude Desktop — Bearer token + MCP endpoint URL.
Provider-Scoped Connections (optional)
Add X-MCP-Provider header to expose a single integration directly (bypasses hub meta-tools):
{
"mcpServers": {
"mcp-hub-teamwork": {
"url": "https://your-domain.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN",
"X-MCP-Provider": "teamwork"
}
}
}
}Security
Feature | Details |
Token encryption | AES-256 at rest for all OAuth/API tokens |
JWT authentication | Configurable expiration, refresh token rotation |
Personal Access Tokens | SHA-256 hashed, expiration support, last-used tracking |
OAuth 2.0 + PKCE | Full RFC 8414/7591/9728 for ChatGPT integration |
Client Credentials | Machine-to-machine auth for custom apps |
Audit logging | Every tool call: user, provider, tool name, request, response, status |
Memory safety | Pattern detection blocks auto-saving passwords, keys, secrets |
Admin approval | New users require admin approval before access |
Per-user isolation | Each user's credentials, memory, and connections are fully isolated |
Admin Panel
Navigate to Admin in the top nav (admin users only):
Users — Approve/reject signups, manage roles, reset passwords, view per-user connections
Audit Log — Filter by user, provider, action, status, date range. Full request/response payloads
Settings — Configure public URL, LLM defaults, OAuth credentials for all integrations
Configuration
Required
ADMIN_EMAIL=admin@example.com # Auto-created on first run
ADMIN_PASSWORD=your-secure-password
JWT_SECRET=your-jwt-secret-min-32-chars
TOKENS_ENCRYPTION_KEY=your-32-char-encryption-key
BASE_URL=http://localhost:8000Semantic Routing (optional tuning)
SEMANTIC_TOOL_ROUTING_ENABLED=true
EMBEDDING_MODEL_NAME=intfloat/multilingual-e5-small # Downloads on first run
SEMANTIC_TOP_PROVIDERS=3
SEMANTIC_TOP_TOOLS=5
SEMANTIC_INTENT_EXPANSION_ENABLED=true
SEMANTIC_INTENT_PHRASE_COUNT=5Integration Credentials
# Teamwork (https://developer.teamwork.com/)
TEAMWORK_CLIENT_ID=
TEAMWORK_CLIENT_SECRET=
# Slack (https://api.slack.com/apps)
SLACK_CLIENT_ID=
SLACK_CLIENT_SECRET=
# Miro (https://miro.com/app/settings/user-profile/apps)
MIRO_CLIENT_ID=
MIRO_CLIENT_SECRET=
# Figma (https://www.figma.com/developers/apps)
FIGMA_CLIENT_ID=
FIGMA_CLIENT_SECRET=
# Google Calendar (https://console.cloud.google.com/apis/credentials)
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
# Telegram personal account (https://my.telegram.org/)
TELEGRAM_API_ID=
TELEGRAM_API_HASH=
# Binance — users connect via their own API Key in the UI
# No server-side credentials neededAll credentials can also be configured via Admin > Settings in the web UI.
Tools Reference
Hub (4 tools)
Tool | Description |
| List connected integrations with tool counts |
| Semantic search — find tools by intent phrases. Primary discovery method |
| List all tools for a specific provider |
| Execute a tool by exact name with arguments |
Teamwork (47 tools)
Tool | Description |
| List all projects |
| List team members |
| Get current user |
Tool | Description |
| List tasks with filters (status, assignee, due date, tags) |
| Get full task details by ID |
| Tasks due today |
| Overdue tasks |
| Unblocked tasks ready to work on |
| Tasks blocked by dependencies |
Tool | Description |
| Create up to 10 tasks with subtasks, dependencies, and tags |
| Update up to 10 tasks at once |
| Mark task as complete |
Tool | Description |
| List task lists in a project |
| Get list details |
| Create new list |
| Update list |
| Delete list |
| Copy list to another project |
| Move list to another project |
Tool | Description |
| Create subtask under parent |
| List subtasks |
| Get predecessors & dependents |
| Replace all predecessors |
| Add one predecessor |
| Remove one predecessor |
| Remove all predecessors |
| Set dependencies for up to 10 tasks |
Tool | Description |
| Log time entry |
| List time entries |
| Get time totals for reporting |
Tool | Description |
| List all tags |
| Get or create tag by name |
| Create tag |
| Update tag |
| Delete tag |
| Add comment to task |
| List task comments |
| List workflow stages |
| List board columns |
| Move task to stage by ID |
| Move task to stage by name |
| Move task to column by ID |
| Move task to column by name |
Slack (19 tools)
Tool | Description |
| List channels (public, private, or filtered) |
| List workspace users |
| Get current user |
| Get user details by ID |
| Find user by email |
Tool | Description |
| Post to channel (supports threads) |
| Get channel message history |
| List 1:1 DMs |
| List group DMs |
| Send direct message |
| Get DM history |
| Open DM with user |
| Open group DM |
Tool | Description |
| Create canvas with markdown |
| Edit content (append/prepend/replace) |
| Delete canvas |
| Share with users/channels |
| Find sections by heading |
Miro (18 tools)
Tool | Description |
| Search/list boards |
| Get board details |
| Create board |
| Update board |
| Delete board |
| Copy board with content |
| List board members & roles |
| Share with users by email |
| Get current user |
Tool | Description |
| List items (filter by type) |
| Get item details |
| Delete item |
| Create up to 10 sticky notes |
| Create up to 10 text items |
| Create up to 10 shapes (20+ types) |
| Create up to 10 cards |
| Create up to 10 connectors |
Figma (20 tools)
Tool | Description |
| Main tool — CSS-ready HTML + design tokens. Overview or CSS mode |
| Compact text tree of file structure |
| Get current user |
| Lightweight file metadata |
| Export nodes as PNG/SVG/JPG/PDF |
| Get image fill URLs |
| List file versions |
Tool | Description |
| List comments |
| Create comment |
| Delete comment |
| List team projects |
| List files in project |
| List published team components |
| List file components |
| Get component metadata |
| List published styles |
| List file styles |
| Get style metadata |
Binance (11 tools)
Tool | Description |
| OHLCV candles + indicators (RSI 14, MACD 12/26/9, Bollinger 20/2, SMA 20). Always include |
| 24h price stats. Omit symbol for top 20 by volume |
| Order book with spread analysis and wall detection |
| Top gainers/losers (filters low-volume pairs) |
Tool | Description |
| Spot balances with estimated USD values |
| List unfilled orders |
| Recent executed trades |
| Place BUY order (MARKET / LIMIT) |
| Place SELL order (MARKET / LIMIT) |
| Cancel order by ID |
| Check order status |
Telegram (5 + 2 tools)
Personal account (MTProto) — send as yourself, read history, search:
Tool | Description |
| Get current user info |
| List all chats |
| Send message to peer (username, phone, or ID) |
| Search messages |
| Get chat history |
Bot API — notifications only:
Tool | Description |
| Send notification via bot (requires chat_id) |
| Get bot identity |
Memory (7 tools)
Built-in — always available, no connection needed.
Tool | Description |
| Load context pack by sections. Pass |
| Hybrid search: FTS5 keywords + vector similarity, results merged |
| Create/update item. Auto-vectorized. Deduplicates by (type + scope + title) |
| Delete by ID or title |
| Toggle pinned status (pinned items never expire) |
| Set expiration in days (null = permanent) |
| Pre-save check — detects secrets, validates sensitivity, suggests TTL |
Web Search (3 tools)
Tool | Description |
| Search the web. Returns titles, URLs, snippets |
| Fetch and extract text from any URL |
| Combined: search + open top results in one call |
Database
SQLite with automatic migrations on startup. Zero configuration required.
Table | Purpose |
| Accounts, roles (admin/user), approval status |
| OAuth tokens (AES-256 encrypted), connection metadata |
| JWT refresh token rotation |
| PAT with SHA-256 hashing & expiration |
| Client credentials for OAuth 2.0 apps |
| Full tool call audit trail |
| Web/Telegram conversation history |
| AI memory with FTS5 search index |
| FTS5 virtual table (auto-synced via triggers) |
| Vector embeddings for semantic memory search |
| Vector embeddings for semantic tool routing |
| Vector embeddings for provider-level routing |
| Scheduler engine |
| Agent graph and policies |
| Flow definitions and execution history |
| Global reusable skills library |
API Endpoints
Interactive docs at /docs (Swagger) and /redoc.
Endpoint | Description |
| MCP JSON-RPC 2.0 gateway |
| User login |
| Refresh access token |
| Create Personal Access Token |
| Integration status |
| MCP config for AI clients |
| Chat threads, messages, assistant execution |
| Automation tasks, triggers, runs |
| Agents, flows, policies, skills |
| Memory management UI |
| OAuth 2.0 metadata (RFC 8414) |
Adding New Integrations
Create
app/integrations/your_integration/Implement
BaseIntegration(seeapp/integrations/base.py):name,display_name,description,auth_typeget_tools()→ list ofToolDefinitionwithuse_casesandtagsfor semantic routingexecute_tool()→ dispatch to tool handlers
Register in
app/integrations/registry.pyAdd UI card in
app/ui/templates/integrations.html
Tools are automatically embedded into the semantic index on next startup — no additional configuration.
License
MIT License — see LICENSE for details.
MCP Hub — 130+ tools. 3 endpoints. One server. Semantic routing, vector memory, ReAct orchestration, multi-agent flows, and automation — all self-hosted.
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.
Latest Blog Posts
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/Vangardo/mcp_hub'
If you have feedback or need assistance with the MCP directory API, please join our Discord server