Skip to main content
Glama
stu-management-mcp

stu-management-mcp

by ZhaoDay

学生管理 MCP

stuManagementMcp 是一个基于 TypeScript 和 npm 的本地 stdio MCP 服务,提供平均分计算、成绩评价和学生姓名查询工具。

环境要求

  • Node.js 22 或更高版本

  • npm

Related MCP server: MCP Demo

安装与构建

在项目目录执行:

npm install
npm run build

构建后的服务入口为 dist/index.js。

使用 MCP Inspector 测试

先构建项目,再启动 Inspector:

npm run build
npx @modelcontextprotocol/inspector node dist/index.js

浏览器打开命令输出的 Inspector 地址,在 Tools 页面选择工具并填写参数。调试信息使用 console.error 输出,可在 Inspector 右侧的 Console 标签中查看。

注意:stdio MCP 的标准输出用于 MCP 协议通信,不要使用 console.log 打印调试信息,否则可能导致协议通信异常。

工具列表

calculate_average

计算三个数值的平均值。

输入:

{
  "a": 1,
  "b": 2,
  "c": 3
}

输出:

{
  "average": 2
}

evaluate_score

根据 0-100 的整数分数返回成绩评价。非整数或超出范围的输入会被拒绝。

输入:

{
  "score": 85
}

输出:

{
  "result": "良好"
}

评价规则:

分数范围

评价

0-59

不及格

60-70

及格

71-89

良好

90-100

优秀

get_student_name

根据固定学号查询学生姓名。

学号

姓名

10000

张三

10001

李四

10002

王五

10003

赵六

10004

钱七

输入:

{
  "studentId": 10001
}

输出:

{
  "name": "李四"
}

未找到学号时,工具返回“未找到该用户”。

get_joke

从公开接口获取笑话。type 可选值为 random(随机笑话)、cold(冷笑话)和 duanzi(段子)。

输入:

{
  "type": "cold"
}

输出中的 joke 保留上游笑话接口返回的原始 JSON 内容。接口访问失败时,工具返回“获取笑话失败”。

get_call_logs_by_date

查询某一天的调用日志。date 必填,格式为 YYYY-MM-DD;可选 keyword 在整条日志中模糊匹配;可选 success 用于筛选成功或失败的调用。结果按时间倒序返回,最多 100 条。

{
  "date": "2026-08-12",
  "keyword": "get_student_name",
  "success": true
}

get_call_logs_by_range

查询闭区间日期范围内的调用日志。startDate 和 endDate 必填,格式均为 YYYY-MM-DD;其余筛选参数与单日查询相同。开始日期不能晚于结束日期。

{
  "startDate": "2026-08-11",
  "endDate": "2026-08-12",
  "success": false
}

调用埋点日志

每次进入工具业务处理的调用都会追加记录到:

log/YYYY-MM-DD/calls.jsonl

日期和时间使用中国大陆时区(Asia/Shanghai),时间格式为 YYYY-MM-DD HH:mm:ss.SSS。每行是一条独立 JSON 记录,包含工具名、调用参数、成功状态、错误信息和耗时(毫秒)。

示例:

{"timestamp":"2026-08-11 22:42:07.014","tool":"calculate_average","parameters":{"a":2,"b":3,"c":5},"success":true,"durationMs":20.01}

参数 schema 校验失败的请求不会进入业务代码,因此不会写入埋点日志。日志写入失败不会影响工具的正常返回。

宿舍规则知识库

知识库源文档为 docs/601宿舍管理规则.md,分块逻辑位于 src/rag/:优先按 Markdown 标题拆分,过长内容再按约 500 个字符均匀分块,并保留约 80 个字符的重叠上下文。

本版本使用本地关键词检索,不依赖 Docker、Python、ChromaDB 或 embedding 模型。索引数据保存为 src/db/dorm-rules-index.json。先调用 index_dorm_rules 将文档写入知识库;成功时返回分块数量。之后调用 search_dorm_rules 并传入问题:

{
  "query": "周五晚上需要熄灯吗?"
}

检索会提取问题中的中文词语、中文双字词和英文单词,在分块内容中进行匹配并按命中次数排序。后续可在不影响现有工具的前提下新增语义 embedding 检索工具。

在 CC Switch 中配置 stdio MCP

在 CC Switch 新增 MCP 页面中:

  • MCP 标题:stuManagementMcp

  • 显示名称:学生管理 MCP

  • 启用到应用:勾选 Codex

在“完整的 JSON 配置”中填写:

{
  "type": "stdio",
  "command": "D:\\Program Files (x86)\\coding\\nodejs\\node.exe",
  "args": [
    "D:\\workspace\\mcp\\dist\\index.js"
  ]
}

添加配置后,完全退出并重启 Codex Desktop。之后直接使用自然语言请求调用工具,例如“调用 get_student_name 查询 studentId=10001”。修改 src/index.ts 后,需要再次执行 npm run build,然后重启 Codex Desktop 以加载新的构建产物。

Available Tools

3 tools
calculate_average计算A

计算三个数值的平均值

Inputs: a (required), b (required), c (required). Returns: average

evaluate_score成绩评价B

根据 0 至 100 的整数分数返回成绩评价

Inputs: score (required). Returns: result

get_student_name查询用户姓名B

根据固定学号查询用户姓名

Inputs: studentId (required). Returns: name

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: one computes an average, one evaluates a score, and one retrieves a student name. There is no overlap in functionality, so an agent can easily differentiate them.

    Naming Consistency5/5

    All tool names follow the same snake_case verb_noun pattern: calculate_average, evaluate_score, get_student_name. This consistency makes the set predictable and easy to navigate.

    Tool Count4/5

    With only 3 tools, the set is relatively small but not unreasonably thin for a focused utility server. However, given the 'student management' label, the count feels slightly sparse, though still within a reasonable range.

    Completeness2/5

    The tools do not form a coherent student management surface. Only get_student_name pertains to students, while the other two are generic utilities. Missing are typical student CRUD operations, so an agent cannot perform meaningful management workflows.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A minimal MCP server with four tools (add, greet, text_stats, divide) demonstrating typed parameters, structured outputs, and error handling over stdio transport.
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      A model-agnostic MCP server exposing example tools (add1, multiply2, greet) for learning purposes, working with any LLM through stdio transport.
      -
    • F
      license
      A
      quality
      D
      maintenance
      A learning-oriented MCP server that exposes basic tools (echo, add, reverse) over stdio transport to validate MCP handshake and tool calls.
      3
      -
    • F
      license
      Not graded
      quality
      C
      maintenance
      A local Python MCP server that provides basic tools like greet, add_numbers, and system_info, designed for process-based connections via stdin/stdout.
      1
      -