Skip to main content
Glama

独行录 / opcmenu

列可报名的机会

list_signup_feed
Read-onlyIdempotent

【何时用】用户问「最近有什么能报名的 / 这周截止的有哪些 / 有没有黑客松」时调它。这是站内唯一能真报名的机会列表:每一场都挂着可用的报名表单。

【组合链】拿到 slug 后:① get_signup_activity(slug) 一次拿全「详情 + 我的报名状态 + 还缺哪几题」;② 缺项补齐后 submit_signup(slug) 直接报;③ 想一次盘几场就 get_signup_gaps(slugs=[…]) 拿跨场合并的待答清单,问一轮就够。

【口径/坑】① 本工具返回的每一条都当场能在站内报(判据是这场挂了报名配置,与 Activity.type 无关——平台自办/承办的赛事也是 type=COMPETITION,照样在这条 feed 里)。list_activities 是更宽的活动资讯面,其中导入的外部赛事只能去主办方官网报,两者别混。② feed 已按「置顶 → 截止近的优先(无截止排最后)」排好序,「这周截止的」直接按顺序截即可,别自己重排。③ 首屏返回的 kinds 是服务端算的真实类目计数,空类目根本不出现——照它渲染选项,别拿 SIGNUP_KINDS 全集当菜单。④ 登录时每条带 submitted=true/false,已报的别再问用户要不要报。⑤ startAtKnown=false 表示这场的开始时间是导入时兜底顶上的假值,别对用户念那个日期。⑥ q 只匹配标题/主办方/城市/主办人昵称四列,不搜简介赛道奖项;搜不到≠站内没有,照 hint 去掉 q 再拉(kinds 也随 q 收窄)。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qNo关键词,可选,最多 100 字(服务层超 100 直接 400)。只匹配标题/主办方署名/城市/主办人昵称
kindNo报名类目筛选,可选。取值:HACKATHON(黑客松) | COMPETITION(创业赛事) | INCUBATOR(孵化营) | FUNDING(融资申请) | COMMUNITY(社区入驻) | EVENT(活动报名) | OTHER(其他)
limitNo每页条数,缺省 20,上限 50
cursorNo翻页游标,取上一页的 nextCursor
includeExpiredNo是否含已截止的场次,缺省 false(只给还能报的)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / q
      Added value: +{
      +  "description": "关键词,可选,最多 100 字(服务层超 100 直接 400)。只匹配标题/主办方署名/城市/主办人昵称",
      +  "maxLength": 100,
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Even though annotations already mark this as read-only, idempotent, and non-destructive, the description richly discloses behavioral details: the feed is pre-sorted (pinned → nearest deadline, with no-deadline last), returned kind counts are real server-side counts with empty categories omitted, each record carries a submitted=true/false flag when logged in, and startAtKnown=false marks an imported fallback date that should not be spoken to users. These are exactly the runtime behaviors an agent needs to know.

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 long but tightly organized into three labeled sections (when to use, chaining, caveats), with every sentence carrying actionable information. The most important decision—when to call it and what it returns for real signup flows—is front-loaded, and the numbered caveats are dense but non-redundant.

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

Completeness5/5

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

For a list endpoint with no output schema, the description is exceptionally complete: it covers trigger conditions, upstream/downstream tool chains, sort order, filtering semantics, pagination/limit implications, handling of missing dates, and the distinction from list_activities. An agent has concrete guidance on both invocation and interpretation of results.

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 input schema already documents all 5 parameters at 100% coverage, which sets the baseline at 3. The description adds meaningful extra semantics for q—it does not search description/track/award fields, and an empty q result does not mean the event is absent, so the agent should retry without q. It also warns that kinds narrow together with q and that the signed-up flag should prevent asking already-submitted users again.

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 this is the station's only list of genuinely signup-able opportunities, using a specific verb ('list') and resource ('signup feed'), and explicitly differentiates it from list_activities, which is the broader activity info feed. The opening example triggers ('recent signups / deadlines this week / hackathons') leave no ambiguity about what the tool does.

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

Usage Guidelines5/5

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

The 'when to use' section names concrete user intents that should trigger this tool, and the 'chain' section gives an explicit sequence: get slug → get_signup_activity(slug) → submit_signup(slug), or get_signup_gaps(slugs) for batch review. It also states when NOT to use it: external imported events belong in list_activities and must be signed up on the organizer's official site.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources