Skip to main content
Glama

ManageBac MCP 服务器


node typescript MCP License PRs

基于 ManageBac 学生端网页实现

为您的 AI Agent 接入 ManageBac

这是一个本地 stdio MCP 服务器,可以让 Claude Code、OpenCode 等 AI Agent 读取 ManageBac 中的 DDL、class、成绩条目和页面明确显示的 GPA。

默认登录方式是手动浏览器登录:先运行 npm run login,程序会保存 .managebac/storage-state.json,之后 MCP 工具复用这个 session。只有显式设置 MANAGEBAC_LOGIN_MODE=password 时,程序才会尝试自动提交账号密码。

Related MCP server: Horizon

✨ 功能特性

  • 获取 class / course 列表

  • 从主页 Tasks & Deadlines 读取 upcomingpastoverdue 三个栏目

  • 查看全部 DDL,以及查看单科 DDL

  • 查看全部成绩,以及查看某一门 class 的成绩

  • 读取全局 GPA / 单科 GPA;读不到页面明确显示的 GPA 时直接返回 error

  • 禁止按百分制或 IB 1-7 成绩估算非加权 4.0 GPA

  • 读取某一门课近期 N 条成绩

  • 读取某一门课的成绩占比 / category weight

  • 默认手动登录并记录 session,降低账号被锁风险

  • 支持自动密码登录,但必须主动开启

🛠️ 工具列表

  • managebac_check_session: 确认当前 session 能读取学生首页

  • managebac_runtime_info: 查看当前 MCP 进程 pid、build、登录模式和 session 文件状态,用来排查旧进程

  • managebac_get_classes: 获取 class / course 列表

  • managebac_get_all_deadlines: 查看主页 Tasks & Deadlines,可选 view: upcoming | past | overdue | all

  • managebac_get_class_deadlines: 查看单科 DDL

  • managebac_get_grades: 查看全部成绩 / 分数条目

  • managebac_get_class_grades: 获取某一门 class 的成绩

  • managebac_get_gpa: 读取页面明确显示的全局 GPA,读不到时返回 error

  • managebac_get_class_gpa: 读取页面明确显示的单科 GPA,读不到时返回 error

  • managebac_get_recent_class_grades: 读取这门 class 的近期 N 条成绩

  • managebac_get_class_grade_weights: 读取这门课的成绩占比

  • managebac_list_links: 列出登录后页面链接,用来找到某个 class 的精确路径

  • managebac_debug_snapshot: 返回某页正文和链接,用于调试抓取规则

取数建议

  • 只想看最近几次成绩:用 managebac_get_recent_class_grades,例如 limit: 10

  • 只想要总评 / GPA:用 managebac_get_class_gpamanagebac_get_gpa,返回结果只保留 summary

  • 需要完整成绩列表时再用 managebac_get_class_grades,并按需调小 maxItems

  • 排错时再用 managebac_debug_snapshotmanagebac_list_links

普通成绩、DDL、GPA 工具默认使用精简输出,会移除 rawTexthref、逐条 sourceUrlpagesVisited,并使用紧凑 JSON。调试工具保持原始字段。

🚀 安装与使用

快速安装:复制以下命令给 AI agent

请帮我安装并配置 ManageBac MCP:
git clone https://github.com/chiang881/managebac-mcp.git
cd managebac-mcp
npm install
npm run build
npm run deploy
npm run login

然后把这个 MCP server 配置为 stdio:
node /absolute/path/managebac-mcp/dist/index.js

npm run deploy 会询问 ManageBac 实例地址。不要把默认实例写死成某个学校,请填写自己的实例,例如:

MANAGEBAC_BASE_URL=https://your-school.managebac.com

手动安装

git clone https://github.com/chiang881/managebac-mcp.git
cd managebac-mcp
npm install
npm run build

如果第一次运行 Playwright 找不到 Chromium:

npm run install-browser

复制配置文件:

cp .env.example .env

最小配置:

MANAGEBAC_BASE_URL=https://your-school.managebac.com
MANAGEBAC_LOGIN_MODE=manual
MANAGEBAC_STORAGE_STATE=.managebac/storage-state.json

