PH Schools MCP Server について
PH Schools MCP Server は、フィリピンの学校マスターデータセットを検索・分析するローカルの stdio サーバーです。学校検索や地域一覧、統計に対応し、データをローカルにキャッシュまたは自動取得します。
主な機能
- 01学校の検索
- 02BEIS ID による学校検索
- 03地域と学区の一覧表示
- 04データセット統計の確認
- 05データセットのキャッシュと同期
活用シーン
- 01クエリや地域で学校を検索
- 02BEIS ID から学校情報を取得
- 03データセットの範囲と統計を確認
MCP 対応
stdio 経由で、学校検索、照会、地域一覧、統計のツールを MCP クライアントに提供します。MCP 設定を通じて、クライアントがサーバーの起動とライフサイクルを管理できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @darwinphi/ph-schools-mcp-serverPH_SCHOOLS_DATA_PATHAbsolute path to a local schools dataset JSON file.PH_SCHOOLS_DATA_URLOptional source URL used by sync-data.PH_SCHOOLS_DATA_TAGOptional canonical dataset tag used by sync-data when URL is not provided.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
PH Schools MCP Server
フィリピンの学校マスターリストデータセットを検索・分析するためのローカル stdio MCP サーバーです。
このサーバーが提供する機能
ツール:
search_schoolsget_school_by_beis_idlist_regionslist_divisionsdataset_stats
インストールと実行
npm install
npm start
このリポジトリから手動で実行する場合に限り、npm start を使用してください。
使用するセットアップ
- VS Code MCP(
.vscode/mcp.json):通常の使用にはこれで十分です。ステータスがRunningなら、VS Code はすでにサーバーを起動しています。 - Claude Desktop(
claude_desktop_config.json):通常の使用にはこれで十分です。設定を変更した後は、Claude を再起動してください。 npx -y @darwinphi/ph-schools-mcp-server ...:リポジトリをクローンせずに、一度だけ CLI を使用します。npm install && npm start:このリポジトリでのローカル開発/保守に使用します。
使用シナリオ
mcp.jsonを設定し、手動でnpxを実行しない場合:チャットからのツール呼び出し(dataset_stats、search_schoolsなど)が機能します。- 手動で
npx -y @darwinphi/ph-schools-mcp-serverを実行し、MCP クライアントの設定がない場合:サーバープロセスは起動しますが、チャットクライアントから自動的に使用されることはありません。 mcp.jsonを設定したうえで、手動でもnpxを起動する場合:通常は不要です。起動と停止は MCP クライアントに任せてください。- MCP チャットを使用せずに一度だけコマンドを実行する場合:
npx ... --helpまたはnpx ... sync-data ...を使用してください。
MCP クライアントの設定がない場合、VS Code/Claude によるツール呼び出しは自動的には機能しません。
mcp.json を使用する場合
VS Code で MCP を日常的に使用する場合は、mcp.json を使用してください(Claude Desktop では同等のクライアント設定を使用します)。
次の用途に使用します。
- MCP クライアントによるサーバーの自動起動とライフサイクル管理
- チャットのプロンプトから直接 MCP ツールを使用(
dataset_stats、search_schoolsなど) - ワークスペースでチーム/プロジェクト共通の MCP セットアップを使用
MCP のステータスが Running の場合、クライアントはすでにサーバーを起動しています。通常、手動での npm start や npx の起動は不要です。
npx を使用する場合
リポジトリをクローンまたは開発せず、一度だけ CLI 操作を実行する必要がある場合は、ターミナルから npx を使用してください。
次の用途に使用します。
- 公開済みパッケージが実行できることを確認:
npx -y @darwinphi/ph-schools-mcp-server --help - データセットの手動ダウンロード/更新:
npx -y @darwinphi/ph-schools-mcp-server sync-data --tag v1.0.1 --output "$HOME/.ph-schools/data.json" - クライアントが管理する MCP ライフサイクルの外部で、デバッグ用に手動起動:
npx -y @darwinphi/ph-schools-mcp-server
VS Code/Claude の MCP 設定の代わりに npx で起動しないでください。通常の使用では、設定に基づくサーバーの起動は MCP クライアントに任せてください。
npm install と npm start を使用する場合
通常のクライアント利用ではなく、このリポジトリで作業する場合(開発者/メンテナーのワークフロー)に使用してください。
次の用途に使用します。
- このリポジトリでソースファイルを編集中のローカル開発
- コミット/リリース前のテスト実行
- 未公開のローカル変更のデバッグ
一般的なローカルワークフロー:
npm install
npm test
npm start
VS Code/Claude の MCP 設定がすでに機能している場合、通常は手動で npm start を実行する必要はありません。
CLI(公開済みパッケージ)
# Start MCP server over stdio
npx -y @darwinphi/ph-schools-mcp-server
# Sync canonical dataset once to a chosen path
npx -y @darwinphi/ph-schools-mcp-server sync-data --tag v1.0.1 --output "$HOME/.ph-schools/data.json"
簡単な動作確認
npx -y @darwinphi/ph-schools-mcp-server --help
npx -y @darwinphi/ph-schools-mcp-server sync-data --tag v1.0.1 --output "$HOME/.ph-schools/data.json"
データセットの設定
このサーバーはデフォルトでハイブリッド方式です。
- ローカルのデータセットファイルが存在する場合は、すぐにそのファイルを使用します。
- ローカルのデータセットファイルが存在しない場合は、正規のデータセット URL から自動でダウンロードし、ローカルにキャッシュします。
デフォルトの正規 URL(固定タグ v1.0.1):
https://raw.githubusercontent.com/darwinphi/ph-schools-dataset/v1.0.1/schools_masterlist_2020_2021.json
実行時の環境変数:
PH_SCHOOLS_DATA_PATH:優先するローカル JSON ファイルのパス(ファイルが存在する場合は直接使用し、存在しない場合はこのパスに自動同期します)PH_SCHOOLS_DATA_URL:sync-dataのダウンロード URL を上書きしますPH_SCHOOLS_DATA_TAG:URL が指定されていない場合にsync-dataで使用する正規タグ
VS Code MCP の設定(コピー/貼り付け)
.vscode/mcp.json を設定します。
{
"servers": {
"phSchools": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@darwinphi/ph-schools-mcp-server"],
"env": {
"PH_SCHOOLS_DATA_PATH": "/Users/your-user/.ph-schools/data.json"
}
}
}
}
PH_SCHOOLS_DATA_PATH のファイルが存在しない場合、サーバーは正規のソースから自動でダウンロードし、そのパスに書き込みます。
Claude Desktop の設定(コピー&ペースト)
Claude の設定を更新します。
{
"mcpServers": {
"ph-schools": {
"command": "npx",
"args": ["-y", "@darwinphi/ph-schools-mcp-server"],
"env": {
"PH_SCHOOLS_DATA_PATH": "/Users/your-user/.ph-schools/data.json"
}
}
}
}
シェルで npx が不安定な場合は、グローバルにインストールして "command": "ph-schools-mcp-server" を使用してください。
PH_SCHOOLS_DATA_PATH のファイルが見つからない場合、サーバーは正規のソースから自動的にダウンロードし、そのパスに書き込みます。
一般的な macOS の設定ファイル:
~/Library/Application Support/Claude/claude_desktop_config.json
テストコマンド
npm test
npm run test:package
プロンプトの例
Run dataset_stats and summarize key insights.List all divisions in Region I using list_divisions.Search schools in region "Region I" and division "Ilocos Norte".Get school by BEIS ID 100001 using get_school_by_beis_id.Search schools with query "High School".
公開とリリースの流れ
npm の初回設定(信頼された公開):
- npmjs.com でパッケージ
@darwinphi/ph-schools-mcp-serverを開き、Settings → Trusted publishers に移動します。 - GitHub Actions の信頼された公開元を追加します。以下を指定してください。
- Owner/User:
darwinphi - Repository:
ph-schools-mcp-server - Workflow filename:
cd.yml
- Owner/User:
NPM_TOKENは使用しないでください。リリースワークフローでは OIDC(id-token: write)を使用します。
手動リリースの流れ(v1):
src/constants.jsの固定データセットタグを更新します。- パッケージのバージョンを上げます。
npm version patch # or minor / major
npm version patch の実行内容:
package.jsonのバージョンを更新します(例:1.0.1→1.0.2)package-lock.jsonのバージョンフィールドを更新します- git コミットを作成します
- git タグを作成します(例:
v1.0.2)
server.jsonのバージョンをpackage.jsonに合わせて同期します。- 次を実行します。
npm ci
npm test
npm run test:package
- コミットとタグをプッシュします。
git push
git push --tags
- タグから GitHub リリースノートを作成します。
gh release create v<new_version> --generate-notes --title "v<new_version>"
例:
gh release create v1.0.2 --generate-notes --title "v1.0.2"
- コミットとタグをプッシュします。タグのプッシュ(
v*)により、CD Releaseワークフローが自動的に起動します。 - ワークフローによって npm パッケージが公開され、その後 MCP Registry のメタデータが公開されます。
メタデータのみを更新する場合は、ワークフロー Publish MCP Registry Metadata を使用してください。
ライセンスとデータの出典
- コードのライセンス:ISC(LICENSE)。
- データセットのソース:
darwinphi/ph-schools-dataset(gov.ph のソースデータを基にした正規のリポジトリ)。 - データセットの使用には、引き続きソースの利用条件および適用されるポリシーが適用されます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。