enable-nz-mcp
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全体の全文検索。
パラメータ | 型 | 必須 | 備考 |
| string | はい | 検索語 |
| integer | いいえ | デフォルト5、最大20 |
| string | いいえ | 1つのセクションに制限(例: |
関連性でランク付けされた一致するページを返します。各ページにはurl、title、section、およびハイライトされたスニペットが含まれます。
get_page
URLで1ページの全文を取得します。
パラメータ | 型 | 必須 |
| string | はい |
url、title、section、description、content、crawled_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
エージェントを開く → ツール → ツールを追加 → 新しいツール → Model Context Protocol。
サーバー名:
enable-nz-mcp(または任意の名前 — これは単なるラベルです)。サーバーURL:
https://enable-nz-mcp.duckdns.org/mcp認証: 認証なし(サーバーに
API_KEYが設定されていない限りそのままにします。設定されている場合は、APIキー/ベアラー認証オプションを選択して提供してください)。作成 → Copilot StudioはStreamable HTTP(2025年8月にSSEを廃止して以来サポートしている唯一のトランスポート)で接続し、
search_enable_nz、get_page、list_sectionsを一覧表示します。ツールをエージェントに追加し、「enable.co.nzで車椅子の資金調達を検索」のようなプロンプトでテストします。
VS Code Copilot
コマンドパレットを開く → MCP: Add Server。
HTTPを選択し、
https://enable-nz-mcp.duckdns.org/mcpを入力します。接続すると、VS Codeは
search_enable_nz、get_page、list_sectionsを利用可能なツールとして一覧表示します。
Claude Desktop
設定 → コネクタ → カスタムコネクタを追加。
URL:
https://enable-nz-mcp.duckdns.org/mcp。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_KEY、DEPLOY_HOST、DEPLOY_USER。authorized_keysのcommand=ディレクティブで制限された専用のデプロイキーペアを使用するため、任意のシェルではなくrsync/mvのみを実行できます。
v1の対象外
埋め込み / セマンティック検索(1つのマーケティングサイトにはSQLite FTS5によるキーワード検索で十分)
ヘッドレスブラウザレンダリング
マルチサイトサポート
いかなる書き込み操作
ユーザーレベルの認証またはテナントごとの分離
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