保存配置后,打开浏览器手动登录并记录 session:

npm run login

脚本检测到登录成功后会立即保存 session、关闭浏览器并退出。

自动密码登录

默认不自动提交密码。如果确实需要自动登录,在 .env 或 MCP 客户端 env 中显式设置:

MANAGEBAC_LOGIN_MODE=password
MANAGEBAC_EMAIL=your.email@example.com
MANAGEBAC_PASSWORD=your-password
MANAGEBAC_LOGIN_COOLDOWN_MS=900000
MANAGEBAC_LOGIN_FORCE=false

如果账号刚被锁定,先不要反复运行自动登录。确认网页可以手动登录后,运行 npm run login 重新保存 session。

非交互 / headless 部署

npm run deploy 会构建项目并进入交互式配置向导。非交互环境中可以直接调用 configure 的参数模式:

npm run build
npm run configure -- --base-url=https://your-school.managebac.com --mode=manual

可用参数:

--base-url
--mode manual|password
--email
--password
--storage-state
--headless
--timeout-ms
--login-cooldown-ms
--login-force
--debug-dir

也可以直接编辑 .env,或在 MCP 客户端配置的 env 中传入这些变量。

.env.managebac/storage-state.json 和调试文件已经在 .gitignore 中忽略。不要把账号密码或登录态提交到 GitHub。

Claude Code 配置

Claude Code 的项目 MCP 配置应写在仓库根目录的 .mcp.json,不是 ~/.claude/settings.json

{
  "mcpServers": {
    "managebac": {
      "command": "node",
      "args": ["/absolute/path/managebac-mcp/dist/index.js"],
      "env": {
        "MANAGEBAC_BASE_URL": "https://your-school.managebac.com",
        "MANAGEBAC_LOGIN_MODE": "manual",
        "MANAGEBAC_STORAGE_STATE": "/absolute/path/managebac-mcp/.managebac/storage-state.json"
      }
    }
  }
}

配置后通常还需要完成 Claude Code 的审批链:

  1. .claude/settings.local.json 中允许项目 MCP server,例如设置 enabledMcpjsonServers,或使用 enableAllProjectMcpServers: true

  2. 重启 Claude Code,让 .mcp.json 和权限配置生效

  3. 重启后运行 /mcp,如果 managebac 仍处于 pending 状态,手动批准

  4. 第一次调用每个 MCP tool 时,Claude Code 可能还会要求单独 allow

排查旧进程

MCP 客户端会把工具绑定到启动时的 server 进程。更新代码、修改 .env 或重新登录后,请重启 / reconnect MCP 客户端,否则旧进程可能继续使用旧代码和旧配置。

服务启动时会向 stderr 输出一行 banner,包含 versionbuildpidmodebaseUrlstorageStatestorageStatePath。也可以调用:

managebac_runtime_info()

用返回的 pidbuildstorageStateExists 确认当前工具是否真的连到了新进程。

调试建议

如果 DDL 或 GPA 没抓准,先调用:

managebac_list_links({ "match": "task" })
managebac_list_links({ "match": "grade" })
managebac_debug_snapshot({ "path": "/student/tasks_and_deadlines?view=upcoming" })

单科 DDL 位于 Classes -> 某门课 -> Tasks & Units -> View All Tasks。可以把找到的 class path 传给 managebac_get_class_deadlinesmanagebac_get_class_gpapath 参数。

Available Tools

12 tools
managebac_check_sessionB

Log in to ManageBac and confirm that the session can read the student homepage.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It mentions login and read, but does not clarify side effects (e.g., session creation), required permissions, or rate limits. It lacks detail on what 'confirm' means in terms of output or error states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise and front-loaded. It could be slightly more informative without becoming verbose, but it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no annotations, no output schema, the description minimally covers the action. It lacks details on what the function returns (e.g., success/failure) and when it should be invoked in a workflow. It is adequate for a simple check but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description does not need to add parameter semantics. Baseline score of 4 is appropriate since no compensation is needed for missing parameter info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it logs in to ManageBac and confirms session can read the student homepage. The verb-resource pair is specific and distinguishes it from sibling tools that focus on deadlines, grades, or debugging.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It does not specify prerequisites (e.g., prior login) or scenarios where this check is needed. No 'when not to use' or references to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

