Skip to main content
Glama

Organize a library item

update_library_item
Idempotent

Move, tag, mark read, update progress, or correct the classification of one library item.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesUUID that identifies the resource; pass it back exactly as smry returned it.
tagsNo
statusNo
starredNo
mark_readNo
content_kindNo
read_progressNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / id / description
      Added value: +"UUID that identifies the resource; pass it back exactly as smry returned it."
    • addedOutput schema / properties / item / allOf
      Added value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "articleStatus": {
      +        "type": "string"
      +      },
      +      "asset": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {},
      +            "properties": {
      +              "checksum": {
      +                "type": "string"
      +              },
      +              "downloadUrl": {
      +                "type": "string"
      +              },
      +              "fileName": {
      +                "type": "string"
      +              },
      +              "itemId": {
      +                "description": "UUID that identifies the resource; pass it back exactly as smry returned it.",
      +                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      +                "type": "string"
      +              },
      +              "mimeType": {
      +                "type": "string"
      +              },
      +              "resourceUri": {
      +                "type": "string"
      +              },
      +              "size": {
      +                "type": "number"
      +              },
      +              "updatedAt": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "itemId",
      +              "fileName",
      +              "mimeType",
      +              "size",
      +              "checksum",
      +              "updatedAt",
      +              "resourceUri",
      +              "downloadUrl"
      +            ],
      +            "type": "object",
      +            "x-smry-component": "LibraryAsset"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "captureMethod": {
      +        "anyOf": [
      +          {
      +            "const": "reader",
      +            "type": "string"
      +          },
      +          {
      +            "const": "extension",
      +            "type": "string"
      +          },
      +          {
      +            "const": "upload",
      +            "type": "string"
      +          },
      +          {
      +            "const": "rss",
      +            "type": "string"
      +          },
      +          {
      +            "const": "email_inbox",
      +            "type": "string"
      +          },
      +          {
      +            "const": "api",
      +            "type": "string"
      +          },
      +          {
      +            "const": "import",
      +            "type": "string"
      +          }
      +        ]
      +      },
      +      "classification": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "confidence": {
      +            "maximum": 100,
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "method": {
      +            "anyOf": [
      +              {
      +                "const": "user",
      +                "type": "string"
      +              },
      +              {
      +                "const": "source_adapter",
      +                "type": "string"
      +              },
      +              {
      +                "const": "mime",
      +                "type": "string"
      +              },
      +              {
      +                "const": "extension",
      +                "type": "string"
      +              },
      +              {
      +                "const": "url",
      +                "type": "string"
      +              },
      +              {
      +                "const": "metadata",
      +                "type": "string"
      +              },
      +              {
      +                "const": "legacy",
      +                "type": "string"
      +              },
      +              {
      +                "const": "fallback",
      +                "type": "string"
      +              }
      +            ]
      +          },
      +          "updatedAt": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "method",
      +          "confidence",
      +          "version",
      +          "updatedAt"
      +        ],
      +        "type": "object"
      +      },
      +      "contentKind": {
      +        "anyOf": [
      +          {
      +            "const": "article",
      +            "type": "string"
      +          },
      +          {
      +            "const": "website",
      +            "type": "string"
      +          },
      +          {
      +            "const": "book",
      +            "type": "string"
      +          },
      +          {
      +            "const": "email",
      +            "type": "string"
      +          },
      +          {
      +            "const": "pdf",
      +            "type": "string"
      +          },
      +          {
      +            "const": "social_post",
      +            "type": "string"
      +          },
      +          {
      +            "const": "video",
      +            "type": "string"
      +          },
      +          {
      +            "const": "podcast_episode",
      +            "type": "string"
      +          },
      +          {
      +            "const": "document",
      +            "type": "string"
      +          },
      +          {
      +            "const": "unknown",
      +            "type": "string"
      +          }
      +        ]
      +      },
      +      "domain": {
      +        "type": "string"
      +      },
      +      "externalId": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "fileName": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "format": {
      +        "anyOf": [
      +          {
      +            "const": "html",
      +            "type": "string"
      +          },
      +          {
      +            "const": "pdf",
      +            "type": "string"
      +          },
      +          {
      +            "const": "epub",
      +            "type": "string"
      +          },
      +          {
      +            "const": "markdown",
      +            "type": "string"
      +          },
      +          {
      +            "const": "plain_text",
      +            "type": "string"
      +          },
      +          {
      +            "const": "document",
      +            "type": "string"
      +          },
      +          {
      +            "const": "spreadsheet",
      +            "type": "string"
      +          },
      +          {
      +            "const": "presentation",
      +            "type": "string"
      +          },
      +          {
      +            "const": "audio",
      +            "type": "string"
      +          },
      +          {
      +            "const": "video",
      +            "type": "string"
      +          },
      +          {
      +            "const": "unknown",
      +            "type": "string"
      +          }
      +        ]
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "lastReadAt": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "metadata": {
      +        "patternProperties": {
      +          "^(.*)$": {}
      +        },
      +        "type": "object"
      +      },
      +      "mimeType": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "originalUrl": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "readProgress": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "savedAt": {
      +        "type": "string"
      +      },
      +      "starred": {
      +        "type": "boolean"
      +      },
      +      "status": {
      +        "type": "string"
      +      },
      +      "tags": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "updatedAt": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "url",
      +      "originalUrl",
      +      "title",
      +      "domain",
      +      "contentKind",
      +      "classification",
      +      "captureMethod",
      +      "format",
      +      "mimeType",
      +      "fileName",
      +      "asset",
      +      "externalId",
      +      "status",
      +      "starred",
      +      "tags",
      +      "savedAt",
      +      "updatedAt",
      +      "lastReadAt",
      +      "readProgress",
      +      "articleStatus"
      +    ],
      +    "type": "object",
      +    "x-smry-component": "LibraryItem"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "article": {
      +        "additionalProperties": {},
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • removedOutput schema / properties / item / properties
      Removed value: -{
      -  "article": {
      -    "additionalProperties": {},
      -    "propertyNames": {
      -      "type": "string"
      -    },
      -    "type": "object"
      -  },
      -  "articleStatus": {
      -    "type": "string"
      -  },
      -  "asset": {
      -    "anyOf": [
      -      {
      -        "additionalProperties": {},
      -        "properties": {
      -          "checksum": {
      -            "type": "string"
      -          },
      -          "downloadUrl": {
      -            "type": "string"
      -          },
      -          "fileName": {
      -            "type": "string"
      -          },
      -          "itemId": {
      -            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      -            "type": "string"
      -          },
      -          "mimeType": {
      -            "type": "string"
      -          },
      -          "resourceUri": {
      -            "type": "string"
      -          },
      -          "size": {
      -            "type": "number"
      -          },
      -          "updatedAt": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "itemId",
      -          "fileName",
      -          "mimeType",
      -          "size",
      -          "checksum",
      -          "updatedAt",
      -          "resourceUri",
      -          "downloadUrl"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ]
      -  },
      -  "captureMethod": {
      -    "anyOf": [
      -      {
      -        "const": "reader",
      -        "type": "string"
      -      },
      -      {
      -        "const": "extension",
      -        "type": "string"
      -      },
      -      {
      -        "const": "upload",
      -        "type": "string"
      -      },
      -      {
      -        "const": "rss",
      -        "type": "string"
      -      },
      -      {
      -        "const": "email_inbox",
      -        "type": "string"
      -      },
      -      {
      -        "const": "api",
      -        "type": "string"
      -      },
      -      {
      -        "const": "import",
      -        "type": "string"
      -      }
      -    ]
      -  },
      -  "classification": {
      -    "additionalProperties": {},
      -    "properties": {
      -      "confidence": {
      -        "maximum": 100,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "method": {
      -        "anyOf": [
      -          {
      -            "const": "user",
      -            "type": "string"
      -          },
      -          {
      -            "const": "source_adapter",
      -            "type": "string"
      -          },
      -          {
      -            "const": "mime",
      -            "type": "string"
      -          },
      -          {
      -            "const": "extension",
      -            "type": "string"
      -          },
      -          {
      -            "const": "url",
      -            "type": "string"
      -          },
      -          {
      -            "const": "metadata",
      -            "type": "string"
      -          },
      -          {
      -            "const": "legacy",
      -            "type": "string"
      -          },
      -          {
      -            "const": "fallback",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "updatedAt": {
      -        "type": "string"
      -      },
      -      "version": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "method",
      -      "confidence",
      -      "version",
      -      "updatedAt"
      -    ],
      -    "type": "object"
      -  },
      -  "contentKind": {
      -    "anyOf": [
      -      {
      -        "const": "article",
      -        "type": "string"
      -      },
      -      {
      -        "const": "website",
      -        "type": "string"
      -      },
      -      {
      -        "const": "book",
      -        "type": "string"
      -      },
      -      {
      -        "const": "email",
      -        "type": "string"
      -      },
      -      {
      -        "const": "pdf",
      -        "type": "string"
      -      },
      -      {
      -        "const": "social_post",
      -        "type": "string"
      -      },
      -      {
      -        "const": "video",
      -        "type": "string"
      -      },
      -      {
      -        "const": "podcast_episode",
      -        "type": "string"
      -      },
      -      {
      -        "const": "document",
      -        "type": "string"
      -      },
      -      {
      -        "const": "unknown",
      -        "type": "string"
      -      }
      -    ]
      -  },
      -  "domain": {
      -    "type": "string"
      -  },
      -  "externalId": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "fileName": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "format": {
      -    "anyOf": [
      -      {
      -        "const": "html",
      -        "type": "string"
      -      },
      -      {
      -        "const": "pdf",
      -        "type": "string"
      -      },
      -      {
      -        "const": "epub",
      -        "type": "string"
      -      },
      -      {
      -        "const": "markdown",
      -        "type": "string"
      -      },
      -      {
      -        "const": "plain_text",
      -        "type": "string"
      -      },
      -      {
      -        "const": "document",
      -        "type": "string"
      -      },
      -      {
      -        "const": "spreadsheet",
      -        "type": "string"
      -      },
      -      {
      -        "const": "presentation",
      -        "type": "string"
      -      },
      -      {
      -        "const": "audio",
      -        "type": "string"
      -      },
      -      {
      -        "const": "video",
      -        "type": "string"
      -      },
      -      {
      -        "const": "unknown",
      -        "type": "string"
      -      }
      -    ]
      -  },
      -  "id": {
      -    "type": "string"
      -  },
      -  "lastReadAt": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "metadata": {
      -    "patternProperties": {
      -      "^(.*)$": {}
      -    },
      -    "type": "object"
      -  },
      -  "mimeType": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "originalUrl": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "readProgress": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "savedAt": {
      -    "type": "string"
      -  },
      -  "starred": {
      -    "type": "boolean"
      -  },
      -  "status": {
      -    "type": "string"
      -  },
      -  "tags": {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "title": {
      -    "type": "string"
      -  },
      -  "updatedAt": {
      -    "type": "string"
      -  },
      -  "url": {
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / item / required
      Removed value: -[
      -  "id",
      -  "url",
      -  "originalUrl",
      -  "title",
      -  "domain",
      -  "contentKind",
      -  "classification",
      -  "captureMethod",
      -  "format",
      -  "mimeType",
      -  "fileName",
      -  "asset",
      -  "externalId",
      -  "status",
      -  "starred",
      -  "tags",
      -  "savedAt",
      -  "updatedAt",
      -  "lastReadAt",
      -  "readProgress",
      -  "articleStatus"
      -]
    • removedOutput schema / properties / item / type
      Removed value: -"object"
  2. Changed3 schema fields changed
    • addedInput schema / properties / starred
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / item / properties / starred
      Added value: +{
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / item / required
      Previous value: -[
      -  "id",
      -  "url",
      -  "originalUrl",
      -  "title",
      -  "domain",
      -  "contentKind",
      -  "classification",
      -  "captureMethod",
      -  "format",
      -  "mimeType",
      -  "fileName",
      -  "asset",
      -  "externalId",
      -  "status",
      -  "tags",
      -  "savedAt",
      -  "updatedAt",
      -  "lastReadAt",
      -  "readProgress",
      -  "articleStatus"
      -]New value: +[
      +  "id",
      +  "url",
      +  "originalUrl",
      +  "title",
      +  "domain",
      +  "contentKind",
      +  "classification",
      +  "captureMethod",
      +  "format",
      +  "mimeType",
      +  "fileName",
      +  "asset",
      +  "externalId",
      +  "status",
      +  "starred",
      +  "tags",
      +  "savedAt",
      +  "updatedAt",
      +  "lastReadAt",
      +  "readProgress",
      +  "articleStatus"
      +]
  3. Changed10 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • addedInput schema / minProperties
      Added value: +2
    • addedInput schema / properties / content_kind
      Added value: +{
      +  "anyOf": [
      +    {
      +      "const": "article",
      +      "type": "string"
      +    },
      +    {
      +      "const": "website",
      +      "type": "string"
      +    },
      +    {
      +      "const": "book",
      +      "type": "string"
      +    },
      +    {
      +      "const": "email",
      +      "type": "string"
      +    },
      +    {
      +      "const": "pdf",
      +      "type": "string"
      +    },
      +    {
      +      "const": "social_post",
      +      "type": "string"
      +    },
      +    {
      +      "const": "video",
      +      "type": "string"
      +    },
      +    {
      +      "const": "podcast_episode",
      +      "type": "string"
      +    },
      +    {
      +      "const": "document",
      +      "type": "string"
      +    },
      +    {
      +      "const": "unknown",
      +      "type": "string"
      +    }
      +  ]
      +}
    • removedInput schema / properties / id / format
      Removed value: -"uuid"
    • addedInput schema / properties / id / pattern
      Added value: +"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
    • addedInput schema / properties / status / anyOf
      Added value: +[
      +  {
      +    "const": "inbox",
      +    "type": "string"
      +  },
      +  {
      +    "const": "later",
      +    "type": "string"
      +  },
      +  {
      +    "const": "archive",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / status / enum
      Removed value: -[
      -  "inbox",
      -  "later",
      -  "archive"
      -]
    • removedInput schema / properties / status / type
      Removed value: -"string"
    • removedInput schema / properties / tags / items / minLength
      Removed value: -1
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": false,
      +  "properties": {
      +    "item": {
      +      "properties": {
      +        "article": {
      +          "additionalProperties": {},
      +          "propertyNames": {
      +            "type": "string"
      +          },
      +          "type": "object"
      +        },
      +        "articleStatus": {
      +          "type": "string"
      +        },
      +        "asset": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": {},
      +              "properties": {
      +                "checksum": {
      +                  "type": "string"
      +                },
      +                "downloadUrl": {
      +                  "type": "string"
      +                },
      +                "fileName": {
      +                  "type": "string"
      +                },
      +                "itemId": {
      +                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      +                  "type": "string"
      +                },
      +                "mimeType": {
      +                  "type": "string"
      +                },
      +                "resourceUri": {
      +                  "type": "string"
      +                },
      +                "size": {
      +                  "type": "number"
      +                },
      +                "updatedAt": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "itemId",
      +                "fileName",
      +                "mimeType",
      +                "size",
      +                "checksum",
      +                "updatedAt",
      +                "resourceUri",
      +                "downloadUrl"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "captureMethod": {
      +          "anyOf": [
      +            {
      +              "const": "reader",
      +              "type": "string"
      +            },
      +            {
      +              "const": "extension",
      +              "type": "string"
      +            },
      +            {
      +              "const": "upload",
      +              "type": "string"
      +            },
      +            {
      +              "const": "rss",
      +              "type": "string"
      +            },
      +            {
      +              "const": "email_inbox",
      +              "type": "string"
      +            },
      +            {
      +              "const": "api",
      +              "type": "string"
      +            },
      +            {
      +              "const": "import",
      +              "type": "string"
      +            }
      +          ]
      +        },
      +        "classification": {
      +          "additionalProperties": {},
      +          "properties": {
      +            "confidence": {
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "method": {
      +              "anyOf": [
      +                {
      +                  "const": "user",
      +                  "type": "string"
      +                },
      +                {
      +                  "const": "source_adapter",
      +                  "type": "string"
      +                },
      +                {
      +                  "const": "mime",
      +                  "type": "string"
      +                },
      +                {
      +                  "const": "extension",
      +                  "type": "string"
      +                },
      +                {
      +                  "const": "url",
      +                  "type": "string"
      +                },
      +                {
      +                  "const": "metadata",
      +                  "type": "string"
      +                },
      +                {
      +                  "const": "legacy",
      +                  "type": "string"
      +                },
      +                {
      +                  "const": "fallback",
      +                  "type": "string"
      +                }
      +              ]
      +            },
      +            "updatedAt": {
      +              "type": "string"
      +            },
      +            "version": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "method",
      +            "confidence",
      +            "version",
      +            "updatedAt"
      +          ],
      +          "type": "object"
      +        },
      +        "contentKind": {
      +          "anyOf": [
      +            {
      +              "const": "article",
      +              "type": "string"
      +            },
      +            {
      +              "const": "website",
      +              "type": "string"
      +            },
      +            {
      +              "const": "book",
      +              "type": "string"
      +            },
      +            {
      +              "const": "email",
      +              "type": "string"
      +            },
      +            {
      +              "const": "pdf",
      +              "type": "string"
      +            },
      +            {
      +              "const": "social_post",
      +              "type": "string"
      +            },
      +            {
      +              "const": "video",
      +              "type": "string"
      +            },
      +            {
      +              "const": "podcast_episode",
      +              "type": "string"
      +            },
      +            {
      +              "const": "document",
      +              "type": "string"
      +            },
      +            {
      +              "const": "unknown",
      +              "type": "string"
      +            }
      +          ]
      +        },
      +        "domain": {
      +          "type": "string"
      +        },
      +        "externalId": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "fileName": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "format": {
      +          "anyOf": [
      +            {
      +              "const": "html",
      +              "type": "string"
      +            },
      +            {
      +              "const": "pdf",
      +              "type": "string"
      +            },
      +            {
      +              "const": "epub",
      +              "type": "string"
      +            },
      +            {
      +              "const": "markdown",
      +              "type": "string"
      +            },
      +            {
      +              "const": "plain_text",
      +              "type": "string"
      +            },
      +            {
      +              "const": "document",
      +              "type": "string"
      +            },
      +            {
      +              "const": "spreadsheet",
      +              "type": "string"
      +            },
      +            {
      +              "const": "presentation",
      +              "type": "string"
      +            },
      +            {
      +              "const": "audio",
      +              "type": "string"
      +            },
      +            {
      +              "const": "video",
      +              "type": "string"
      +            },
      +            {
      +              "const": "unknown",
      +              "type": "string"
      +            }
      +          ]
      +        },
      +        "id": {
      +          "type": "string"
      +        },
      +        "lastReadAt": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "metadata": {
      +          "patternProperties": {
      +            "^(.*)$": {}
      +          },
      +          "type": "object"
      +        },
      +        "mimeType": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "originalUrl": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "readProgress": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "savedAt": {
      +          "type": "string"
      +        },
      +        "status": {
      +          "type": "string"
      +        },
      +        "tags": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "title": {
      +          "type": "string"
      +        },
      +        "updatedAt": {
      +          "type": "string"
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "url",
      +        "originalUrl",
      +        "title",
      +        "domain",
      +        "contentKind",
      +        "classification",
      +        "captureMethod",
      +        "format",
      +        "mimeType",
      +        "fileName",
      +        "asset",
      +        "externalId",
      +        "status",
      +        "tags",
      +        "savedAt",
      +        "updatedAt",
      +        "lastReadAt",
      +        "readProgress",
      +        "articleStatus"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "item"
      +  ],
      +  "type": "object"
      +}
  4. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=false, idempotentHint=true, openWorldHint=false, and readOnlyHint=false, so the safety profile is covered. The description adds value by enumerating the mutable aspects, but it omits noteworthy behavior such as the minProperties=2 requirement and whether fields left unmentioned are preserved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that lists the operation set without filler. It is efficient, though the lack of any secondary sentence leaves the usage and parameter gaps unaddressed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With seven parameters, one required id, a low-coverage schema, and an existing output schema (so return values need not be explained), the description covers the operation set adequately. It falls short on the single-vs-bulk routing cue and on the unmentioned starred parameter, but is otherwise reasonable for an annotated, idempotent mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14% (only 'id' is documented), so the description must carry the burden, and it partially does by mapping verbs to the status, tags, mark_read, read_progress, and content_kind parameters. However, it never mentions 'starred' and gives no value-level semantics, so the compensation is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource ('one library item') and enumerates the mutation verbs (move, tag, mark read, update progress, correct classification), which map onto the schema's status/tags/mark_read/read_progress/content_kind fields. The phrasing 'one library item' implicitly distinguishes it from the sibling bulk_update_library_items, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the singular scope ('one library item'), which hints this is for a single-item edit versus a bulk operation, but there is no explicit when-to-use, when-not, or alternative named. An agent has to infer routing from the sibling list rather than from the description.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources