mcp-tool-hub
MCP Tool Hub
Ein modularer, erweiterbarer Model Context Protocol-Multi-Server-Hub — entwickelt in TypeScript für IT-Automatisierungsteams.
Ermöglichen Sie Ihrem LLM den Zugriff auf reale Werkzeuge: Dateien, Git, Webinhalte und persistenten Speicher. Stellen Sie die Lösung über Ansible gleichzeitig auf einer beliebigen Anzahl von Client-Maschinen bereit.
Architektur
mcp-tool-hub/
├── packages/
│ ├── core/ ← Shared types + BaseMCPServer abstract class
│ ├── server-filesystem/ ← Sandboxed local file access (read/write/list/delete)
│ ├── server-git/ ← Git log, diff, file contents, branches, status
│ ├── server-fetch/ ← Web fetching: HTML, JSON APIs, URL health checks
│ └── server-memory/ ← Persistent JSON knowledge base (survives restarts)
├── host/ ← Orchestrator: registry + CLI + stdio JSON interface
├── ansible/ ← Playbook, inventory, systemd service templates
└── docs/ ← How to add new servers (with template)Die Architektur folgt dem Model Context Protocol-Muster:
Jeder Server ist vollständig unabhängig — eigenes Paket, eigener Build
Die Registry im Host bildet zur Laufzeit
toolName → serverabDas CLI stellt eine stdio-JSON-Schnittstelle bereit — jede LLM-Integration sendet
{"toolName":"...", "arguments":{...}}an stdin und liest das Ergebnis von stdoutEinen neuen Server hinzufügen = Paket erstellen,
BaseMCPServererweitern, incli.tsregistrieren
Related MCP server: mcp-toolbox
Schnellstart
1. Installieren & Bauen
git clone https://github.com/your-org/mcp-tool-hub.git
cd mcp-tool-hub
npm install
npm run build2. Konfigurieren
cp .env.example .env
# Edit .env with your paths and settings3. Ausführen
# Via npm
npm run start --workspace=host
# Or directly
node host/dist/cli.js4. Ein Tool aufrufen
Senden Sie JSON an stdin, erhalten Sie JSON von stdout:
echo '{"toolName":"read_file","arguments":{"path":"hello.txt"}}' | node host/dist/cli.jsVerfügbare Tools
📁 Filesystem Server
Alle Operationen sind auf MCP_FS_ROOT beschränkt (Sandbox). Pfad-Traversal (../) ist blockiert.
Tool | Beschreibung |
| Dateiinhalt lesen (utf8 oder base64) |
| In eine Datei schreiben oder anhängen |
| Verzeichnisinhalt auflisten (optional rekursiv) |
| Eine Datei löschen |
| Eine Datei verschieben oder umbenennen |
| Größe, Datum und Typ eines Pfades abrufen |
🔀 Git Server
Nur lesend. Keine Schreiboperationen.
Tool | Beschreibung |
| Commit-Historie für ein Repo oder eine Datei |
| Dateiinhalt bei einem bestimmten Commit/Branch |
| Diff zwischen zwei Refs |
| Status des Arbeitsverzeichnisses |
| Branches auflisten (lokal + optional remote) |
| Vollständige Commit-Details und Diff |
🌐 Fetch Server
Unterstützt eine optionale Domain-Whitelist über MCP_FETCH_ALLOWED_DOMAINS.
Tool | Beschreibung |
| HTML oder Text von einer URL abrufen |
| Eine JSON-API-Antwort abrufen und parsen |
| Prüfen, ob eine URL erreichbar ist (HEAD-Anfrage) |
🧠 Memory Server
Persistent über Neustarts hinweg. Basiert auf einer JSON-Datei.
Tool | Beschreibung |
| Wert mit Schlüssel, Namespace und Tags speichern |
| Wert anhand des Schlüssels abrufen |
| Volltextsuche über alle Einträge |
| Einen Eintrag löschen |
| Alle Namespaces mit Anzahl auflisten |
| Alle Einträge in einem Namespace löschen |
Ansible-Bereitstellung
Bereitstellung auf allen Ihren Client-Maschinen gleichzeitig:
cd ansible
# First time
ansible-playbook -i inventory.yml deploy-mcp-hub.yml
# Update only (rebuild + restart)
ansible-playbook -i inventory.yml deploy-mcp-hub.yml --tags update
# Deploy to specific group
ansible-playbook -i inventory.yml deploy-mcp-hub.yml --limit serversDas Playbook:
Installiert Node.js 20 (falls nicht vorhanden)
Erstellt einen dedizierten
mcp-hub-SystembenutzerKopiert und baut das Projekt
Schreibt die
.env-Konfiguration aus Ihren Ansible-VariablenInstalliert und startet einen systemd-Dienst (automatischer Neustart bei Fehler)
Host-spezifische Variablen in inventory.yml ermöglichen es Ihnen, unterschiedliche erlaubte Domains, Log-Level und Pfade pro Maschinengruppe zu konfigurieren.
Einen neuen Server hinzufügen
Siehe docs/adding-a-new-server.template.ts für die vollständige Vorlage mit Kommentaren.
Kurz gesagt:
// 1. Create packages/server-myservice/src/my-server.ts
export class MyServer extends BaseMCPServer {
constructor(options: MyOptions) {
super(SERVER_INFO, options);
this.registerTool("my_tool", this.handleMyTool.bind(this));
}
private async handleMyTool(args) {
return this.ok({ result: "done" });
}
}
// 2. Register in host/src/cli.ts
hub.use(new MyServer({ apiKey: process.env.MY_API_KEY! }));Ideen: server-slack, server-postgres, server-docker, server-ansible, server-ssh, server-jira
Umgebungsvariablen
Variable | Standard | Beschreibung | |||
|
| Wurzelverzeichnis für alle Hub-Daten | |||
|
| Wurzelverzeichnis der Dateisystem-Sandbox | |||
|
| Basispfad für Git-Repos | |||
|
| Datei für den Speicher | |||
| (leer = alle) | Kommagetrennte Domain-Whitelist | |||
|
| `debug | info | warn | error` |
Sicherheitshinweise
Dateisystem: Streng isoliert (Sandbox). Pfad-Traversal-Angriffe führen zu einem Fehler, nicht zur Datenherausgabe.
Git: Nur lesend. Keine
commit-,push- oderclone-Operationen verfügbar.Fetch: Optionale Domain-Whitelist verhindert SSRF zu internen Diensten.
Systemd-Dienst: Läuft als Nicht-Root-Benutzer mit
PrivateTmp=trueundNoNewPrivileges=true.
Anforderungen
Node.js ≥ 18 (für native
fetch-API)Git (für
server-git)Linux mit systemd (für Ansible-Bereitstellung)
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
- AlicenseNot gradedqualityDmaintenanceA modular MCP server providing file operations, web search, URL scraping, and sandboxed command execution for LLM interactions.1MIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive MCP server enabling LLMs to execute commands, manage files, interact with Figma, search the web, generate images, and more, extending their capabilities beyond text generation.Apache 2.0
- AlicenseNot gradedqualityAmaintenanceMCP server that gives any LLM a managed Docker workspace with live browser, terminal, code execution, document skills, and autonomous sub-agents.1,560117MIT
- AlicenseNot gradedqualityDmaintenanceA powerful MCP server that enables LLMs to safely execute code, control file systems, search the web, and integrate with services like Gmail and TMDB.MIT
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
An MCP server that gives your AI access to the source code and docs of all public github repos
Cloud-hosted MCP server for durable AI memory
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/TOMJARA/mcp-tool-hub'
If you have feedback or need assistance with the MCP directory API, please join our Discord server