managebac_debug_snapshotA

Return the text and links from an authenticated ManageBac page for debugging extractors. Text is truncated by maxChars.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoManageBac path or URL. Defaults to /.
maxCharsNoMaximum text characters. Defaults to 8000.

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully convey behavioral traits. It only mentions text truncation by maxChars and the return of text/links, but omits side effects, authentication requirements, or mutability. For a read-only debug tool, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no superfluous content. The purpose is front-loaded, and the truncation detail is efficiently placed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main purpose and key parameter behavior (truncation). However, it lacks details on error handling, authentication context, and the structure of returned links/text. Given no output schema, slightly more completeness would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with both parameters documented. The description adds value by explaining that maxChars controls truncation, which clarifies the parameter's purpose beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns text and links from a ManageBac page for debugging extractors, with a specific verb and resource. It distinguishes from sibling tools that fetch structured data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for debugging extractors but provides no explicit when-to-use, when-not-to-use, or alternative tools. Lack of guidance on prerequisites or context reduces clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

managebac_get_all_deadlinesB

Get all upcoming ManageBac DDL/deadlines across classes.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxItemsNoMaximum items to return. Defaults to 50.
daysAheadNoHow many days ahead to include. Defaults to 30.
includeCompletedNoInclude submitted/completed tasks. Defaults to false.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description is minimal and does not disclose whether the tool is read-only, any authentication requirements, rate limits, or effects on data. It only implies a read operation through the verb 'Get'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no unnecessary words. It front-loads the core purpose. However, it could be slightly more informative without sacrificing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and three parameters, the description lacks completeness. It does not explain return format, sorting, pagination, or the meaning of 'upcoming' relative to parameters like 'daysAhead'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters. The tool description adds no additional meaning beyond the schema. Baseline of 3 is appropriate as the schema already explains parameter purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('get all upcoming... deadlines') and resource ('ManageBac DDL/deadlines across classes'). It distinguishes from sibling 'managebac_get_class_deadlines' by specifying 'across classes', indicating a broader scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'managebac_get_class_deadlines'. The description does not mention prerequisites or context. It implies use for all-class deadlines but lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

managebac_get_class_deadlinesA

Get upcoming DDL/deadlines for one ManageBac class/course.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirect class path or URL, e.g. /student/classes/123/core/tasks.
classIdNoManageBac class id, usually found in /classes/{id}.
maxItemsNoMaximum items to return. Defaults to 50.
classNameNoClass/course name substring. Use managebac_get_classes first if unsure.
daysAheadNoHow many days ahead to include. Defaults to 30.
includeCompletedNoInclude submitted/completed tasks. Defaults to false.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must bear full burden. It only states the basic action, lacking details on required permissions, return format, or behavior when parameters are omitted (all optional). Minimal disclosure beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no redundant or filler content. Every word serves a purpose, making it highly concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is minimal. It covers the basic purpose but lacks details on output format, pagination, or edge cases. Adequate for a simple retrieval tool but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so descriptions already explain each parameter. The tool description adds no extra semantic value beyond what the schema provides, meeting baseline expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get upcoming DDL/deadlines for one ManageBac class/course' clearly states the verb (get), resource (deadlines), and scope (one class), distinguishing it from the sibling managebac_get_all_deadlines.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicit guidance from name and description suggests use for a single class, but no explicit when-to-use or when-not-to-use compared to alternatives. Parameter descriptions hint at prerequisites (e.g., className says 'Use managebac_get_classes first'), but no overall usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

managebac_get_classesA

