Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

jingbo

v1.0.327852

提供镜泊雨课堂账户和班级相关查询服务,包括用户ID、开班列表、班级数据、预警名单、今日授课及作业公告完成情况查询等。

0· 100·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for xuetangop/jingbo.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "jingbo" (xuetangop/jingbo) from ClawHub.
Skill page: https://clawhub.ai/xuetangop/jingbo
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install jingbo

ClawHub CLI

Package manager switcher

npx clawhub@latest install jingbo
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
high confidence
!
Purpose & Capability
The skill's declared purpose (rainclassroom account / class queries) matches the behavior in SKILL.md, package.json and scripts (they configure an MCP server and call ykt tools). However the registry metadata claimed no required env vars while package.json and the setup scripts clearly require YUKETANG_SECRET — a meaningful mismatch that could mislead users about required secrets.
!
Instruction Scope
SKILL.md instructs the user/agent to obtain and set a personal Secret, run the included setup.sh / setup.js, and prefers calling MCP via npx mcporter. The setup scripts will (a) embed the secret into mcporter configuration and (b) perform a silent telemetry call (npx mcporter call yuketang-mcp claw_report) during install. That telemetry/reporting step is not documented in SKILL.md and involves sending data to the remote MCP server.
Install Mechanism
There is no formal install spec, but included scripts use npx mcporter@0.8.1 (npm) to register and call the MCP server. Using npx pulls code at runtime from the npm registry (moderate risk). The MCP endpoints are on rainclassroom domains (consistent with purpose) and there are no obscured download URLs, but npx means remote code is executed during setup.
!
Credentials
Only one credential (YUKETANG_SECRET) is actually required by package.json and the setup scripts, which is proportionate to the service. The problem is the registry metadata lists no required env vars — the omission is an incoherence and a user could install without realizing they must provide a secret. Also the setup registers the secret into MCP client configuration (it may be embedded into local config files), and the installer passes the secret on the mcporter CLI which could leak to shell history if users copy commands verbatim.
Persistence & Privilege
The skill does not set always:true and does not request system-wide privileges. The setup scripts modify mcporter configuration (project-scoped) and may write a config snippet to project files — expected for MCP integration. The silent telemetry call during setup increases the blast radius slightly but is scoped to the configured MCP endpoint.
What to consider before installing
This skill is plausible for RainClassroom integration but has some surprises you should understand before installing: (1) Despite registry metadata, the skill requires a personal YUKETANG_SECRET — you must obtain this from the linked URL and set it in your environment. (2) The provided setup scripts will run npx mcporter@0.8.1 (which downloads and runs code from npm), register an MCP server using your secret, and perform a silent 'install' report back to the RainClassroom MCP endpoint. If you decide to proceed: review the setup.sh and setup.js contents (they are included) and prefer the printed manual configuration option rather than letting scripts auto-run; avoid pasting secrets in long-lived shell history (use environment variable export in the same command); verify the domain https://ykt-envning.rainclassroom.com and https://open-envning.rainclassroom.com are legitimate for your organization; consider running the install in an isolated project or sandbox first. If you want higher assurance, ask the publisher to update registry metadata to declare YUKETANG_SECRET explicitly and to disclose the telemetry/reporting behavior.
setup.js:35
Shell command execution detected (child_process).
Patterns worth reviewing
These patterns may indicate risky behavior. Check the VirusTotal and OpenClaw results above for context-aware analysis before installing.

Like a lobster shell, security has layers — review code before you run it.

latestvk971j2fa2zbdb9bkqgamp6zyys8452sm
100downloads
0stars
3versions
Updated 3w ago
v1.0.327852
MIT-0

注意事项

  • 如已安装该 Skill,请先提示用户卸载后再执行安装。
  • 不要用 copaw 调 mcp 服务,优先使用 npx mcporter@0.8.1。

前置配置(只需一次)

第一步:获取 Secret

打开 https://ykt-envning.rainclassroom.com/ai-workspace/open-claw-skill,登录后复制你的个人 Secret。

没有配置 Secret? 所有工具调用都会返回鉴权失败。请先完成上述步骤。

第二步:设置环境变量

macOS / Linux:

export YUKETANG_SECRET="你的Secret"

Windows(PowerShell):

$env:YUKETANG_SECRET="你的Secret"

Windows(CMD):

set YUKETANG_SECRET=你的Secret

第三步:运行安装脚本

macOS / Linux:

bash setup.sh

Windows 或任何有 Node.js 的环境:

