enable-nz-mcp
enable-nz-mcp
Ein öffentlicher, gehosteter MCP-Server, der den Inhalt von enable.co.nz als durchsuchbare Tools bereitstellt, die von Copilot Studio, VS Code Copilot, Claude Desktop oder jedem MCP-Client verbunden werden können.
Dies ist ein persönliches Portfolio-Projekt. Es ist nicht mit Enable New Zealand oder einem Arbeitgeber verbunden und liest nur öffentlich verfügbare Inhalte von einer öffentlichen Website.
Server:
https://enable-nz-mcp.duckdns.org/mcp(Streamable HTTP)Health-Check:
https://enable-nz-mcp.duckdns.org/health
Architektur
GitHub Actions (weekly cron)
└─ crawl enable.co.nz → build index.db.new
└─ rsync over SSH → droplet:/opt/enable-nz-mcp/data/index.db.new
└─ atomic mv → index.db
DigitalOcean droplet (Ubuntu 24.04, Sydney)
├─ Caddy → TLS termination + reverse proxy on enable-nz-mcp.duckdns.org
└─ pm2 → node dist/server.js (port 8081, localhost only)
└─ opens a fresh SQLite read connection per queryDer Server speichert den Index nie im Speicher – jeder Tool-Aufruf öffnet eine frische, schreibgeschützte
Verbindung zu index.db auf der Festplatte. Ein wöchentlicher Crawl baut den Index neu auf und tauscht ihn
mit einem einzigen atomaren mv aus, sodass der Index ohne Ausfallzeiten und ohne Neustart aktualisiert wird.
In jede Richtung schreibgeschützt: Der Crawler liest nur enable.co.nz, und die MCP-Tools lesen nur den lokalen SQLite-Index. Keinerlei Schreiboperationen.
Related MCP server: MCP Knowledge Base Server
Tools
search_enable_nz
Volltextsuche über enable.co.nz.
Parameter | Typ | Erforderlich | Hinweise |
| string | ja | Suchbegriffe |
| integer | nein | Standard 5, max. 20 |
| string | nein | Auf einen Abschnitt beschränken, z. B. |
Gibt passende Seiten nach Relevanz sortiert zurück, jeweils mit url, title, section und einem
hervorgehobenen Ausschnitt.
get_page
Ruft den vollständigen Text einer Seite per URL ab.
Parameter | Typ | Erforderlich |
| string | ja |
Gibt url, title, section, description, content und crawled_at zurück. Inhalte über
~15.000 Zeichen werden abgeschnitten, mit truncated: true in der Antwort.
list_sections
Keine Eingabe. Listet die Top-Level-Abschnitte der Website mit Seitenzahlen und den
crawled_at-Zeitstempel des Index – nützlich zur Orientierung vor einer Suche oder zur Prüfung,
wie aktuell die Daten sind.
Beispielabfragen
Sobald verbunden, fragen Sie Ihren MCP-Client zum Beispiel:
„Suche auf enable.co.nz nach Informationen zur Rollstuhlfinanzierung."
„Welche Abschnitte deckt der enable.co.nz-Index ab?"
„Hole den vollständigen Inhalt von https://www.enable.co.nz/services und fasse ihn zusammen."
Verbinden eines MCP-Clients
Copilot Studio
Öffnen Sie Ihren Agent → Tools → Tool hinzufügen → Neues Tool → Model Context Protocol.
Servername:
enable-nz-mcp(oder was auch immer Sie möchten – dies ist nur ein Label).Server-URL:
https://enable-nz-mcp.duckdns.org/mcpAuthentifizierung: Keine Authentifizierung (so lassen, es sei denn, der Server hat
API_KEYgesetzt; in diesem Fall wählen Sie eine API-Key/Bearer-Auth-Option und geben Sie sie an).Erstellen → Copilot Studio verbindet sich über Streamable HTTP (das einzige Transportprotokoll, das es seit der Abschaffung von SSE im August 2025 unterstützt) und listet
search_enable_nz,get_pageundlist_sectionsauf. Fügen Sie das Tool zu Ihrem Agent hinzu und testen Sie es mit einer Eingabeaufforderung wie „Suche auf enable.co.nz nach Rollstuhlfinanzierung".
VS Code Copilot
Öffnen Sie die Befehlspalette → MCP: Server hinzufügen.
Wählen Sie HTTP und geben Sie
https://enable-nz-mcp.duckdns.org/mcpein.VS Code listet
search_enable_nz,get_pageundlist_sectionsals verfügbare Tools auf, sobald die Verbindung hergestellt ist.
Claude Desktop
Einstellungen → Connectors → Benutzerdefinierten Connector hinzufügen.
URL:
https://enable-nz-mcp.duckdns.org/mcp.Claude verhandelt das Streamable-HTTP-Transportprotokoll automatisch.
Jeder andere MCP-Client
Richten Sie ihn auf https://enable-nz-mcp.duckdns.org/mcp mit dem Streamable-HTTP-Transport. Wenn
API_KEY auf dem Server gesetzt ist, senden Sie Authorization: Bearer <key>.
Lokale Entwicklung
npm ci
cp .env.example .env # edit as needed
npm run crawl # builds data/index.db.new
mv data/index.db.new data/index.db
npm run dev # starts the server with tsx, reading .envTesten Sie den laufenden Server mit MCP Inspector:
npx @modelcontextprotocol/inspector
# connect to http://127.0.0.1:8081/mcpOder führen Sie einen manuellen Smoke-Test durch:
curl http://127.0.0.1:8081/health
curl -X POST http://127.0.0.1:8081/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Führen Sie die Testsuite aus:
npm testBereitstellung
Der Server läuft auf einem bestehenden DigitalOcean-Droplet unter einem eigenen, nicht privilegierten Systembenutzer
(mcpsvc), isoliert von anderen Diensten auf derselben Maschine – mcpsvc hat kein sudo und keinen Lesezugriff
außerhalb von /opt/enable-nz-mcp. Siehe deploy/ecosystem.config.cjs für die pm2-Prozesskonfiguration und
deploy/Caddyfile.example für den Reverse-Proxy-Block.
Sowohl pm2- als auch Caddy-Konfigurationsänderungen benötigen Root-Rechte, daher kann mcpsvc nicht weiter gehen als
pm2 save auf eigene Faust – ein Administrator muss pm2 startup ausführen (um den Prozess über Neustarts hinweg
zu erhalten) und den Caddy-Site-Block installieren/neu laden. Rate Limiting wird derzeit nicht auf der Caddy-Ebene
angewendet: Es erfordert das Drittanbieter-Plugin caddy-ratelimit, das nicht in der Caddy-Build dieser Maschine
enthalten ist.
Der Workflow .github/workflows/refresh-index.yml crawlt die Website wöchentlich neu (Sonntag 02:00 UTC, oder manuell
über workflow_dispatch), prüft eine Mindestanzahl/-größe von Seiten und stellt den neuen Index über rsync + ein
atomares mv über SSH bereit. Er benötigt drei Repository-Secrets: DEPLOY_SSH_KEY, DEPLOY_HOST, DEPLOY_USER –
unter Verwendung eines dedizierten Deploy-Keypairs, das über eine command=-Direktive in authorized_keys
eingeschränkt ist, sodass es nur das rsync/mv ausführen kann, nicht eine beliebige Shell.
Nicht im Umfang von v1
Embeddings / semantische Suche (Stichwortsuche über SQLite FTS5 ist für eine Marketing-Website ausreichend)
Headless-Browser-Rendering
Multi-Site-Unterstützung
Schreiboperationen jeglicher Art
Benutzer-Authentifizierung oder Mandantenisolierung
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
- AlicenseCqualityFmaintenanceEnables searching for any text within a specified Algolia index through an MCP-compatible interface. It allows users to integrate Algolia search capabilities into their environment using an application ID and API key.11MIT
- FlicenseCqualityCmaintenanceEnables semantic search over knowledge-base articles and listing of sample support tickets using MCP tools.4
- AlicenseNot gradedqualityCmaintenanceEnables searching and retrieving records from the DigitalNZ collection, with tools for keyword search and fetching full item details.9MIT
- AlicenseNot gradedqualityCmaintenanceEnables users to search, read, and query saved bookmark content via a read-only MCP interface, with full-text and optional semantic search.4MIT
Related MCP Connectors
GETS NZ MCP — New Zealand Government Electronic Tenders Service (keyless).
data.govt.nz CKAN MCP.
Internet Archive (archive.org) item search & metadata MCP.
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/liam-edmunds/enable-nz-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server