﻿---
title: "Declare tags with a name"
description: "Each entry of the root tags catalogue is a Tag Object with a name and only the properties of Section 13.1."
source: "https://mcpdesc.org/docs/rules/0.9.0-rc.3/mcpdesc/tag-members/"
---

Each entry of the root tags catalogue is a Tag Object with a name and only the properties of Section 13.1.

## Requirement

A Tag Object has a non-empty name and only its defined properties.

## Details

**Rule ID:** `mcpdesc.tag.members`  
**Owner:** mcpdesc  
**Surface:** Tag  
**Kind:** structural  
**Requirement level:** must  
**Protocol versions:** independent of the MCP protocol version  
**Document schema locations:** `#/$defs/tag`  
**Status:** internal · **Enforcement:** internal

## Required by

* **MCP Description 0.9.0, Section 13.1**  
  * 13\. Tags: [req-tag-fields](https://mcpdesc.org/docs/specification/0.9.0-rc.3/tags#req-tag-fields)

## Examples

### Invalid example

Source: [expected-invalid/malformed-info-transport-tag-resource.json](https://github.com/mcpdesc/mcpdesc-specification/blob/v0.9.0-rc.3/spec/draft/fixtures/expected-invalid/malformed-info-transport-tag-resource.json) · Selected: `/tags/0`

```json
{
  "description": "A tag without a name"
}
```

## Rule Source Code

[document.yaml](https://github.com/mcpdesc/mcpdesc-specification/blob/v0.9.0-rc.3/spec/draft/validation/rules/document.yaml) at immutable tag [v0.9.0-rc.3](https://github.com/mcpdesc/mcpdesc-specification/blob/v0.9.0-rc.3/spec/draft).