node setup.js

具体配置文件路径取决于你使用的客户端(OpenClaw / CodeBuddy / Cursor 等),请参考对应文档。

第四步:安装后立即验证

** 安装成功后,必须立刻执行: claw_current_user 以验证 Secret 与服务是否可用。**

  • 判断 secret 不可用 -> 仅提示请获取最新 Secret,并提供获取secret的链接。
  • 判断 secret 可用 -> 正常返回用户信息,说明配置成功。
  • 当用户提供secret后,需要帮助用户直接更新环境变量,不需要用户自己执行。

触发场景

意图 → 工具 速查表

用户意图调用工具
查询账号 / 我的ID / 雨课堂IDclaw_current_user
查询我开的课 / 我教了哪些班ykt_teaching_list
查询我的班级数据 / 班级教学数据ykt_classroom_statistics
查询预警学生名单 / 重点关注学生ykt_classroom_warning_overview
查询某个具体班级的预警学生名单ykt_classroom_warning_student
今天上课情况总览 / 今天答题率 / 到课率cube_teacher_today_teaching
预约开课cube_lesson_reservation
查询我有哪些待批改的作业 / 考试 / 课堂/ 课件ykt_teacher_correct_statistic
查询最近发布的作业 / 我在xx班发布的作业完成情况 /最近一次发布的作业完成情况ykt_recent_exercise_submit
查询最近发布的公告 / 我在xx班发布的公告阅读情况 /最近一次公告的阅读情况ykt_recent_notice_read
查询今天上课的情况/今天的课有多少人来上课了cube_teacher_today_teaching_detail

不要触发的情况

  • 讨论教学方法(不是在查询数据)
  • 纯聊天中提到"课程"
  • 与雨课堂无关的场景

组合调用示例

用户说:"帮我看看我是谁,还有我开了哪些班"

依次调用:

  1. claw_current_user
  2. ykt_teaching_list

工具详细说明

全局规则

  • 班级名称 → ID:如果用户给的是班级名称而非 ID,先调用 ykt_classroom_id_by_name 拿到 classroomId,再调用目标工具。
  • 时间处理:所有相对时间(昨天/今天/明天/近N天)以当前系统北京时间(UTC+8)为基准,禁止硬编码年份。若用户未指定年份,默认使用当前年份。
  • 参数格式:如果用户给的参数格式不对,不要自动修正,提示用户修改。
  • 预约开课:执行前必须向用户展示即将预约的课堂信息,二次确认后再调用。
  • mcp 服务使用注意事项
    • 推荐使用 npx mcporter 调用 MCP 服务(无需全局安装),不建议直接使用 curl;
    • 严禁使用 copaw 调用 MCP,必须改用 mcporter;
    • 如果 mcp 服务提示鉴权失败,请引导用户重新获取 YUKETANG_SECRET 并修改环境变量;
    • 如果 mcp 服务找不到,注意指定 mcp 配置文件的路径;
    • 如果调用失败,可以换一种方式重试,但若多次尝试仍不成功,请停止并检查配置;
    • 调用需要参数的 MCP 工具时,必须传入完整的结构化 JSON 参数对象;
    • 严禁 mcporter 在调用需要参数的 MCP 工具时,遗漏 --args

1. claw_current_user

查询当前雨课堂用户 ID。

典型问法: "我的雨课堂ID是多少" / "帮我确认一下当前账号"

参数:


2. ykt_teaching_list

查询当前账号开设的班级列表。

典型问法: "我教了哪些班" / "这学期我教的课"

参数:

注意: 返回结果中的 emoji 需保留。


3. ykt_classroom_statistics

查询本学期班级数据概览。

典型问法: "我的班级数据" / "XXX 班级数据情况"

参数:

参数必填说明
classroomName不传则返回本学期所有班级概览;传入后返回指定班级详情

交互规则:

  • 用户第一次查询或未指定班级 → 返回全部班级概览
  • 用户输入班级序号(1、2、3)、完整名称或可识别的简称 → 返回该班级详情

4. ykt_classroom_warning_overview

查询本学期各班级的学习活动完成率预警总览。

典型问法: "查看班级预警情况"

参数:

返回内容包括: 教学班名称、完成率 = 0% 人数、预警人数(完成率 < 80%)、数据截止时间。


5. ykt_classroom_warning_student

查询指定班级的预警学生名单。

典型问法: "高等数学A-2 的预警学生" / "第 1 个班级的预警名单"

参数:

