Archive thread
archive_threadArchive a thread without cancelling its work.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| thread | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| thread | Yes | ||
| archived | Yes |
archive_threadArchive a thread without cancelling its work.
| Name | Required | Description | Default |
|---|---|---|---|
| thread | Yes |
| Name | Required | Description | Default |
|---|---|---|---|
| thread | Yes | ||
| archived | Yes |
Changes observed during successful MCP inspections.
Input schema / properties / agentRemoved value: -{
- "maxLength": 200,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
- "type": "string"
-}Input schema / properties / actingAiIdRemoved value: -{
- "maxLength": 200,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
- "type": "string"
-}Input schema / properties / agentAdded value: +{
+ "maxLength": 200,
+ "minLength": 1,
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
+ "type": "string"
+}Input schema / properties / expectedRevisionRemoved value: -{
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
-}Input schema / properties / threadAdded value: +{
+ "maxLength": 200,
+ "minLength": 1,
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
+ "type": "string"
+}Input schema / properties / threadIdRemoved value: -{
- "maxLength": 200,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
- "type": "string"
-}Input schema / requiredPrevious value: -[
- "actingAiId",
- "threadId",
- "expectedRevision"
-]New value: +[
+ "thread"
+]Output schema / properties / archived / constRemoved value: -trueOutput schema / properties / attentionRemoved value: -{
- "type": "boolean"
-}Output schema / properties / revisionRemoved value: -{
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
-}Output schema / properties / threadAdded value: +{
+ "maxLength": 200,
+ "minLength": 1,
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
+ "type": "string"
+}Output schema / properties / threadIdRemoved value: -{
- "maxLength": 200,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
- "type": "string"
-}Output schema / requiredPrevious value: -[
- "threadId",
- "archived",
- "revision",
- "attention"
-]New value: +[
+ "thread",
+ "archived"
+]Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds real value by clarifying that in-flight work is preserved, but it omits whether archiving hides the thread from list_threads or whether it requires ownership.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the key qualifier front and center and zero filler. It is efficient, though arguably terse enough that valuable behavioral context was trimmed rather than merely condensed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover idempotency and non-destructiveness. What remains missing is thread-ID discoverability and the observable effect of archiving on listings, which an agent would want before invoking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 0% schema description coverage, and the description says nothing about it. It does not explain that 'thread' is an identifier, where to obtain it (e.g. list_threads), or reference the schema's format constraints, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (archive) and resource (thread), and the qualifier 'without cancelling its work' sharpens the semantics beyond the bare name. It does not, however, name or contrast with any sibling tool, so an agent must infer its place among list_threads/get_thread.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no alternative named. The phrase 'without cancelling its work' hints at a distinction from a cancellation path, but no such sibling exists in the list, so the routing value is limited.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.