MCP Census Server について
HTTP 上の JSON-RPC を通じて米国国勢調査局のデータにアクセスする MCP サーバーです。国勢調査データを必要とするアプリやクライアント向けに、レスポンスキャッシュ、API キー認証、Next.js クライアントを備えています。
主な機能
- 01census/get による国勢調査データ取得
- 02JSON-RPC の単一・バッチリクエスト
- 03API レスポンスを 5 分間キャッシュ
- 04Pydantic によるリクエスト・レスポンス検証
- 05API キー認証、ヘルスチェック、インタラクティブドキュメント
- 06Next.js クライアントを同梱
活用シーン
- 01MCP ツール経由で Census Bureau のデータを検索
- 02Next.js クライアントに国勢調査データを接続
- 03API キーでサービスへのリクエストを保護
MCP 対応
MCP の初期化、ツール一覧、ツール呼び出しを実装し、HTTP 上の JSON-RPC を通じてクライアントに census/get を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Census Server
HTTP 経由の JSON-RPC を使用して米国国勢調査局のデータにアクセスする、堅牢な Model Context Protocol(MCP)サーバーです。
機能
- JSON-RPC 2.0(単一リクエストとバッチリクエスト)
- リクエスト/レスポンスの検証に Pydantic モデルを使用
- Census API のレスポンスをキャッシュ(TTL 5分)
- 構造化ログ(Python の
loggingを使用) X-API-Keyヘッダーによる API キー認証- ヘルスチェックエンドポイント(
/health) - インタラクティブな API ドキュメント(Swagger UI は
/docsで利用可能) - MCP メソッド:
initialize:プロトコルのバージョンと機能をネゴシエートnotifications/initialized:クライアントの準備完了通知tools/list:利用可能なツール(census/get)を一覧表示tools/call:census/getを呼び出して国勢調査局のデータを取得
クイックスタート
- リポジトリをクローンして、ディレクトリに移動します:
git clone https://github.com/kaman1/mcp_census_server.git cd mcp_census_server - 環境設定テンプレートをコピーして、キーを設定します:
cp .env.example .env # Edit .env: # CENSUS_API_KEY=<your_census_api_key> # SERVER_API_KEY=<your_mcp_server_secret_key> - 依存関係をインストールします:
pip install -r requirements.txt - サーバーを起動します:
uvicorn app:app --host 0.0.0.0 --port 8000 --reload - ヘッダー
X-API-Key: <SERVER_API_KEY>を指定して、http://localhost:8000/に JSON-RPC リクエストを送信します。
tools/list 呼び出しの例:
curl -X POST http://localhost:8000/ \
-H "Content-Type: application/json" \
-H "X-API-Key: $SERVER_API_KEY" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
開発
- テスト:
pytest - フォーマット:
black . - インポート:
isort . - リンティング:
flake8 . - CI パイプラインは
.github/workflows/ci.ymlで設定されています
ドキュメント
- アーキテクチャ:
docs/architecture.md - 使用例:
docs/usage.md - 認証:
docs/authentication.md - スタイル付きドキュメント(MDX + Mintlify):
npm install npm run serve:docs
ホストされたドキュメント
GitHub Pages を使用して、これらのドキュメントを公開できます:
- GitHub リポジトリで、Settings > Pages に移動します。
- Source で、main ブランチと
/docsフォルダーを選択します。 - Save をクリックします。
ドキュメントは次の場所で公開されます:
https://<username>.github.io/mcp_census_server/
この URL をリポジトリの About セクションにプロジェクトのウェブサイトとして追加できます。
クライアントアプリケーション
client/ ディレクトリには、このサーバーと連携できる Next.js ベースの MCP クライアントが含まれています。
- クライアントフォルダーに移動します:
cd client - 環境設定ファイルの例をコピーして、キーとサーバー URL を入力します:
cp .env.example .env.local # Set OPENAI_API_KEY, MCP_SERVER_URL (e.g. https://your-server), SERVER_API_KEY - 依存関係をインストールして、開発サーバーを起動します:
npm install npm run dev - http://localhost:3000 を開いて、クライアント UI を使用します。
クイックスタートスクリプト
環境を設定して、サーバーとクライアントを一度に起動できます:
chmod +x start.sh
./start.sh
必要なキーをすべて入力するよう求められ、MCP サーバーとクライアントが同時に実行されます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。