This server has decent schema coverage and tool naming but suffers from incomplete parameter descriptions, missing output schemas, and no error handling guidance. Of 9 tools, all have names that start with verbs (v2ex_*) and most have basic input schemas defined. However, 3 tools have empty parameter sets (v2ex_member_profile, v2ex_current_token, v2ex_create_new_token missing 'expiration' description), parameter descriptions are minimal (14-72 chars, below the 72-char baseline), and NO tools document their output schema or return structure. Tool descriptions are extremely terse (13-48 chars, well below the 194-char baseline). There is no error handling guidance, no permission declarations, and no indication of which calls are idempotent. The server uses prompts (2 defined) but offers no resource discovery. All 9 tools are statically defined in src/index.ts with explicit Tool objects, so definitions are directly visible, not inferred.
create v2ex user new token
get v2ex current user token
get v2ex user profile
get v2ex node
get v2ex node topic
get v2ex user notification
remove v2ex user notification
Tool descriptions are critically short (13 - 48 chars), well below the 194-char baseline. LLMs cannot determine when or why to select tools with such terse descriptions. Every description should explain WHAT the tool does, WHEN to use it, and any prerequisites.
No output schemas documented for any tool. LLMs need to know what fields to expect so they can plan downstream tool calls and extract the right data. All 9 tools lack documented return structures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
get v2ex topic
get v2ex topic comments
Parameter descriptions are minimal or missing. For example, 'page' is described only as 'page number, notification Pagination number, default is 1', but does not clarify range, minimum, or maximum values. Most param descriptions are under 50 chars; the baseline is 72 chars.
No error handling guidance. If a tool call fails (e.g., invalid topic_id, unauthorized access, rate limit), the server provides no recovery path or classification (retryable, user-fixable, fatal). This leaves the LLM without direction.
No permission declarations. Tools like v2ex_remove_notification and v2ex_create_new_token are destructive/sensitive but do not declare required scopes (e.g., 'write:notification', 'write:token'). This prevents least-privilege agent configs and audit trails.
Credentials hardcoded or exposed in test examples. The package.json start script embeds a V2EX_API_KEY directly ('V2EX_API_KEY=ff46d5a3-5ce1-441b-9fcf-915372d27286'). This is a real secret in a public repository and must be revoked and rotated immediately.
No idempotency hints. Tools like v2ex_create_new_token and v2ex_remove_notification have side effects. Without idempotent or confirmation patterns, an agent retry could create duplicate tokens or remove notifications twice.
No pagination result limits documented. v2ex_notification, v2ex_node_topic, and v2ex_topic_comments all accept a 'page' parameter but do not specify maximum page size, total count, or result count limits. LLMs may request unbounded large pages.