Admissions MCP Hub
入学管理 MCP ハブ
ガバナンス対応の Model Context Protocol サーバーで、単一の MCP コントラクトを通じて、コース、バッチ、料金、リード、コールバックの各機能を 2 つの独立した AI チャットアプリに公開する。
これが示すこと
1 つの MCP サーバー、2 つの独立したクライアント(ラーナー + カウンセラー)— 統合の重複なし
DB 資格情報、認証、監査、検証 — すべてサーバー側に一元化
書き込みには確認ゲート(prepare → confirm)が必要 — LLM 単独ではリードを作成できない
すべてのツール呼び出しが監査される(アクター、クライアント、引数ハッシュ、結果、レイテンシ)
MCP なしの比較デモは、MCP がない場合に何を失うかを示す

Related MCP server: company-state-mcp
クイックスタート
# 1. PostgreSQL
docker compose up -d postgres
# 2. Migrate + seed
uv sync
uv run alembic upgrade head
uv run python scripts/seed_demo.py
# 3. Start services (4 terminals)
uv run uvicorn services.mcp_server.app:asgi_app --port 8010
uv run uvicorn services.learner_host.api:app --port 8020
uv run uvicorn services.counsellor_host.api:app --port 8030
uv run streamlit run ui/app.py --server.port 8501http://localhost:8501 を開く — 2 つのチャットタブ(ラーナー + カウンセラー)。
MCP なしの比較:
uv run streamlit run ui/no_mcp_demo.py --server.port 8502
試してみる
🎓 ラーナーアシスタント
プロンプト | 動作 |
| 4 つのコースを一覧表示 |
| バッチ日程 + 料金見積もり + ポリシー |
| ポリシーのテキストを返す |
| リード作成前の ✅/❌ 確認ゲート |
🎧 カウンセラーコンソール
プロンプト | 動作 |
| 4 つのコースを一覧表示 |
| 定員付きの 3 バッチ |
| 見積もり ID + 合計(INR) |
| 割り当てられたリードを表示 |
| ✅/❌ 確認ゲート |
完全なプロンプトと期待される回答については RUN_GUIDE.md を参照。
アーキテクチャ
ポート | サービス | 役割 |
5433 | PostgreSQL | 信頼できる情報源(コース、バッチ、リード、監査) |
8010 | MCP サーバー | ツール(11)+ リソース(8)+ プロンプト(2)、JWT 認証、RBAC、監査 |
8020 | ラーナーホスト | LangGraph アプリ — ラーナー JWT、書き込み時の確認ゲート |
8030 | カウンセラーホスト | LangGraph アプリ — カウンセラー JWT、リード管理 |
8501 | Streamlit UI | 2 つのチャットタブ(MCP ベース) |
8502 | MCP なしデモ | 同じフロー、DB 直接アクセス — MCP が何を防ぐかを示す |
技術スタック: Python 3.11 · MCP SDK · LangGraph · FastAPI · SQLAlchemy 2 · PostgreSQL 16 · Pydantic v2 · Ollama (qwen3.5:2b) · Streamlit
主要コンセプト
コンセプト | 場所 | なぜ重要か |
確認ゲート |
| 人間の ✅ なしでは LLM がリードを作成できない |
冪等性 |
| ネットワーク再試行で重複が発生しない |
RBAC |
| ラーナーは他人のリードを見られない |
監査 |
| すべての呼び出しを記録:誰が、何を、結果、レイテンシ |
ステートレス性 | サーバー発行の ID( | セッションレスで水平スケーリングが可能 |
プロジェクト構造
scai-mcp-admissions/
├── services/
│ ├── mcp_server/ # MCP server (tools, resources, prompts, auth, audit)
│ ├── learner_host/ # LangGraph learner app (port 8020)
│ └── counsellor_host/ # LangGraph counsellor app (port 8030)
├── ui/
│ ├── app.py # Streamlit — 2 chat tabs (MCP)
│ └── no_mcp_demo.py # Streamlit — no-MCP comparison (direct DB)
├── packages/
│ ├── contracts/ # Pydantic tool inputs/outputs + domain models
│ ├── shared/ # Config, LLM adapter, JWT tokens
│ └── observability/ # Structured logging, tracing
├── scripts/
│ ├── seed_demo.py # Seed 4 courses, 4 batches, 4 fee plans, 3 policies
│ ├── issue_dev_token.py # Issue dev JWTs for manual testing
│ └── run_demo_checks.py # Smoke tests against running server
├── tests/ # unit, contract, integration, security, e2e
├── migrations/ # Alembic migrations
├── data/demo_seed/ # Seed data + knowledge_base.json
├── mcp_concept.ipynb # MCP concept notebook (what/why/how/scale/use cases)
├── mcp_flow_diagram.mmd # Mermaid source for architecture diagram
├── mcp_flow_diagram.png # Rendered architecture diagram
├── RUN_GUIDE.md # Step-by-step run guide with test prompts
└── docker-compose.yml # PostgreSQL 16テスト
uv run pytest # all tests
uv run pytest -m unit # just unit tests
uv run pytest -m contract # contract tests参考文献
mcp_concept.ipynb — MCP コンセプトの完全なウォークスルー
This server cannot be deployed
Maintenance
Related MCP Connectors
Runtime AI governance: decision gates, human approval, hash-chained audit, compliance mapping.
Enterprise AI Control Plane: governance, guardrails, spend tracking, compliance & smart routing.
Tenant-scoped control layer for agent-to-agent systems: governed routing, approvals, evidence.
Register, deploy, review, and govern internal applications built with coding agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to safely query and act on school data (attendance, fees, student records) with strict role-based access control and a two-step write approval flow.-
- FlicenseNot gradedqualityDmaintenanceSingle source of truth and control for agent-operated companies, managing business state with deterministic policy enforcement, seat identity, and hash-chained audit trail.-
- FlicenseNot gradedqualityCmaintenanceEnables controlled AI-agent access to enterprise-shaped tools with a deny-by-default gated write path, human approval, dry-run execution, and append-only audit logging.1-
- AlicenseNot gradedqualityCmaintenanceEnables secure enterprise integration by bridging SQL, financial, SCADA, and document backends to LLM agents with RBAC, DLP redaction, human-in-the-loop approvals, and OpenTelemetry tracing.MIT