Skip to main content
Glama

入学管理 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 8501

http://localhost:8501 を開く — 2 つのチャットタブ(ラーナー + カウンセラー)。

MCP なしの比較: uv run streamlit run ui/no_mcp_demo.py --server.port 8502


試してみる

🎓 ラーナーアシスタント

プロンプト

動作

What courses do you have?

4 つのコースを一覧表示

Tell me about the agentic AI course

バッチ日程 + 料金見積もり + ポリシー

What is the admissions policy?

ポリシーのテキストを返す

I'd like a callback

リード作成前の ✅/❌ 確認ゲート

🎧 カウンセラーコンソール

プロンプト

動作

What courses are available?

4 つのコースを一覧表示

Show me upcoming batches for agentic AI

定員付きの 3 バッチ

Generate a fee quote for mlops

見積もり ID + 合計(INR)

List my leads

割り当てられたリードを表示

Update stage for SCAI-XXXXXXXX to enrolled

✅/❌ 確認ゲート

完全なプロンプトと期待される回答については 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


主要コンセプト

コンセプト

場所

なぜ重要か

確認ゲート

leads_prepare → leads_confirm_create

人間の ✅ なしでは LLM がリードを作成できない

冪等性

IdempotencyRepository(ペイロードハッシュ)

ネットワーク再試行で重複が発生しない

RBAC

_runner.py 内の ROLE_TOOLS マップ

ラーナーは他人のリードを見られない

監査

ToolAuditEvent テーブル

すべての呼び出しを記録:誰が、何を、結果、レイテンシ

ステートレス性

サーバー発行の ID(quote_id、lead_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

参考文献

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An 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.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Single source of truth and control for agent-operated companies, managing business state with deterministic policy enforcement, seat identity, and hash-chained audit trail.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables 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
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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