Skip to content

Add tool annotations to server-sequential-thinking (1 tool, 0 annotated) #3403

@agentward-ai

Description

@agentward-ai

Request: Add tool annotations — @modelcontextprotocol/server-sequential-thinking v0.2.0

Context

We ran an automated scan of this server via live JSON-RPC handshake. This server exposes 1 tool with no annotations. A minimal change — adding annotation hints to a single tool — would make this server fully annotated.

For reference, @modelcontextprotocol/server-filesystem annotates all 14 of its tools. This server has the easiest path to matching that standard.

Current state — 0/1 tools annotated

# Tool readOnlyHint destructiveHint idempotentHint openWorldHint
1 sequentialthinking

Suggested annotations

# Tool readOnlyHint destructiveHint idempotentHint openWorldHint
1 sequentialthinking true false true false

Suggested code change

server.registerTool(
  "sequentialthinking",
  {
    description: "A detailed tool for dynamic and reflective problem-solving through thoughts.",
    inputSchema: {
      thought: z.string(),
      nextThoughtNeeded: z.boolean(),
      thoughtNumber: z.number().int(),
      totalThoughts: z.number().int(),
      isRevision: z.boolean().optional(),
      revisesThought: z.number().int().optional(),
      branchFromThought: z.number().int().optional(),
      branchId: z.string().optional(),
      needsMoreThoughts: z.boolean().optional(),
    },
    annotations: {
      readOnlyHint: true,
      idempotentHint: true,
      openWorldHint: false,
    },
  },
  handler
);

Rationale

readOnlyHint: true — Pure computation. Takes a thought as input, returns structured reasoning. No state persisted, no files written, no external calls.

idempotentHint: true — Same input produces same reasoning structure. Safe for retries.

openWorldHint: false — No external network calls, no side effects outside the response.

destructiveHint can be omitted (defaults to true per spec, but is meaningless when readOnlyHint: true).

Why it still matters

This server is low-risk in isolation and low-risk in composition. But annotations still serve a purpose:

  • Client optimization — Clients that see readOnlyHint: true can skip confirmation prompts. For a tool that agents call frequently in reasoning loops, removing unnecessary friction improves the user experience.

  • Ecosystem consistency — If the official servers don't annotate even their simplest tools, community server developers won't either. This is the easiest possible annotation to add — one tool, all safe values — and it sets the precedent that annotation is expected, not optional.

Impact

This is a one-object addition to the tool registration. No behavior modification.


Found via automated scan with AgentWard. Enumerated via live JSON-RPC handshake, protocol 2025-11-25.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions