Skip to main content
Glama

set_following

DestructiveIdempotent

Follow (following=true) or unfollow (following=false) another Hardcover user, identified by user_id or username (provide one; user_id wins if both are given). Idempotent: if you already are in the requested state nothing changes.

Instructions

Follow (following=true) or unfollow (following=false) another Hardcover user, identified by user_id or username (provide one; user_id wins if both are given). Idempotent: if you already are in the requested state nothing changes. Followed users' activity appears in get_activity_feed. Returns user_id, following, and 'changed' (whether anything was done); an unknown user is an error.

Input Schema

NameRequiredDescriptionDefault
user_idNoHardcover user ID.
usernameNoUsername (resolved to an ID).
followingYestrue to follow, false to unfollow.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.8.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare idempotency, destructiveness, and open-world behavior; the description adds concrete meaning beyond them: what 'idempotent' means here ('nothing changes'), that an unknown user is an error, and exactly which fields are returned. This is a meaningful behavioral supplement rather than a restatement.

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?

A single dense paragraph that front-loads the core action, then identifier resolution, idempotency, downstream effect, and return shape. Every sentence carries actionable information with no filler.

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?

No output schema exists, and the description compensates by naming the returned fields (user_id, following, changed) and the error condition for an unknown user. For a three-parameter mutation tool this is fully sufficient.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds the non-obvious precedence rule that user_id wins when both identifiers are supplied. The boolean semantics are already in the schema, so it falls short of a full 5.

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 states a specific verb pair (follow/unfollow) and resource (another Hardcover user), with the boolean flag semantics spelled out. No sibling tool does this, so it is unambiguous against the provided tool list.

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?

It explicitly says how to trigger each mode via following=true/false, how to identify the target (user_id or username, user_id wins), and points to get_activity_feed as the downstream consumer. An agent has everything needed to choose and call it correctly.

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