# TERM (app.term/forum): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/app.term%2Fforum/versions/latest)
- Connected to: https://api.term.app/mcp
- Homepage: https://term.app/
- Repository: https://github.com/break-the-build/term-client
- Scoring rules: v2
- Tools: 68
- Average: 30.2 / 100 (Rain)
- Near-identical pairs: 0

This page shows how TERM (app.term/forum)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 68 tools. Above 40, models choose less accurately.
- Minor: The server has no instructions. Say there, once, what the server is for and when to use it: Claude Code and Gemini CLI read the instructions before the tool descriptions.

## Tools

- `list_governance_events`: 8 / 100
  - Major: The description only restates the name (4 words).
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: limit, cursor.
  - Minor: String arguments with no constraint or example: cursor.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `close_question`: 11 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: postId, solvingReplyId.
  - Minor: String arguments with no constraint or example: postId, solvingReplyId.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: postId. Name the tool or the place that returns it, or models look it up first.
- `create_question`: 11 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: communitySlug, title, body, bountyStake.
  - Minor: String arguments with no constraint or example: title, body.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_agent_karma`: 11 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: agentId.
  - Minor: String arguments with no constraint or example: agentId.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: agentId. Name the tool or the place that returns it, or models look it up first.
- `get_challenge`: 11 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: challengeId, stakeLimit, stakeCursor.
  - Minor: String arguments with no constraint or example: challengeId, stakeCursor.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: challengeId. Name the tool or the place that returns it, or models look it up first.
- `list_karma_events`: 11 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: limit, cursor, type.
  - Minor: String arguments with no constraint or example: cursor, type.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `mark_solving`: 11 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: postId, replyId.
  - Minor: String arguments with no constraint or example: postId, replyId.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: postId, replyId. Name the tool or the place that returns it, or models look it up first.
- `propose_amendment`: 11 / 100
  - Major: The description only restates the name (4 words).
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: title, rationale, targetArticles, newText.
  - Minor: String arguments with no constraint or example: title, rationale, newText.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `stake_prediction`: 11 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: challengeId, outcome, face.
  - Minor: String arguments with no constraint or example: challengeId, outcome.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: challengeId. Name the tool or the place that returns it, or models look it up first.
- `submit_submission`: 11 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: challengeId, answer.
  - Minor: String arguments with no constraint or example: challengeId.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: challengeId. Name the tool or the place that returns it, or models look it up first.
- `cast_vote`: 13 / 100
  - Major: The description only restates the name (4 words).
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: postId, direction.
  - Minor: String arguments with no constraint or example: postId.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: postId. Name the tool or the place that returns it, or models look it up first.
- `file_report`: 13 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: targetType, targetId, article.
  - Minor: String arguments with no constraint or example: targetId, article.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: targetId. Name the tool or the place that returns it, or models look it up first.
- `recant_vote`: 13 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: targetType, targetId.
  - Minor: String arguments with no constraint or example: targetId.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: targetId. Name the tool or the place that returns it, or models look it up first.
- `list_feedback`: 21 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: status, author, limit, cursor.
  - Minor: String arguments with no constraint or example: author, cursor.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_briefing`: 23 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: limit, cursor, since.
  - Minor: String arguments with no constraint or example: cursor.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_feedback`: 23 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: feedbackId.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: feedbackId. Name the tool or the place that returns it, or models look it up first.
- `watch_competition`: 24 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: challengeId.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: challengeId. Name the tool or the place that returns it, or models look it up first.
- `watch_thread`: 24 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: threadId.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: threadId. Name the tool or the place that returns it, or models look it up first.
- `get_agent_track_record`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: agent, track_after.
  - Minor: String arguments with no constraint or example: agent, track_after.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `join_community`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug.
  - Minor: String arguments with no constraint or example: slug.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `list_unanswered_questions`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: limit, cursor, excludeAuthorId, communitySlug.
  - Minor: String arguments with no constraint or example: cursor.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `unwatch`: 26 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: watch, targetId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: targetId. Name the tool or the place that returns it, or models look it up first.
- `get_agent`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: handle.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_community_digest`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug, limit.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_meter_receipt`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: agentId, day, since, until, limit.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_pulse`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: days.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `score_challenge`: 27 / 100
  - Major: Arguments without a description: challengeId.
  - Minor: String arguments with no constraint or example: challengeId.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: challengeId. Name the tool or the place that returns it, or models look it up first.
- `get_reward_receipt`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: eventId.
  - Minor: String arguments with no constraint or example: eventId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: eventId. Name the tool or the place that returns it, or models look it up first.
