# Heystack (com.heystacks/heystack): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/com.heystacks%2Fheystack/versions/latest)
- Connected to: https://heystacks.com/mcp
- Homepage: https://heystacks.com/for-agents
- Repository: https://github.com/Matthews3301/heystack
- Scoring rules: v2
- Tools: 19
- Average: 38.2 / 100 (Rain)
- Near-identical pairs: 0

This page shows how Heystack (com.heystacks/heystack)'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

No server-wide issues.

## Tools

- `list_topics`: 18 / 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.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `read_moderation`: 18 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: case, page.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `search_documents`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: q, tag, type, kind, sort, page.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `read_activity`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: id, surface, page.
  - Minor: String arguments with no constraint or example: id.
  - 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: id. Name the tool or the place that returns it, or models look it up first.
- `comment`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: documentId, body, parentId, publicKey, kind, timestamp, nonce, signature.
  - Minor: String arguments with no constraint or example: publicKey, nonce, signature.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: documentId. Name the tool or the place that returns it, or models look it up first.
- `read_profile`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: key.
  - Minor: Says nothing about what it returns.
- `delete`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: documentId, commentId, publicKey, kind, timestamp, nonce, signature.
  - Minor: String arguments with no constraint or example: publicKey, nonce, signature.
  - Minor: Says nothing about what it returns.
- `edit_spreadsheet`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: documentId, baseRevisionId, name, columns, rows, message, publicKey, kind, timestamp, nonce, signature.
  - Minor: String arguments with no constraint or example: publicKey, nonce, signature.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: documentId, baseRevisionId. Name the tool or the place that returns it, or models look it up first.
- `mark_read`: 38 / 100
  - Major: Arguments without a description: ids, publicKey, kind, timestamp, nonce, signature.
  - Minor: String arguments with no constraint or example: publicKey, nonce, signature.
  - Minor: Says nothing about what it returns.
- `read_document`: 38 / 100
  - Major: Arguments without a description: id, revision, readerPublicKey.
  - Minor: String arguments with no constraint or example: id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `read_rules`: 38 / 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.
  - Minor: Says nothing about what it returns.
- `read_notifications`: 41 / 100
  - Major: Arguments without a description: unread, limit, publicKey, kind, timestamp, nonce, signature.
  - Minor: String arguments with no constraint or example: publicKey, nonce, signature.
  - Minor: The meaning of the boolean argument unread is unclear.
  - Minor: Says nothing about what it returns.
- `create_spreadsheet`: 42 / 100
  - Major: Arguments without a description: title, name, columns, rows, publicKey, kind, timestamp, nonce, signature.
  - Minor: String arguments with no constraint or example: publicKey, nonce, signature.
  - Minor: Says nothing about what it returns.
- `submit_contribution`: 42 / 100
  - Major: Arguments without a description: envelope, envelope.version, envelope.scope, envelope.publicKey, envelope.kind, envelope.timestamp, envelope.nonce, envelope.action, envelope.payload, envelope.signature.
  - Minor: String arguments with no constraint or example: envelope.scope.
  - Minor: Says nothing about what it returns.
- `upload_image`: 46 / 100
  - Major: Arguments without a description: imageBase64, alt, proof.version, proof.scope, proof.publicKey, proof.kind, proof.timestamp, proof.nonce, proof.sha256, proof.draftId, proof.documentId, proof.signature.
  - Minor: String arguments with no constraint or example: proof.scope, proof.publicKey, proof.nonce, proof.sha256, proof.draftId, proof.documentId, proof.signature.
  - Minor: Says nothing about what it returns.
- `create_markdown`: 47 / 100
  - Major: Arguments without a description: title, markdown, publicKey, kind, timestamp, nonce, signature.
  - Minor: String arguments with no constraint or example: publicKey, nonce, signature.
  - Minor: Says nothing about what it returns.
- `edit_markdown`: 48 / 100
  - Major: Arguments without a description: documentId, baseRevisionId, markdown, title, message, publicKey, kind, timestamp, nonce, signature.
  - Minor: String arguments with no constraint or example: publicKey, nonce, signature.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: documentId, baseRevisionId. Name the tool or the place that returns it, or models look it up first.
- `suggest_edit`: 48 / 100
  - Major: Arguments without a description: documentId, baseRevisionId, markdown, title, message, publicKey, kind, timestamp, nonce, signature.
  - Minor: String arguments with no constraint or example: publicKey, nonce, signature.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: documentId, baseRevisionId. Name the tool or the place that returns it, or models look it up first.
- `review_suggestion`: 56 / 100
  - Major: Arguments without a description: proposalId, decision, expectedRevisionId, message, publicKey, kind, timestamp, nonce, signature.
  - Minor: String arguments with no constraint or example: publicKey, nonce, signature.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: proposalId. Name the tool or the place that returns it, or models look it up first.

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)
