Skip to main content
Glama
liam-edmunds

enable-nz-mcp

by liam-edmunds

enable-nz-mcp

公開・ホスト型のMCPサーバーで、enable.co.nzのコンテンツを検索可能なツールとして公開し、Copilot Studio、VS Code Copilot、Claude Desktop、または任意のMCPクライアントから接続できます。

これは個人のポートフォリオプロジェクトです。Enable New Zealandや雇用主とは一切関係ありません。公開ウェブサイトの公開コンテンツのみを読み取ります。

  • サーバー: https://enable-nz-mcp.duckdns.org/mcp (Streamable HTTP)

  • ヘルスチェック: https://enable-nz-mcp.duckdns.org/health


アーキテクチャ

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

サーバーはインデックスをメモリにキャッシュしません。すべてのツール呼び出しは、ディスク上のindex.dbに対して新しい読み取り専用接続を開きます。毎週のクロールがインデックスを再構築し、単一のアトミックなmvで入れ替えるため、ダウンタイムや再起動なしでインデックスが更新されます。

すべての方向で読み取り専用です。クローラーはenable.co.nzのみを読み取り、MCPツールはローカルのSQLiteインデックスのみを読み取ります。いかなる書き込み操作も行いません。


Related MCP server: MCP Knowledge Base Server

ツール

search_enable_nz

enable.co.nz全体の全文検索。

パラメータ

必須

備考

query

string

はい

検索語

limit

integer

いいえ

デフォルト5、最大20

section

string

いいえ

1つのセクションに制限(例: services

関連性でランク付けされた一致するページを返します。各ページにはurltitlesection、およびハイライトされたスニペットが含まれます。

get_page

URLで1ページの全文を取得します。

パラメータ

必須

url

string

はい

urltitlesectiondescriptioncontentcrawled_atを返します。約15,000文字を超えるコンテンツは切り詰められ、レスポンスにtruncated: trueが含まれます。

list_sections

入力はありません。サイトのトップレベルセクションとページ数を一覧表示し、インデックスのcrawled_atタイムスタンプも表示します。検索前の方向付けや、データの鮮度の確認に役立ちます。


クエリ例

接続後、MCPクライアントに次のような質問ができます:

  • enable.co.nzで車椅子の資金調達情報を検索してください。

  • enable.co.nzのインデックスはどのセクションをカバーしていますか?

  • https://www.enable.co.nz/services の全文を取得して要約してください。


MCPクライアントの接続

Copilot Studio

  1. エージェントを開く → ツールツールを追加新しいツールModel Context Protocol

  2. サーバー名: enable-nz-mcp(または任意の名前 — これは単なるラベルです)。

  3. サーバーURL: https://enable-nz-mcp.duckdns.org/mcp

  4. 認証: 認証なし(サーバーにAPI_KEYが設定されていない限りそのままにします。設定されている場合は、APIキー/ベアラー認証オプションを選択して提供してください)。

  5. 作成 → Copilot StudioはStreamable HTTP(2025年8月にSSEを廃止して以来サポートしている唯一のトランスポート)で接続し、search_enable_nzget_pagelist_sectionsを一覧表示します。ツールをエージェントに追加し、「enable.co.nzで車椅子の資金調達を検索」のようなプロンプトでテストします。

VS Code Copilot

  1. コマンドパレットを開く → MCP: Add Server

  2. HTTPを選択し、https://enable-nz-mcp.duckdns.org/mcpを入力します。

  3. 接続すると、VS Codeはsearch_enable_nzget_pagelist_sectionsを利用可能なツールとして一覧表示します。

Claude Desktop

  1. 設定 → コネクタカスタムコネクタを追加

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

  3. ClaudeはStreamable HTTPトランスポートを自動的にネゴシエートします。

その他のMCPクライアント

Streamable HTTPトランスポートを使用して、https://enable-nz-mcp.duckdns.org/mcpを指定します。サーバーにAPI_KEYが設定されている場合は、Authorization: Bearer <key>を送信します。


ローカル開発

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

実行中のサーバーをMCP Inspectorでテストします:

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

または手動でスモークテスト:

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"}'

テストスイートを実行:

npm test

デプロイ

サーバーは既存のDigitalOceanドロップレット上で、専用の非特権システムユーザー(mcpsvc)として実行され、同じボックス上の他のサービスから分離されています。mcpsvcにはsudoがなく、/opt/enable-nz-mcp以外への読み取りアクセスもありません。pm2プロセス設定についてはdeploy/ecosystem.config.cjsを、リバースプロキシブロックについてはdeploy/Caddyfile.exampleを参照してください。

pm2とCaddyの設定変更にはどちらもroot権限が必要なため、mcpsvcは単独ではpm2 saveまでしか実行できません。管理者がpm2 startup(再起動後もプロセスを維持するため)を実行し、Caddyサイトブロックをインストール/リロードする必要があります。レート制限は現在Caddyレイヤーでは適用されていません。サードパーティのcaddy-ratelimitプラグインが必要ですが、このボックスのCaddyビルドには含まれていないためです。

.github/workflows/refresh-index.ymlワークフローは、サイトを毎週(日曜日02:00 UTC、またはworkflow_dispatchで手動)再クロールし、最小ページ数/サイズでゲートし、rsync + アトミックなmvをSSH経由で使用して新しいインデックスをデプロイします。3つのリポジトリシークレットが必要です:DEPLOY_SSH_KEYDEPLOY_HOSTDEPLOY_USERauthorized_keyscommand=ディレクティブで制限された専用のデプロイキーペアを使用するため、任意のシェルではなくrsync/mvのみを実行できます。


v1の対象外

  • 埋め込み / セマンティック検索(1つのマーケティングサイトにはSQLite FTS5によるキーワード検索で十分)

  • ヘッドレスブラウザレンダリング

  • マルチサイトサポート

  • いかなる書き込み操作

  • ユーザーレベルの認証またはテナントごとの分離

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