参数必填说明
classroomName班级名称、序号或可识别简称

交互规则:

  • 如果用户未指定班级,先调用 ykt_classroom_warning_overview 展示总览,再让用户选择。

6. cube_teacher_today_teaching - 查询教师当日授课总览

查询教师某天的授课总览信息,如课堂状态、到课情况、答题情况等。

典型问法: "今天上课情况怎么样" / "今天有多少人来上课了" / "我今天有课吗" / "看一下今天的授课总览" / "今天课堂进行得怎么样"

参数:

参数必填说明
date查询日期 yyyy-MM-dd,缺省当天(北京)

7. ykt_classroom_id_by_name

通过班级名称查询班级 ID(辅助工具,通常由其他工具间接调用)。

参数:

参数必填说明
classroomName班级名称

8. cube_lesson_reservation

为指定教学班预约开课。

典型问法: "请帮我在xx班xxx时间预约一个课堂"

参数:

参数必填说明
classroomId班级 ID
startDateTime开课时间(字符串)
startEpochMs开课时间(毫秒时间戳)
lessonTitle课次标题
lessonDurationMinutes课次时长(分钟)
meetingType会议类型

使用逻辑:

  • 用户给班级名称 → 先调 ykt_classroom_id_by_name 获取 classroomId,再调本工具
  • 用户直接给 classroomId → 直接调用

详细参数说明见 references/api_references.mdcube_lesson_reservation 部分。

** 输出规范 **

  • 当存在✅ 课堂预约成功!时, 内容禁止渲染成表格

9. ykt_teacher_correct_statistic - 教师待批改/已批改统计

用于按课程班级查询教师的作业、考试、课堂、课件批改统计,包括待批改、已批改数量等信息。

典型问法: "帮我查询一下我有哪些待批改的作业"

10. ykt_recent_exercise_submit - 教师发布的作业完成情况

用于查询教师发布作业完成情况

典型问法: "帮我查询我最近发布的作业" / "帮我查询我在xx班发布的作业情况" / "帮我查询最近一次发布的作业情况"

参数:

参数必填说明
classroomId班级 ID
classroomName班级名称
isLatest1 表示仅查询最近一次;不传表示查询最近七天

使用逻辑:

  • 用户给班级名称 → 先调 ykt_classroom_id_by_name 获取 classroomId,再调本工具
  • 用户直接给 classroomId → 直接调用
  • 用户查询“最近一次发布的作业情况” → 调本工具时使用 isLatest = 1

11. ykt_recent_notice_read - 教师发布的公告阅读情况

用于查询用户发布的所有近7天发布公告,按照发布时间顺序倒序排列

典型问法: "帮我查询一下我最近发布的公告" / "帮我查询最近一次发布的公告情况"

参数:

参数必填说明
classroomId班级 ID
classroomName班级名称
isLatest1 表示仅查询最近一次;不传表示查询最近七天

使用逻辑:

  • 用户给班级名称 → 先调 ykt_classroom_id_by_name 获取 classroomId,再调本工具
  • 用户直接给 classroomId → 直接调用
  • 用户查询“最近一次发布的公告情况” → 调本工具时使用 isLatest = 1

12. cube_teacher_today_teaching_detail - 查询当日单个课程的详情

用于查询当日单个课程的详情;lessonIndex 来自 cube_teacher_today_teaching 课堂总览

典型问法: "请帮我整理今天上课的情况" / "今天的课有多少人来上课了" / "今天的答题率怎么样?"

参数:

参数必填说明
lessonIndex当日授课总览中的编号,从 1 开始(与 cube_teacher_today_teaching 的课表首列一致)
date日历日 yyyy-MM-dd,默认当天(北京);须与查详情为同一天

** 默认值策略 **

  • date 默认当天(北京时间), 必须与解析时保持同一天

交互规则: 先调用 cube_teacher_today_teaching 展示总览,再让用户选择总览的序号作为 lessonIndex,再调本工具


输出规范

  • 结果结构化展示(列表形式)
  • 保留工具返回的 emoji 和原始文案,不要自由发挥改写
  • 课程信息至少包含:课程名、班级名
  • 严格保留表头

红线

  • 不编造任何课程数据,必须依赖工具返回
  • 不做权限外操作(如选课、退课)

调用方式

# Mac 或 Linux 示例:查看班级的作业发布情况
npx mcporter@0.8.1 call yuketang-mcp ykt_classroom_statistics --args '{"classroomName": "xxx"}'

Comments

Loading comments...