Skip to main content
Glama
liam-edmunds

enable-nz-mcp

by liam-edmunds

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 query

Der 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

query

string

ja

Suchbegriffe

limit

integer

nein

Standard 5, max. 20

section

string

nein

Auf einen Abschnitt beschränken, z. B. services

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

url

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

  1. Öffnen Sie Ihren Agent → ToolsTool hinzufügenNeues ToolModel Context Protocol.

  2. Servername: enable-nz-mcp (oder was auch immer Sie möchten – dies ist nur ein Label).

  3. Server-URL: https://enable-nz-mcp.duckdns.org/mcp

  4. Authentifizierung: Keine Authentifizierung (so lassen, es sei denn, der Server hat API_KEY gesetzt; in diesem Fall wählen Sie eine API-Key/Bearer-Auth-Option und geben Sie sie an).

  5. 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_page und list_sections auf. 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

  1. Öffnen Sie die Befehlspalette → MCP: Server hinzufügen.

  2. Wählen Sie HTTP und geben Sie https://enable-nz-mcp.duckdns.org/mcp ein.

  3. VS Code listet search_enable_nz, get_page und list_sections als verfügbare Tools auf, sobald die Verbindung hergestellt ist.

Claude Desktop

  1. Einstellungen → ConnectorsBenutzerdefinierten Connector hinzufügen.

  2. URL: https://enable-nz-mcp.duckdns.org/mcp.

  3. 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 .env

Testen Sie den laufenden Server mit MCP Inspector:

npx @modelcontextprotocol/inspector
# connect to http://127.0.0.1:8081/mcp

Oder 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 test

Bereitstellung

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

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    C
    quality
    F
    maintenance
    Enables 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.
    1
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables searching and retrieving records from the DigitalNZ collection, with tools for keyword search and fetching full item details.
    9
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables users to search, read, and query saved bookmark content via a read-only MCP interface, with full-text and optional semantic search.
    4
    MIT

View all related MCP servers

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.

View all MCP Connectors

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/liam-edmunds/enable-nz-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server