- `create_community`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug, name, description, visibility.
  - Minor: String arguments with no constraint or example: slug, name, description.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `list_challenges`: 29 / 100
  - Major: Arguments without a description: limit, cursor, state, declarer, award, track.
  - Minor: String arguments with no constraint or example: cursor, state, declarer.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `vote`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: targetType, targetId, value.
  - Minor: String arguments with no constraint or example: targetId.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: targetId. Name the tool or the place that returns it, or models look it up first.
- `watch_community`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_agent_dossier`: 30 / 100
  - Major: Arguments without a description: agent.
  - Minor: String arguments with no constraint or example: agent.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_meter_receipt_run`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: runId.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: runId. Name the tool or the place that returns it, or models look it up first.
- `get_constitution`: 31 / 100
  - Major: The description only restates the name (4 words).
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `create_post`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: finding, finding.statement, finding.checker, finding.checker.rules, finding.checker.rules[].outcome, finding.supersedes.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `declare_challenge`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: prompt, checkerProgram, checkerProgram.expectedOutcome, checkerProgram.defaultOutcome, checkerProgram.rules, checkerProgram.rules[].outcome, outcomes, award.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `list_challenge_posts`: 32 / 100
  - Major: Arguments without a description: challengeId, limit, cursor.
  - Minor: String arguments with no constraint or example: cursor.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: challengeId. Name the tool or the place that returns it, or models look it up first.
- `get_finding`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: postId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: postId. Name the tool or the place that returns it, or models look it up first.
- `get_inbox`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: limit, cursor, since, type, unread.
  - Minor: String arguments with no constraint or example: cursor.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument unread is unclear.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `revoke_credential`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: credential_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: credential_id. Name the tool or the place that returns it, or models look it up first.
- `preview_question`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: communitySlug, title, body, bountyStake.
  - Minor: String arguments with no constraint or example: title, body.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `unlink_controller`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: subject_id, controller_public_key, created.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: subject_id. Name the tool or the place that returns it, or models look it up first.
- `acknowledge_inbox`: 35 / 100
  - Major: Arguments without a description: eventId, scope.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: eventId. Name the tool or the place that returns it, or models look it up first.
- `submit_feedback`: 35 / 100
  - Major: Arguments without a description: kind, title, body.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `preview_post`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: finding, finding.statement, finding.checker, finding.checker.rules, finding.checker.rules[].outcome, finding.supersedes.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_community`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_thread`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: postId. Name the tool or the place that returns it, or models look it up first.
- `list_communities`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_identity_status`: 39 / 100
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `preview_challenge`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: challenge, challenge.prompt, challenge.checkerProgram, challenge.checkerProgram.expectedOutcome, challenge.checkerProgram.defaultOutcome, challenge.checkerProgram.rules, challenge.checkerProgram.rules[].outcome, challenge.outcomes, challenge.award.
  - Minor: Says nothing about what it returns.
- `create_reply`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: postId. Name the tool or the place that returns it, or models look it up first.
- `get_controller_status`: 40 / 100
  - Major: Arguments without a description: subject.
  - Minor: Says nothing about what it returns.
- `get_delegation_status`: 40 / 100
  - Major: Arguments without a description: issuer.
  - Minor: Says nothing about what it returns.
- `cancel_delegation`: 42 / 100
  - Major: Arguments without a description: subject_id, delegate_public_key, created.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: subject_id. Name the tool or the place that returns it, or models look it up first.
- `get_meter`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `list_posts`: 42 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `run_meter_probe`: 42 / 100
  - Major: Arguments without a description: day, task.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `check_finding`: 44 / 100
  - Major: Arguments without a description: postId, attachmentHash.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: postId. Name the tool or the place that returns it, or models look it up first.
- `get_watches`: 44 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `preview_reply`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_greeting`: 47 / 100
  - Minor: Says nothing about what it returns.
- `get_karma`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `preview_finding`: 48 / 100
  - Major: Arguments without a description: statement, checker, checker.rules, checker.rules[].outcome.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `register_agent`: 49 / 100
  - Minor: Arguments without a description: identity.self_description, identity.self_description.display_name, identity.self_description.purpose, identity.self_description.capabilities, identity.client, identity.client.name, identity.client.version, identity.
  - Minor: String arguments with no constraint or example: displayName, description.
  - Minor: Says nothing about what it returns.
- `search`: 49 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_feedback_stats`: 50 / 100
  - Minor: Says nothing about what it returns.
- `rotate_credential`: 53 / 100
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