Get the ManageBac class/course list visible to the logged-in student.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It only states the tool 'gets' the list, but does not specify whether an active session is required, if data is cached, or what the output format is. For a read operation without annotations, more detail on side effects or constraints is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the essential purpose without any extraneous words. It is front-loaded with the verb and resource, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description is minimal. It provides the core purpose but lacks details about the return structure or how to interpret the output. For a straightforward list tool, this might suffice, but additional context about the data returned (e.g., class names, IDs) would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and the description adds meaning by specifying the scope (visible to the logged-in student). Since the schema coverage is 100% (vacuously), the description adds value beyond the schema by clarifying the contextual filter, earning a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it retrieves the ManageBac class/course list for the logged-in student. The verb 'Get' with the specific resource 'ManageBac class/course list visible to the logged-in student' clearly defines the tool's action and scope, distinguishing it from sibling tools that focus on deadlines, grades, or session management.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like managebac_get_class_grades or managebac_get_class_deadlines. There is no mention of prerequisites (e.g., requiring an active session) or context where this tool is appropriate. The sibling tools are diverse, but the description does not help the agent decide which to invoke.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

managebac_get_class_gpaA

Read explicit GPA for one ManageBac class. Returns an error when no explicit GPA is visible.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirect class path or URL.
classIdNoManageBac class id, usually found in /classes/{id}.
maxItemsNoMaximum grade items to use. Defaults to 100.
classNameNoClass/course name substring. Use managebac_get_classes first if unsure.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. It clearly states this is a read operation (safe, non-destructive) and discloses that it returns an error when no explicit GPA is visible. No contradictions. Could mention idempotency or auth dependencies, but adequate for a simple read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main purpose, no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so description should clarify return values. It only says 'Read explicit GPA' without specifying the format or structure. However, the tool name and context imply a numeric GPA value. Adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all parameters described. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Read' and the resource 'explicit GPA for one ManageBac class', distinguishing it from sibling tools like managebac_get_gpa (overall GPA) and managebac_get_class_grades. The error condition adds specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Lacks explicit when-to-use or when-not-to-use guidance. The description implies usage for a single class's explicit GPA, but does not mention alternatives or prerequisites like an active session. The error condition is noted but not contextualized against other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

managebac_get_class_gradesC

Get grade/score-like items for one ManageBac class/course.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirect class path or URL.
classIdNoManageBac class id, usually found in /classes/{id}.
maxItemsNoMaximum grade items to return. Defaults to 100.
classNameNoClass/course name substring. Use managebac_get_classes first if unsure.

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits but only says 'Get grade/score-like items.' It does not mention whether the operation is read-only, what happens if the class is not found, or any other behavioral aspects like return format or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. However, the phrasing 'grade/score-like items' is imprecise, suggesting room for improvement while still being efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 optional parameters, no output schema, and multiple similar sibling tools, the description is overly terse. It lacks information about return values, how to choose a class identifier, and how this tool differs from managebac_get_grades or managebac_get_recent_class_grades.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions (e.g., path, classId, maxItems, className). The tool description adds no additional meaning beyond what is already in the schema, earning the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get grade/score-like items for one ManageBac class/course.' It identifies the verb and resource, but 'grade/score-like items' is vague and does not differentiate from siblings like managebac_get_grades, managebac_get_recent_class_grades, or managebac_get_class_gpa.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as managebac_get_recent_class_grades or managebac_get_grades. There is no mention of prerequisites, exclusions, or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

managebac_get_class_grade_weightsA

Read grade category weights/proportions for one ManageBac class/course when visible on the page.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirect class path or URL.
classIdNoManageBac class id, usually found in /classes/{id}.
maxItemsNoMaximum weight items to return. Defaults to 50.
classNameNoClass/course name substring. Use managebac_get_classes first if unsure.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the tool reads data, which is consistent with a read-only operation, but does not elaborate on behavior if data is not visible or on any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, clear, and direct sentence with no superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description lacks details on what the tool returns (format, structure of weights/proportions). For an AI agent, more context about the response would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all parameters described. The description adds minimal value beyond the schema by stating the tool works for one class when visible, but does not further clarify parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Read' and resource 'grade category weights/proportions for one ManageBac class/course', distinguishing it from sibling tools like managebac_get_class_grades and managebac_get_class_gpa.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage when weights are visible on the page, but provides no explicit guidance on when to use this tool versus alternatives or any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

managebac_get_gpaC

Read explicit GPA from ManageBac. Returns an error when no explicit GPA is visible.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOptional ManageBac path or URL to scrape instead of automatic discovery.
maxItemsNoMaximum grade items to use. Defaults to 100.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only mentions the error behavior but does not disclose whether the tool is read-only, what the return format is, or any other behavioral traits such as authentication needs or rate limits. With no annotations, the description fails to provide sufficient transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is front-loaded with the primary action. No wasted words; every part contributes to the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and annotations, the description should compensate by explaining return values, default behavior, and how this tool fits with siblings. It does not, leaving the agent poorly informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description adds no additional semantic meaning beyond what is in the schema, earning the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Read explicit GPA from ManageBac,' which clearly identifies the action and resource. However, it does not distinguish between this and sibling tools like managebac_get_class_gpa, leaving ambiguity about what 'explicit' means relative to computed GPAs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like managebac_get_class_gpa or managebac_get_grades. The error condition ('returns an error when no explicit GPA is visible') is noted but does not provide actionable decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

managebac_get_gradesB

Get grade/score-like items from ManageBac class, task, report, and transcript pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOptional ManageBac path or URL to scrape instead of automatic discovery.
maxItemsNoMaximum grade items to return. Defaults to 100.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits like whether the operation is read-only, potential side effects, or rate limits. 'Get grade/score-like items' is vague and does not explain the nature of items.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that efficiently conveys the core purpose without unnecessary words or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description does not explain the return format or structure of grade items. Given the variety of source pages, more detail is needed to adequately inform the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with descriptions for both parameters. The tool description adds no additional meaning beyond what the schema already provides, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Get grade/score-like items' and specifies the sources: 'ManageBac class, task, report, and transcript pages.' It distinguishes from sibling tools like managebac_get_class_grades which is more specific to class grades.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as managebac_get_class_grades or managebac_get_gpa. There is no mention of prerequisites or context for optimal use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

managebac_get_recent_class_gradesB

Get the latest N grade/score-like entries for one ManageBac class/course.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirect class path or URL.
limitNoNumber of recent grade items to return. Defaults to 10.
classIdNoManageBac class id, usually found in /classes/{id}.
classNameNoClass/course name substring. Use managebac_get_classes first if unsure.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only mentions 'latest' without explaining ordering, caching, or behavior such as what happens when no entries exist. Minimal behavioral context is given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that gets straight to the point without any unnecessary words. It is appropriately concise for the information provided.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 4 parameters and no output schema, the description is too sparse. It does not explain the return format or what constitutes 'grade/score-like entries', leaving the agent with incomplete information to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 4 parameters are documented in the input schema with 100% coverage, so the description does not need to add detail. It adds no extra meaning beyond the schema, hence a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'latest N grade/score-like entries', and the context 'one ManageBac class/course', distinguishing it from siblings like managebac_get_class_grades which likely returns all grades.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for recent grades but does not explicitly state when to use this tool versus alternatives like managebac_get_class_grades, nor does it provide any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation4/5

Most tools have distinct purposes (deadlines, classes, GPA, grades), but there is some overlap among grade-related tools (get_grades, get_class_grades, get_recent_class_grades). Descriptions help differentiate them.

Naming Consistency4/5

All tools follow the 'managebac_' prefix with underscore-separated verb+noun pattern. Minor inconsistency with 'check_session', 'debug_snapshot', and 'list_links' deviating from the dominant 'get_*' prefix, but overall pattern is clear.

Tool Count5/5

12 tools is well-scoped for a student portal integration. Each tool addresses a specific need without being excessive or sparse.

Completeness4/5

The set covers core academic features: deadlines, classes, grades, GPA, and includes debugging tools. Missing features like assignment details or attendance, but these are not essential for the primary use case.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that connects AI assistants to university D2L Brightspace and Piazza, enabling query of courses, grades, assignments, deadlines, files, and Piazza posts.
    7
    MIT
  • F
    license
    Not graded
    quality
    C
    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.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chiang881/managebac-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server