Skip to main content
Glama
chadsly
by chadsly

Ruddur MCP Server

MCP server for the Ruddur creator API. The public marketplace uses the hosted Streamable HTTP endpoint and browser OAuth; a local stdio mode remains available for development.

Marketplace installation

The Codex and Claude plugin manifests connect to https://mcp.ruddur.com/mcp. Users do not create an environment file or paste an API token. On first use, the host discovers Ruddur's OAuth metadata, opens the Ruddur login/consent page, and stores the resulting scoped token.

The service operator must deploy the included Docker image and publish /mcp over HTTPS. See docs/PUBLIC_MCP_ARCHITECTURE.md.

Related MCP server: Discovery Engine MCP Server

Protocol compatibility

The HTTPS endpoint automatically supports both MCP eras:

  • MCP through 2025-11-25 uses the initialization-based SDK transport expected by current Codex and Claude clients.

  • MCP 2026-07-28 uses stateless per-request metadata, server/discover, required request headers, resultType, and cache metadata.

The endpoint detects the era from MCP-Protocol-Version and params._meta. Both handlers use the same scoped tool runtime and forward the OAuth-issued creator API token to the existing Ruddur backend APIs.

Container publishing

GitLab CI runs typechecking, tests, and compilation before Kaniko builds a linux/amd64 image. Every branch or tag publishes:

$CI_REGISTRY_IMAGE/app:$CI_COMMIT_SHORT_SHA

The default branch also publishes :latest; Git tags additionally publish an image with the same tag. GitLab's built-in CI_JOB_TOKEN authenticates the registry push, matching the other Ruddur service repositories.

Setup

cd ruddur-mcp
npm install
cp .env.stdio.example .env
npm run build

Set at least:

RUDDUR_API_BASE=https://ruddur.com
RUDDUR_CREATOR_API_TOKEN=your-token

RUDDUR_CREATOR_SCOPES is optional. When present, the server only advertises tools matching those scopes. When absent, it advertises all allowlisted creator tools and lets the Ruddur API enforce the token's actual scopes.

This token-based file is only for local stdio development. Hosted deployments use .env.example, which intentionally contains no creator token: each marketplace user's OAuth token arrives as the bearer credential on their MCP request.

Set RUDDUR_MCP_ALLOW_MUTATIONS=false to run read-only. Delete, restore, publish/status, and detach operations require confirm=true from the calling agent.

Local Codex development

For local stdio development, add this to ~/.codex/config.toml:

[mcp_servers.ruddur]
command = "npx"
args = ["-y", "git+https://gitlab.com/ruddur1/ruddur-mcp.git"]
env = { RUDDUR_MCP_ENV_FILE = "/absolute/path/to/your/.env" }

The referenced .env must define RUDDUR_CREATOR_API_TOKEN. The server defaults RUDDUR_API_BASE to https://ruddur.com.

Alternatively, for a locally cloned checkout:

Add this to ~/.codex/config.toml:

[mcp_servers.ruddur]
command = "node"
args = ["/absolute/path/to/ruddur-mcp/dist/index.js"]
env = { RUDDUR_MCP_ENV_FILE = "/absolute/path/to/ruddur-mcp/.env" }

Restart Codex after changing MCP configuration.

Local Claude Code development

For local stdio development:

claude mcp add-json ruddur '{
  "type": "stdio",
  "command": "npx",
  "args": ["-y", "git+https://gitlab.com/ruddur1/ruddur-mcp.git"],
  "env": {
    "RUDDUR_MCP_ENV_FILE": "/absolute/path/to/your/.env"
  }
}'

Set RUDDUR_MCP_ALLOW_MUTATIONS=false for read-only use. Set RUDDUR_MCP_ALLOW_MUTATIONS=true when Claude should see create/update tools such as ruddur_create_heading and ruddur_create_waypoint.

Security

  • Use the narrowest creator-token scopes needed.

  • Keep .env out of source control.

  • The server never exposes a generic URL/path request tool.

  • Token management is excluded because Ruddur requires session authentication for issuing and revoking API tokens.

  • Only local stdio mode reads .env; the public remote server uses OAuth and never receives a user's local environment.

Development

npm run typecheck
npm test
npm run build

Available Tools

53 tools
ruddur_add_heading_collaboratorA

Add a collaborator to a Heading. The MCP server accepts collaborator aliases such as userId, collaboratorId, permission, access, and accessLevel. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already indicate this is a write operation (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds the authentication scope requirement (content.manage) and notes that the server accepts aliases for collaborator fields, which is useful behavioral context. However, it does not describe effects on existing collaborators, error conditions, or response details, leaving some behavioral gaps beyond what annotations cover.

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?

The description is only three sentences, with the primary action front-loaded in the first sentence. Every sentence earns its place: purpose, alias flexibility, and authorization requirement. No redundant or filler content exists.

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

Completeness3/5

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

For a mutation tool with no output schema and sparse annotations, the description covers the core action, auth requirement, and parameter aliases. However, it lacks details on success/failure behavior, whether adding a collaborator is additive or replacing, and what the response contains. These gaps leave invocation partially under-specified, but the essential information for selecting and calling the tool is present.

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?

The schema has 100% description coverage for its parameters, but the body parameter is generic and only described as 'JSON request body.' The description adds significant meaning by enumerating specific accepted aliases (userId, collaboratorId, permission, access, accessLevel), which clarifies what fields should be sent. This goes beyond the schema's generic body description, earning above-baseline credit.

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 opens with a specific verb and resource: 'Add a collaborator to a Heading.' This clearly states the tool's function and differentiates it from sibling tools like update or remove. Additional detail about accepted aliases (userId, collaboratorId, permission, etc.) reinforces its purpose without ambiguity.

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

Usage Guidelines4/5

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

The description explicitly states the required scope 'content.manage', giving a clear prerequisite for use. It does not explicitly contrast with alternative tools (e.g., update for modifying existing collaborators), but the action verb 'add' inherently implies the appropriate context. This provides clear usage context without formal exclusions.

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

ruddur_apply_heading_templateA

Create a Heading from a template. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: templateId.

TDQS

A3.6/5.0
Behavior3/5

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

It adds the permission scope requirement beyond the annotations, which is useful. However, it does not describe side effects, return behavior, or how the template is applied. Annotations already cover the safety profile, so this is adequate but not rich.

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?

The description is a single sentence that front-loads the action and includes a key requirement. It is extremely concise with no wasteful words.

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

Completeness2/5

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

For a creation tool with nested body parameters and no output schema, the description is too sparse. It does not explain how the template is used, what body content is expected, or what the response will be, leaving significant gaps for the agent.

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 coverage is 100% and the description adds no parameter-specific detail. The schema already documents templateId and the generic body/query fields. Baseline 3 applies as the description does not compensate further.

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 clearly states the tool creates a Heading from a template, using a specific verb and resource. This distinguishes it from sibling tools like ruddur_create_heading and ruddur_create_heading_template.

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?

The description provides a scope requirement (content.manage) but does not explicitly compare this tool with alternatives like ruddur_create_heading. Usage context is implied but not fully articulated.

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

ruddur_attach_media_assetA

Attach a media asset to Ruddur content. The MCP server accepts media aliases such as title/name, mimeType/contentType, size/fileSize, and heading/waypoint/listing identifiers. Requires scope: media.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already signal that this is a mutating, non-destructive operation. The description adds valuable context beyond the annotations by noting the required OAuth scope (media.manage) and the server's acceptance of media aliases (title/name, mimeType/contentType, etc.), which indicates a flexible input behavior. It does not describe side effects or return values, but the annotations lower the burden, and the provided details are useful.

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?

Two sentences, both purposeful. The first states the core action; the second adds the scope requirement and alias flexibility. No filler, no repetition of schema details. Information is front-loaded and easy to scan.

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?

For a tool with no output schema and moderate complexity, the description covers the essentials: the action, the required auth scope, and the flexible input format. It does not explicitly enumerate all content types or prerequisites, but the alias list hints at headings/waypoints/listings, and sibling tools cover related operations. Adequate for an agent to select and begin invoking the tool correctly.

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?

While the schema already describes all parameters (100% coverage), the description adds meaning by explaining that the server accepts 'media aliases' and that users can pass 'natural Ruddur fields directly at the top level' instead of wrapping them in body. This is crucial for correctly constructing the request and goes beyond the generic schema descriptions.

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 opens with a specific verb+resource pairing: 'Attach a media asset to Ruddur content.' This clearly distinguishes it from siblings like create_media_upload (uploading new media) and detach_media_asset (removing a relationship). The action and target are unambiguous.

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?

The description states what the tool does and mentions it requires scope media.manage, but it does not explicitly explain when to choose this over alternatives (e.g., when to use attach vs. update vs. create). The context of 'attach' and the sibling tool names imply use cases, but there are no explicit when/when-not guidelines or named alternatives.

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

ruddur_attach_waypointB

Attach a Waypoint to a Heading. The MCP server accepts placement aliases such as heading, index, state, and sortOrder. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already mark this as non-read, non-idempotent, and non-destructive, and the description adds useful behavioral context: accepted placement aliases (heading, index, state, sortOrder) and the rule to omit assessmentConfig for normal waypoint payloads. Even so, it does not disclose what 'attach' does in practice (e.g., whether a placement is created or replaced) or what the response contains, so it falls short of rich transparency.

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?

The description is compact and front-loaded: the first sentence states the purpose, the second adds a key capability, and the third notes the required permission. Every sentence earns its place, with no redundant vocabulary or filler.

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

Completeness2/5

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

For a mutating tool with a flexible body and no output schema, the description leaves substantial gaps: it does not explain what the path id refers to, whether the waypoint or heading must already exist, what happens on success, or how this tool differs from placement-specific siblings. The schema and annotations carry most of the load, but the description alone is not enough for an agent to invoke this with confidence.

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 complete (100%), and the body parameter description in the schema already explains flexible top-level fields and the assessmentConfig exception. The description adds value by naming concrete placement aliases that would otherwise be hidden in free-form object fields, giving the agent a clearer idea of valid body content. It does not, however, explain the id parameter's semantics, so it is not a perfect parameter guide.

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?

The description opens with a clear action-resource-target statement ('Attach a Waypoint to a Heading'), which is more specific than a generic 'process' and differentiates it from sibling 'create' tools at a high level. However, it leaves operational ambiguity: it does not state whether a new waypoint is created or an existing one is associated, and the meaning of the path 'id' is never clarified.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus adjacent tools like ruddur_create_waypoint or ruddur_update_waypoint_placement. The only actionable note is the scope requirement ('Requires scope: content.manage'), which is a permission constraint, not a usage condition or alternative-selection hint.

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

ruddur_clone_headingA

Clone a creator-owned Heading. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already disclose that this is a mutating, non-idempotent operation (readOnlyHint=false, idempotentHint=false). The description adds value by stating the required content.manage scope and restricting to creator-owned headings, but it does not explain what the clone operation returns, how the copy is created, or any side effects.

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?

The description is two concise, front-loaded sentences with no filler. Every phrase contributes meaningful information: the action ('Clone'), the resource ('creator-owned Heading'), and the required scope.

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

Completeness2/5

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

There is no output schema, and the description does not explain what the response contains, how the body parameters affect the cloned heading, or how the path 'id' is used. For a mutating tool with a generic body and no return contract, this minimal description leaves significant gaps for correct invocation.

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?

The input schema fully documents all parameters, including pathParams.id and the generic body/query objects, so schema_description_coverage is 100%. The description adds no additional parameter-level meaning beyond the schema, so the baseline 3 applies.

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 uses the specific verb 'Clone' plus the resource 'creator-owned Heading', clearly stating the action and its target. It distinguishes itself from siblings like ruddur_create_heading and ruddur_get_heading by indicating duplication rather than creation or retrieval.

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?

The description gives a clear prerequisite ('Requires scope: content.manage') and implies usage when duplicating a creator-owned heading. However, it does not explicitly mention when to prefer this over alternatives like ruddur_create_heading, snapshot tools, or templates, nor does it state any exclusions.

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

ruddur_create_couponA

Create a marketplace coupon. The MCP server accepts coupon aliases such as promoCode, percentOff, amountOff, expires, usageLimit, and marketplaceListingId. Requires scope: marketplace.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A4.1/5.0
Behavior4/5

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

The description adds a useful behavioral constraint—the required 'marketplace.manage' scope—beyond the annotations. It does not contradict the annotations (readOnlyHint false, etc.) and provides authentication context that annotations lack.

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?

The description is two sentences, front-loaded with the primary purpose, and then provides the most essential extra details (aliases and scope). Every sentence earns its place with no filler or redundancy.

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

Completeness3/5

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

For a create tool with no output schema and generic body schema, the description offers the core purpose, some field names, and a scope requirement, but it does not state which aliases are required, how they should be structured, or what the response looks like. This is a minimal viable description with clear gaps for reliable invocation.

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?

The input schema only describes generic 'body' and 'query' parameters, while the description contributes domain-specific coupon aliases like promoCode, percentOff, and marketplaceListingId. However, the list is incomplete ('such as') and omits types/requiredness, so it adds meaning but not full semantics.

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 opens with 'Create a marketplace coupon,' which is a specific verb+resource statement that clearly differentiates this tool from siblings like ruddur_update_coupon and ruddur_list_coupons. It leaves no ambiguity about what operation is performed.

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?

No explicit alternatives are mentioned, but the create action and the prerequisite 'Requires scope: marketplace.manage' give implied usage context. It lacks guidance on when to use this instead of update or list, so it does not fully address when/not/alternatives.

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

ruddur_create_headingA

Create or import a creator-owned Heading. Omit assessmentConfig for ordinary waypoints; include it only for explicit assessment-style waypoints. The MCP server maps creatorAssessmentConfig to assessmentConfig when provided. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already indicate a write operation, but the description adds meaningful context: the required scope (content.manage), the mapping from creatorAssessmentConfig to assessmentConfig, and the flexible top-level field passing. It does not disclose return values or side effects.

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?

Three sentences with no filler; the first sentence states purpose and the following sentences add actionable details. Front-loaded and efficient.

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

Completeness2/5

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

No output schema, nested objects present, and the description leaves the Heading/Waypoint relationship ambiguous. It does not explain return payload, required fields, or how 'import' differs from 'create.' This is a significant gap for a create/import tool with a permissive schema.

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 description coverage is 100%, so baseline is 3. The description adds the creatorAssessmentConfig→assessmentConfig mapping and clarifies assessmentConfig usage, which goes slightly beyond the schema. It does not enumerate specific Heading fields beyond what schema's body description already provides.

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?

Description states 'Create or import a creator-owned Heading' – a specific verb+resource with ownership scope. However, referencing 'ordinary waypoints' confuses the relationship between Headings and Waypoints, and it does not clearly distinguish this from ruddur_create_waypoint or ruddur_import_headings.

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

Usage Guidelines2/5

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

No explicit when-to-use or alternative guidance. The 'Omit assessmentConfig...' sentence provides conditional configuration advice but not tool selection context. 'Requires scope: content.manage' is a permission requirement, not usage guidance relative to siblings.

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

ruddur_create_heading_snapshotB

Create a named Heading snapshot. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate this is a write operation (readOnlyHint=false). The description adds the auth scope requirement, which is useful context beyond annotations. However, it does not disclose other behavioral traits such as whether snapshots overwrite existing names, side effects, or return behavior.

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?

The description is a single sentence plus a scope note. Every word earns its place, with no redundancy or filler.

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

Completeness2/5

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

The tool has no output schema, so the description should explain return values or expected outcome, but it does not. It also fails to clarify what a 'Heading snapshot' is, what data it captures, or what required parameters (beyond id) are needed. The schema is generic and not tailored to snapshots, leaving significant gaps for a user to infer.

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 100%, so the baseline is 3. The description does not add parameter-specific details; it only mentions 'named' but does not map that to a schema property. The generic body/query/pathParams descriptions carry the burden, and the description does not compensate for snapshot-specific semantics.

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 clearly states 'Create a named Heading snapshot' with a specific verb and resource. It distinguishes from siblings like ruddur_create_heading (creates a heading, not a snapshot) and ruddur_restore_heading_snapshot (restores, not creates).

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

Usage Guidelines2/5

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

The description provides only a scope requirement ('Requires scope: content.manage') but gives no guidance on when to use this tool versus alternatives. It does not mention any exclusions or contexts where snapshot creation is appropriate.

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

ruddur_create_heading_templateA

Create a reusable template from a Heading. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

A3.9/5.0
Behavior3/5

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

While annotations already indicate this is not read-only, the description adds the permission requirement, which is useful. It does not disclose whether the original heading is modified or what happens to the template, but the annotations cover the safety profile adequately.

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?

The description is extremely concise—two sentences that get straight to the point. No filler or redundancy.

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

Completeness3/5

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

Given the generic body schema (object/array/string) and lack of output schema, the description is minimal but not wholly inadequate. It does not explain what constitutes a valid template body, relying on the open-world hint for flexibility. Combined with the schema, it is acceptable but could be more helpful.

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 coverage is 100% (pathParams, body, and query all have descriptions). The description does not add parameter-specific meaning beyond what the schema provides, but the phrase 'from a Heading' implies the id refers to a heading, matching the schema's path parameter.

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 clearly states the action ('Create') and the resource ('a reusable template from a Heading'). This directly distinguishes it from sibling tools like ruddur_apply_heading_template and ruddur_list_heading_templates.

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

Usage Guidelines4/5

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

It provides clear context for when to use this tool (to create a reusable template from a heading) and includes a permission prerequisite ('Requires scope: content.manage'). However, it does not explicitly name alternatives or exclusions, which would make it a 5.

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

ruddur_create_marketplace_listingA

Create a marketplace listing. The MCP server accepts natural marketplace payloads, including marketplace details, title/name aliases, comma-separated tags, lowercase status/currency, and top-level waypoints converted into a heading payload. Ordinary waypoints should not include assessmentConfig. Keep marketplace descriptions outcome-focused and buyer-facing. Do not add question-format, free-text, PII/data-handling, or generic educational/non-diagnostic boilerplate unless explicitly requested or specifically required; place necessary disclosures in a dedicated assessment introduction, help, or consent surface when available. Requires scope: marketplace.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A4.4/5.0
Behavior4/5

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

The description goes beyond annotations by explaining server-side behavior: natural payload processing, top-level waypoint conversion, and assessmentConfig restrictions. It also states the required auth scope. It does not cover return values or errors, but annotations already flag the write nature.

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?

The description is front-loaded with the core action and then provides dense, purposeful constraints. Every sentence carries useful information, though the content-policy sentences form a long run-on that could be slightly more structured.

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?

For a create tool with no output schema and only two parameters, the description covers invocation essentials: payload handling, content restrictions, and required scope. It does not describe the response format, but that is not strictly necessary given the schema and annotations.

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

Parameters5/5

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

Although the schema already describes the body/query parameters, the description adds crucial semantic guidance: natural fields can be passed top-level, tags are comma-separated, status/currency are lowercase, and assessmentConfig is only for assessment waypoints. This is valuable beyond the generic schema.

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 opens with 'Create a marketplace listing,' which clearly identifies the action and resource. The name and sibling context (update/delete/list listings) make the tool's purpose distinct without ambiguity.

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

Usage Guidelines4/5

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

It provides explicit usage context: the required scope, accepted payload conventions, and content policy. It implies this is for creating new listings, but does not explicitly contrast with alternative sibling tools like update_marketplace_listing.

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

ruddur_create_media_transformB

Create or register a media transform. The MCP server accepts media aliases such as title/name, mimeType/contentType, size/fileSize, and heading/waypoint/listing identifiers. Requires scope: media.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate create semantics (readOnlyHint false, openWorldHint true). The description adds the required scope 'media.manage' and the alias acceptance behavior, which is useful context beyond annotations. However, it does not disclose side effects, return behavior, or what happens with duplicates, and it does not contradict annotations.

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?

Two concise sentences with no filler. The first sentence states the primary purpose, and the second provides essential alias and scope information. Information is front-loaded and every sentence earns its place.

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

Completeness3/5

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

The tool has a flexible body schema and no output schema, so the description carries significant responsibility. It covers scope and aliases, but omits any explanation of what a media transform is, how it differs from a media upload, or what the return value looks like. The schema and annotations fill some gaps, but the overall definition leaves questions for an agent.

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. The description adds meaningful information about accepted media aliases (title/name, mimeType/contentType, size/fileSize, identifiers), which helps an agent understand how to construct the body beyond the generic schema. This extra guidance brings it above baseline.

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?

The description clearly states the action 'Create or register' and the resource 'media transform', which is distinct from siblings like ruddur_create_media_upload or ruddur_create_heading. However, it does not explicitly differentiate from other media tools or define what a media transform is, so it misses the highest mark.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. It only states the required scope, but does not mention situations where this tool is appropriate or when to prefer another tool (e.g., upload vs transform).

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

ruddur_create_media_uploadA

Create a presigned creator-media upload. The MCP server accepts media aliases such as title/name, mimeType/contentType, size/fileSize, and heading/waypoint/listing identifiers. Requires scope: media.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A4.2/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations by revealing a required OAuth scope (media.manage) and explaining that the server accepts common media aliases. It aligns with annotations (readOnlyHint false, destructiveHint false) and does not contradict them. It omits details like response format or URL expiration, but with annotations present the additional scope and alias behavior add meaningful transparency.

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?

The description is two short sentences: the first states the action and object, the second covers aliases and permission requirement. Every sentence earns its place, and the most important information is front-loaded. There is no fluff or redundant restatement of the tool name.

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?

For a create operation with an open-world body and no output schema, the description covers purpose, input aliases, and the required scope, which is enough for basic selection and invocation. It does not explicitly state what the tool returns (e.g., the presigned URL or an upload ID), but the tool name and presigned-upload phrasing make the workflow reasonably clear. Given the open schema and sibling context, the description is sufficiently complete.

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?

Although the schema already describes body and query parameters, the tool description adds media-specific aliases (title/name, mimeType/contentType, size/fileSize, heading/waypoint/listing identifiers), which are not present in the schema. This significantly enhances understanding of how to construct the body. The generic body description is supplemented by this alias mapping, giving the description added value beyond the schema.

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 uses a specific verb-plus-resource construction, 'Create a presigned creator-media upload,' which clearly states the tool's action and object. This distinguishes it from sibling media tools like list_media_assets, update_media_asset, and attach_media_asset. The mention of media aliases further clarifies the tool's exact purpose.

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?

The description gives clear context by specifying the tool creates a presigned creator-media upload and requires the media.manage scope. However, it does not explicitly state when to use this tool instead of alternatives, nor does it mention exclusions or conditions where a different tool/approach should be used. The uniqueness of the tool among siblings makes the use case inferable, but the guidance is not explicit.

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

ruddur_create_waypointA

Create a creator-owned Waypoint. Omit assessmentConfig for ordinary waypoints; include it only for explicit assessment-style waypoints. The MCP server maps creatorAssessmentConfig to assessmentConfig when provided. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=false and destructiveHint=false. The description adds valuable context: the scope requirement, the creatorAssessmentConfig→assessmentConfig mapping, and the flexible body handling (top-level fields or wrapped). It doesn't describe return/error behavior, but the additions go beyond what annotations provide.

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?

Three concise sentences, each carrying distinct information: purpose, assessmentConfig condition, and server mapping plus scope. No redundancy or filler.

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?

For a create tool with a complex body and no output schema, the description covers the core action, special-case behavior, permission requirement, and body conventions. It omits response/return details, but that isn't explicitly required here; a brief note on return value would have pushed it to a 5.

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 100% and both 'body' and 'query' have thorough descriptions. The tool description only mentions assessmentConfig, which is already covered in the schema, so it adds little beyond the structured fields. Baseline 3 is appropriate.

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?

Clear verb+resource: 'Create a creator-owned Waypoint.' It differentiates from sibling create tools (create_heading, create_heading_snapshot) by targeting Waypoint specifically, and 'creator-owned' adds useful specificity.

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

Usage Guidelines4/5

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

Provides conditional guidance: omit assessmentConfig for ordinary waypoints, include it only for assessment-style. Also notes the server's mapping of creatorAssessmentConfig and the content.manage scope requirement. It doesn't explicitly compare to alternatives, but the create action and resource type make when-to-use clear.

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

ruddur_create_waypoint_noteA

Create a note on a Heading Waypoint. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id, waypointId.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint false, destructiveHint false, idempotentHint false, and openWorldHint true. The description adds the scope requirement (content.manage) and clarifies the resource relationship (note-on-waypoint), which are useful behavioral details beyond the annotations. It does not contradict any annotations.

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?

Two concise sentences: first states purpose, second states authorization. No redundant or filler content. The description is well-structured and immediately front-loaded with the core action.

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?

The description, combined with a strongly self-documenting schema and clear siblings, is sufficient for an agent to understand what the tool does and how to invoke it. It lacks an explicit statement of return behavior, but that is often assumed for create operations and no output schema exists.

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?

The schema has 100% description coverage: 'body' is thoroughly explained (including how to pass Ruddur fields and when to use assessmentConfig), and 'pathParams' lists parameters. The tool description itself adds no additional parameter semantics, so the baseline of 3 applies.

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 ('Create') and resource ('a note on a Heading Waypoint'), clearly distinguishing it from sibling tools like ruddur_list_waypoint_notes, ruddur_update_waypoint_note, and ruddur_delete_waypoint_note. It precisely identifies the action and the target entity.

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

Usage Guidelines4/5

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

The description gives clear context: creating a note on a heading waypoint, and states a required scope ('content.manage'). It doesn't explicitly mention alternatives or when not to use it, but the action is distinct enough among siblings that the usage is implied.

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

ruddur_delete_headingA
DestructiveIdempotent

Delete a creator-owned Heading. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
confirmYesMust be true after the user has explicitly confirmed this sensitive action.
pathParamsYesPath parameters: id.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false. The description adds useful behavioral context by specifying the auth scope and the 'creator-owned' restriction, which are not captured in annotations. It does not detail irreversibility or downstream effects, but the annotation coverage lowers the burden.

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?

The description is a single, front-loaded sentence with no filler. However, the double space in 'Requires scope' is a minor typo, and the extreme brevity leaves some useful detail out.

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

Completeness2/5

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

This is a destructive, confirmation-gated delete with optional body/query parameters, but the description does not mention the confirmation requirement, return behavior, or how body/query relate to deletion. With no output schema and many sibling tools, this one-sentence description is insufficient.

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 100%, with descriptions for pathParams, confirm, body, and query. The tool description itself adds no parameter-level meaning, so the baseline of 3 applies per the rubric.

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 clearly states 'Delete a creator-owned Heading', combining a specific verb with the resource. This distinguishes it from sibling tools like create, update, get, and list operations. The 'creator-owned' qualifier adds precise scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any exclusions. The mention of 'Requires scope: content.manage' is an authorization prerequisite rather than usage direction. Usage context is only implied by the tool's name and description.

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

ruddur_delete_marketplace_listingA
DestructiveIdempotent

Delete a marketplace listing. Requires scope: marketplace.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
confirmYesMust be true after the user has explicitly confirmed this sensitive action.
pathParamsYesPath parameters: id.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds the required OAuth scope 'marketplace.manage', which is not present in structured data, and the delete action is consistent with the destructive hint.

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?

The description is a single sentence with one key behavioral note (scope), containing no redundant information. It is front-loaded with the primary action.

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

Completeness3/5

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

For a delete operation with one required identifier and confirmation flag, the description is minimal but lacks any warning about side effects (e.g., related licenses/coupons). The output schema is absent, so return behavior is not described; however, the tool's simplicity may not demand more.

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?

The input schema already provides descriptions for all four parameters (pathParams, body, query, confirm), with confirm behavior clearly specified. The tool description does not add further parameter semantics beyond what the schema states.

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 uses the specific verb 'Delete' with the resource 'marketplace listing', clearly identifying the operation. It distinguishes from sibling tools like ruddur_update_marketplace_listing or ruddur_list_my_marketplace_listings.

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?

It does not explicitly state when to use this tool versus alternatives, though the delete verb implies the use case. It does include a prerequisite (scope: marketplace.manage) but no exclusions or alternative recommendations.

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

ruddur_delete_media_assetA
DestructiveIdempotent

Delete a creator media asset. Requires scope: media.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
confirmYesMust be true after the user has explicitly confirmed this sensitive action.
pathParamsYesPath parameters: id.

TDQS

A4.1/5.0
Behavior4/5

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

The description adds the authorization requirement ('Requires scope: media.manage') which is not present in the annotations. It also confirms the destructive nature, consistent with destructiveHint=true and readOnlyHint=false. No contradictions found, and it provides useful context beyond structured data.

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?

The description is extremely concise (two short sentences) and immediately states the purpose and a key requirement. No wasted words, and it front-loads the essential action.

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

Completeness3/5

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

While the description is clear for a basic delete operation, it lacks context about effects (e.g., whether deletion removes attachments, if it's reversible, or what happens to associated data). Given the destructive nature and the existence of a sibling 'detach' operation, a brief clarification of the difference would improve completeness. However, annotations and schema partially cover the behavioral context.

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?

The input schema covers all parameters with descriptions, so baseline is 3. The tool description itself does not add parameter-specific semantics beyond what the schema already provides, but it also doesn't need to because coverage is 100%.

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 clearly states the action ('Delete') and the resource ('creator media asset'), which exactly matches the tool name and distinguishes it from sibling operations like update, list, attach, and detach. It also specifies a required scope, adding precision.

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

Usage Guidelines4/5

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

The description implies the tool should be used when deleting a creator media asset and notes the required scope. It does not explicitly mention alternatives (e.g., detach_media_asset for removing association rather than deletion), but the clear purpose provides sufficient context for a delete operation.

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

ruddur_delete_waypointA
DestructiveIdempotent

Delete a creator-owned Waypoint. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
confirmYesMust be true after the user has explicitly confirmed this sensitive action.
pathParamsYesPath parameters: id.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description doesn't need to restate that. It adds valuable context by requiring the 'content.manage' scope and limiting deletion to creator-owned items, which are behavioral prerequisites not captured in the annotations.

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 concise sentence communicates the action, the ownership constraint, and the required scope. Every word earns its place; there is no fluff or repetition of schema details.

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

Completeness3/5

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

The description covers the core action and an important auth requirement, but it leaves 'creator-owned' undefined and does not mention that a confirm=true parameter is required (which is a key safety behavior, though present in the schema). With no output schema and limited behavioral detail beyond annotations, it feels minimally adequate but not rich.

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?

All four parameters (body, query, confirm, pathParams) are fully described in the schema with high coverage. The description adds nothing about parameter usage, but since the schema carries the weight, a baseline score of 3 is appropriate.

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 uses a specific verb-resource pair ('Delete a creator-owned Waypoint') that clearly states the action and the target. The qualifier 'creator-owned' distinguishes this from sibling tools like ruddur_delete_heading or ruddur_delete_waypoint_note, making the purpose unambiguous.

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?

The description implies the tool is for deleting creator-owned Waypoints, but it does not explicitly state when to use it versus alternatives, nor does it provide exclusions or point to a non-creator-owned path. The ownership requirement is a usage condition, but guidance on when not to use is missing.

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

ruddur_delete_waypoint_noteA
DestructiveIdempotent

Delete a Waypoint note. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
confirmYesMust be true after the user has explicitly confirmed this sensitive action.
pathParamsYesPath parameters: noteId.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds the specific authorization scope (content.manage) beyond what annotations provide, which is useful. However, it does not mention irreversibility or other behavioral nuances, though the annotations cover the core safety profile.

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?

The description is extremely concise, with the primary action front-loaded and the critical scope requirement immediately following. Every word contributes value, with no redundancy or filler.

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

Completeness3/5

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

The schema and annotations provide essential details such as the confirm flag and destructive nature. However, the description does not mention behavior when the note does not exist, whether deletion is permanent, or the expected response. For a simple delete operation, these gaps are moderate, but a brief note about outcome would improve completeness.

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?

The schema descriptions cover all top-level parameters (100% coverage), including a detailed explanation of the confirm parameter. The tool description itself adds no parameter-specific information, but the schema handles this responsibility adequately. The nested noteId lacks a description but is self-explanatory.

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 clearly states the action (Delete) and specific resource (Waypoint note), distinguishing it from sibling delete tools like ruddur_delete_waypoint and ruddur_delete_heading. It also includes the required scope, making the purpose unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It only mentions the permission requirement, but does not explain context, prerequisites, or cases where another delete tool would be more appropriate.

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

ruddur_delete_waypoint_placementA
DestructiveIdempotent

Delete a Waypoint placement. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
confirmYesMust be true after the user has explicitly confirmed this sensitive action.
pathParamsYesPath parameters: placementId.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds the required content.manage scope, which is valuable context not in annotations. However, it does not explain what 'deleting a placement' entails (e.g., whether the waypoint is also deleted, reversibility, or side effects).

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?

The description is two short sentences with no redundant wording. It states the action and a key requirement, making every word earn its place.

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

Completeness3/5

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

The presence of a body parameter on a delete operation is not clarified by the description, nor is the return value explained (no output schema). The description also doesn't differentiate from delete_waypoint. However, the schema is rich, so the tool is not severely underspecified.

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 100%, with detailed explanations for pathParams, confirm, and body. The description itself adds no parameter details, but the schema carries the full burden, so a baseline of 3 is appropriate.

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 clearly states 'Delete a Waypoint placement' with a specific verb and resource. It distinguishes from sibling tools like delete_waypoint by targeting the placement rather than the waypoint itself.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus delete_waypoint or update_waypoint_placement. The only additional note is the scope requirement, but there are no alternatives or exclusions mentioned.

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

ruddur_detach_media_assetA

Detach a media asset from Ruddur content. The MCP server accepts media aliases such as title/name, mimeType/contentType, size/fileSize, and heading/waypoint/listing identifiers. Requires scope: media.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
confirmYesMust be true after the user has explicitly confirmed this sensitive action.
pathParamsYesPath parameters: id.

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations, the description discloses that the server accepts media aliases (title/name, mimeType/contentType, etc.) and requires the media.manage scope. It does not contradict the annotations, and the added authorization and alias behavior are useful for correct invocation.

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?

The description is two sentences with no fluff. The first sentence states the action, the second provides alias behavior and scope requirements. Every clause adds distinct, non-redundant information.

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?

For a tool with no output schema and moderate annotations, the description covers the core action, alias flexibility, and required scope. It is slightly light on what happens after detach and how to choose between detach/delete, but the schema and sibling tool names fill most remaining gaps.

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?

Since the schema already documents all four parameters with descriptions, the baseline is 3. The description enhances this by explaining that natural Ruddur fields and aliases can be used, helping the agent know what to pass in body or path parameters despite the generic schema.

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 opens with a specific verb and resource: 'Detach a media asset from Ruddur content.' This clearly distinguishes the tool from sibling tools like attach_media_asset and delete_media_asset, and the alias/scope details reinforce the purpose.

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?

The description implies usage through the verb 'detach' and adds a scope requirement, but it does not explicitly state when to use this tool versus delete_media_asset or attach_media_asset. There is no mention of alternatives or exclusions, so guidance is mostly inferred.

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

ruddur_export_headingA
Read-onlyIdempotent

Export a Heading as JSON. Requires scope: content.read.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the required 'content.read' scope, which is valuable auth context beyond what annotations provide. It does not describe return format details, but the 'as JSON' clause partially covers that.

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?

The description is a single, front-loaded sentence that conveys the core purpose and a key prerequisite without any filler. Every word earns its place.

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

Completeness3/5

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

The description is adequate for a simple read-only export tool, but given the large sibling set, it fails to clarify how export_heading differs from get_heading. It also does not state any return structure beyond 'JSON', leaving some ambiguity for an agent selecting among many similar tools.

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 100%, with all three parameters described in the schema. The tool description adds no additional parameter semantics, so the baseline of 3 applies.

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?

The description clearly states the action ('Export') and resource ('Heading'), with a specific output format ('as JSON'). However, it does not distinguish this tool from the sibling ruddur_get_heading, which likely also returns heading data in a similar format.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like ruddur_get_heading, ruddur_list_headings, or ruddur_search_headings. The only additional information is an auth scope, which is a prerequisite, not a usage selector.

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

ruddur_get_creator_analyticsA
Read-onlyIdempotent

Get creator analytics summary. Requires scope: analytics.read.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the requirement of the analytics.read scope, which is valuable behavioral context beyond the annotations and consistent with the read-only nature.

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?

The description is two sentences: one specifying the action and one stating the required scope. Every word earns its place with no redundancy or filler.

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

Completeness3/5

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

Without an output schema, the description should explain what the analytics summary contains, but it does not. Additionally, the odd body parameter description for a GET operation creates potential confusion, and the description provides no clarification on how to invoke the 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 100% with body and query both documented, so the baseline is 3. The description adds no parameter-specific meaning, and the body parameter's description mentions POST/PUT/PATCH operations, which is oddly generic for a GET tool, but the description does not clarify this.

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?

The description 'Get creator analytics summary' uses a specific verb and resource, clearly distinguishing it from sibling tools like get_creator_billing and get_creator_profile. However, 'summary' is vague about what analytics data is included, so it stops short of a 5.

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

Usage Guidelines2/5

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

The only guidance is the scope requirement 'Requires scope: analytics.read', which is a prerequisite but not about when to use this tool versus alternatives. There is no mention of alternatives or context for when this should be invoked.

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

ruddur_get_creator_billingB
Read-onlyIdempotent

Get creator billing summary. Requires scope: billing.read.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

B3.3/5.0
Behavior3/5

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

The description adds the required scope 'billing.read', which is valuable context beyond the annotations. Since readOnlyHint=true and destructiveHint=false already indicate a safe read operation, the description's contribution is modest but not contradictory.

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?

The description is a single, focused sentence with no filler or redundancy. It communicates the core purpose and a key prerequisite efficiently.

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

Completeness3/5

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

For a simple getter with no required parameters and good annotations, the description is minimally sufficient. However, it does not clarify what the billing summary contains, which creator it refers to, or how to use optional query/body parameters. The absence of an output schema increases the need for such context.

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?

The input schema has descriptions for both 'body' and 'query', achieving 100% coverage. However, the descriptions are generic (e.g., mentioning POST/PUT/PATCH) and not tailored to this getter tool. The tool description itself provides no additional parameter meaning, so a baseline score of 3 is appropriate.

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?

The description clearly states the action ('Get') and resource ('creator billing summary'), distinguishing it from sibling tools like analytics or profile getters. It is more specific than a tautology, though it could benefit from elaborating what the summary includes.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives such as ruddur_get_creator_analytics or ruddur_get_creator_profile. The only additional information is the required OAuth scope, which is a prerequisite, not a usage guideline.

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

ruddur_get_creator_profileA
Read-onlyIdempotent

Get the authenticated creator profile. Requires one of scope: marketplace.read, marketplace.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark this as readOnly, idempotent, and non-destructive. The description adds valuable auth context by stating the required scopes, which goes beyond the annotations to inform the agent of prerequisites.

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?

The description is a single, front-loaded sentence that states the purpose and a key requirement. Every word earns its place, with no unnecessary information.

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?

For a simple read-only profile retrieval, the description plus annotations provide adequate context. It covers purpose and auth needs, and no output schema exists. A minor gap is the lack of clarity about the unrelated body parameter, but this doesn't severely undermine completeness.

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

Parameters2/5

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

Although schema description coverage is 100%, the parameter descriptions are generic and not tailored to this tool. The body parameter mentions POST/PUT/PATCH operations, which is misleading for a GET operation, and the query parameter is vague. The tool description does not clarify that no body is needed or explain any specific query parameters.

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 clearly states 'Get the authenticated creator profile' with a specific verb and resource. It distinguishes itself from the sibling 'ruddur_update_creator_profile' and other getter tools like analytics or billing.

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

Usage Guidelines4/5

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

The description clearly implies when to use: when you need the authenticated creator's own profile. It also notes required scopes, but it doesn't explicitly mention when not to use or cite alternatives; the context is sufficiently clear.

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

ruddur_get_headingA
Read-onlyIdempotent

Get a creator-owned Heading by id. Requires scope: content.read.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare the tool is read-only, idempotent, and non-destructive. The description adds the authorization requirement (scope: content.read) and the 'creator-owned' restriction, which is useful context. However, it does not disclose behaviors like error responses, whether archived headings are included, or the exact return format, keeping this at a baseline acceptable level given the annotations.

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?

The description is a single, front-loaded sentence. Every word adds value—verb, resource, ownership scope, and auth scope. No wasted language.

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?

For a simple get-by-id tool, the description is nearly complete. It names the resource and required scope. While there is no output schema or explicit return-value description, the tool name and 'Get' imply the return of a Heading object. Minor missing details about error handling or response shape prevent a perfect score.

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 coverage is 100%, so the schema already describes all parameters. The description merely restates 'by id' without adding syntax, formats, or edge cases. This matches the baseline expectation for high schema coverage.

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 clearly states the tool's function with a specific verb ('Get'), resource ('Heading'), and scope ('creator-owned', 'by id'). This distinguishes it from siblings like list_headings (multiple) and search_headings (search criteria).

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

Usage Guidelines4/5

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

The description clearly implies the tool is for retrieving a single heading by its ID. It mentions the required scope (content.read), which is a prerequisite. However, it does not explicitly state when to prefer this over list/search or provide exclusionary guidance, though the 'by id' phrasing makes the intended use obvious.

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

ruddur_get_marketplace_licenseB
Read-onlyIdempotent

Get creator license details for a purchase. Requires one of scope: marketplace.entitlements, marketplace.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: purchaseId.

TDQS

B3.3/5.0
Behavior3/5

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

The description adds a behavioral trait—the required authorization scopes—which is not covered by the annotations. Since annotations already declare readOnlyHint and idempotentHint, there is no contradiction. The addition is useful but does not detail return shape or other side effects.

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?

The description is a single, front-loaded sentence that efficiently states the purpose and a key requirement without any redundancy or filler.

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

Completeness3/5

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

For a simple read-only get operation with one required path parameter, the description covers purpose and required scopes. However, with no output schema, it does not clarify what comes back in the license details, and it lacks guidance on when to choose this tool over related marketplace tools.

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?

The input schema already provides descriptions for all three parameters (body, query, pathParams) and confirms the required purchaseId. The description does not add meaningful parameter semantics beyond what the schema already conveys, so a baseline score is appropriate.

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?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('creator license details for a purchase'). However, it does not explicitly distinguish itself from sibling tools like verify_entitlement, so it misses the top score.

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

Usage Guidelines2/5

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

The description only mentions required scopes ('Requires one of scope: marketplace.entitlements, marketplace.manage') but gives no guidance on when to prefer this tool over alternatives, nor any exclusions or situational context. This is minimal usage guidance.

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

ruddur_import_headingsA

Import one or more Headings from JSON. Omit assessmentConfig for ordinary waypoints; include it only for explicit assessment-style waypoints. The MCP server maps creatorAssessmentConfig to assessmentConfig when provided. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A4.4/5.0
Behavior4/5

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

Adds valuable behavioral context beyond annotations: the mapping of creatorAssessmentConfig to assessmentConfig, the scope requirement, and the conditional inclusion of assessmentConfig for assessment-style waypoints. No contradiction with annotations.

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?

Three concise, front-loaded sentences deliver the core purpose, conditional logic, and scope requirement with zero filler. Every sentence earns its place.

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?

For an import tool with detailed schema and annotations, the description covers purpose, prerequisites, and special cases. It lacks explicit mention of return values, but the absence of an output schema and the presence of rich annotations make this acceptable.

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?

The schema already covers parameters at 100%, but the description further clarifies parameter usage by explaining the creatorAssessmentConfig mapping and when to omit assessmentConfig, enriching the schema's existing guidance.

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 clearly states 'Import one or more Headings from JSON' with a specific verb, resource, and source format. It distinguishes this from sibling tools like create_heading, update_heading, and list_headings by focusing on bulk import from JSON payloads.

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

Usage Guidelines4/5

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

Provides an explicit scope prerequisite ('Requires scope: content.manage') and clear conditional guidance on when to include assessmentConfig vs omit it for ordinary waypoints. It doesn't explicitly name alternative tools, but the context of import vs create/update is implicit.

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

ruddur_list_couponsB
Read-onlyIdempotent

List creator marketplace coupons. Requires one of scope: marketplace.read, marketplace.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive. The description adds the scope requirement, which is an authentication behavior not covered by annotations. However, it does not describe pagination, filtering, or response format, so it adds limited behavioral context beyond annotations.

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?

The description is two short sentences, front-loaded with the purpose, and every word adds value. There is no redundancy or unnecessary detail.

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

Completeness2/5

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

Given the generic schema (only body/query) and no output schema, the description is too sparse. It does not explain what query parameters or body fields mean for this specific tool, nor what the response will look like. The only concrete context is the purpose and scope requirement, leaving the agent uncertain about how to invoke the tool correctly.

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

Parameters2/5

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

The schema has generic 'body' and 'query' parameters with 100% description coverage, but these descriptions are generic to all tools and not specific to coupons. The tool description adds no parameter meaning. Furthermore, the body schema mentions POST/PUT/PATCH operations, which is inconsistent with the read-only nature of a list tool, undermining clarity.

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 'List creator marketplace coupons' clearly states a specific verb (List) and resource (creator marketplace coupons). It also specifies required scopes, which adds clarity. This distinguishes it from sibling tools like ruddur_create_coupon and ruddur_update_coupon.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It only mentions required scopes, which is a prerequisite rather than usage guidance. There is no mention of alternative tools or conditions under which this list operation is preferred.

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

ruddur_list_heading_collaboratorsA
Read-onlyIdempotent

List collaborators on a Heading. Requires scope: content.read.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, non-destructive, and idempotent behavior. The description adds the authentication requirement (scope: content.read), which is a relevant behavioral detail. It does not describe return format, but the strong annotations lower the bar.

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?

The description is a single sentence that front-loads the action and includes the key prerequisite. There is no wasted wording.

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?

For a straightforward list tool with strong annotations, the description covers purpose and auth. Without an output schema, it could mention the return shape or pagination, but the core intent is clear enough for an agent to use it correctly.

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 100% but consists of generic boilerplate reused across tools. The description implies the 'id' path parameter refers to a Heading, adding some meaning, but it does not clarify whether body or query parameters are applicable for this read operation.

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 clearly states the action ('List') and the resource ('collaborators on a Heading'), which distinguishes it from sibling tools like ruddur_list_headings or ruddur_add_heading_collaborator. The scope requirement adds useful specificity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description mentions a required auth scope but gives no context on how this listing differs from related collaborator operations or when it should be preferred.

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

ruddur_list_headingsA
Read-onlyIdempotent

List creator-owned Headings. Requires scope: content.read.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the required OAuth scope and the creator-owned scoping constraint, but does not disclose return format or pagination behavior, leaving some behavioral aspects unaddressed.

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?

Two short sentences convey the essential information: the tool's action and a required authorization scope. There is no redundant wording, and the minor double-space typo does not detract from the clarity.

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

Completeness3/5

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

As a list operation with no output schema, the description would benefit from mentioning what fields are returned or pagination support. The generic body/query schema suggests flexibility but does not explain tool-specific behavior, leaving moderate gaps for a list 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?

The input schema has 100% coverage with descriptions for both parameters, including generic body and query fields. The tool description adds no parameter-specific meaning beyond the schema, so the schema carries the full burden and the baseline of 3 applies.

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?

The description clearly states the tool lists creator-owned Headings, using a specific verb and resource with a scope qualifier. The 'creator-owned' phrase implicitly distinguishes it from broader search or single-get operations, but it does not explicitly name a sibling alternative.

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?

The description implies use for listing headings owned by the creator, but offers no explicit guidance on when to prefer this over ruddur_search_headings or when not to use it. The required scope 'content.read' is a prerequisite, not a usage guideline, so only clear context without exclusions is provided.

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

ruddur_list_heading_snapshotsA
Read-onlyIdempotent

List snapshots for a Heading. Requires scope: content.read.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare the tool as readOnly, idempotent, and non-destructive. The description adds the auth requirement ('Requires scope: content.read'), which is valuable context beyond the annotations. It does not describe pagination or return format, but the bar is lower given the annotations.

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?

The description is a single sentence with the key information front-loaded: what the tool does and what auth scope is required. Every word contributes meaning, with no redundant or vague phrasing.

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?

The tool is a simple list operation with a single required parameter and rich annotations covering safety. The description clearly states the resource and scope, and while it omits details like pagination or output structure, the tool's simplicity and name make it sufficiently complete for an agent to invoke correctly.

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?

The input schema provides descriptions for all parameters, including the required path parameter 'id' for the heading. The description's phrase 'for a Heading' adds no additional meaning beyond what the schema already states, so it meets the baseline for high schema coverage.

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 uses a specific verb ('List') and resource ('snapshots for a Heading'), clearly distinguishing it from sibling tools like ruddur_list_headings. It also adds the required scope, making the tool's purpose unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context: use this tool to list snapshots for a specific heading, identified by the path parameter. It does not mention alternatives or exclusions, but the purpose is straightforward and the required scope is stated, giving sufficient guidance for a simple read operation.

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

ruddur_list_heading_templatesA
Read-onlyIdempotent

List creator Heading templates. Requires scope: content.read.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the specific scope requirement (content.read), which is useful context beyond annotations. It does not describe return format or pagination, but with strong annotations this is acceptable.

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?

The description is two short sentences with the purpose front-loaded and the scope requirement included. Every word earns its place; there is no redundancy or filler.

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?

This is a simple list operation with rich annotations (read-only, idempotent, open-world) and no output schema. The description covers the essential purpose and auth requirement. It does not mention pagination or output details, but given the simplicity and annotations, it is sufficiently complete.

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 100% for both parameters (body and query), so the baseline is 3. The descriptions are generic (body talks about POST/PUT/PATCH, query is generic), and the tool description adds no specific param semantics. Thus, it meets the baseline but does not exceed it.

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 clearly states the action ('List') and the resource ('creator Heading templates'), which is specific and distinguishes it from sibling tools like ruddur_list_headings that list headings rather than templates. The scope requirement also adds specificity.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as ruddur_list_headings or ruddur_apply_heading_template. It only mentions the required scope, which is a prerequisite rather than a usage guideline.

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

ruddur_list_media_assetsA
Read-onlyIdempotent

List creator media assets. Requires scope: media.read.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds the OAuth scope requirement ('media.read'), which is useful behavioral context, but it does not mention pagination, filtering, or potential large result sets despite openWorldHint=true.

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?

Two short sentences with no verbose padding. The first sentence states the action clearly and the second provides the auth requirement. Every word earns its place.

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

Completeness3/5

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

For a simple list operation with no output schema, the description lacks essential context about return shape, pagination, or filtering. The openWorldHint suggests broad results, but no mention is made of how to constrain the query. With zero required parameters, the agent has little to go on beyond the generic schema.

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 100%, but the 'body' and 'query' descriptions are generic framework-level text unrelated to media assets. The tool description provides no additional parameter semantics, so the agent cannot infer what query parameters (e.g., limit, offset, type) are meaningful for listing media assets. Baseline 3 is appropriate because the schema technically describes the parameters, but they add little specific value.

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 uses a specific verb and resource ('List creator media assets') that clearly identifies the operation and distinguishes it from siblings like ruddur_create_media_upload or ruddur_delete_media_asset. The scope requirement is a useful addition that further clarifies the tool's role.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives such as ruddur_list_waypoints or ruddur_list_headings. There are no mentions of filtering, pagination, or typical use cases, leaving the agent without context for selection.

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

ruddur_list_my_marketplace_listingsB
Read-onlyIdempotent

List marketplace listings owned by the creator. Requires one of scope: marketplace.read, marketplace.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds useful context about the required OAuth scope (marketplace.read or marketplace.manage) and the ownership filter (owned by the creator), going beyond the structured annotations without contradicting them.

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, front-loaded sentence that states the core purpose and auth requirement. No filler or redundant information – every word earns its place.

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

Completeness3/5

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

The tool has no output schema, and the description gives no hints about pagination, filtering, or return structure. While annotations cover safety well, the unresolved body/query parameter semantics and lack of usage detail leave gaps for a list operation.

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

Parameters1/5

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

The schema descriptions are generic boilerplate: 'body' describes POST/PUT/PATCH operations, which is misleading for a list operation, and 'query' offers no specifics. The description itself does not clarify what body/query mean for this tool. The agent receives no actionable parameter semantics.

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?

Clearly states the tool lists marketplace listings owned by the creator, using a specific verb and resource. This distinguishes it from sibling tools like create/update/delete marketplace listings and other list tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The only added information is an authorization scope requirement, not usage context. It does not mention when to prefer this over other listing tools or how it differs from search-like tools.

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

ruddur_list_waypoint_notesA
Read-onlyIdempotent

List notes on a Heading Waypoint. Requires scope: content.read.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id, waypointId.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds value by mentioning the content.read scope requirement, which is not in annotations. However, it does not disclose other behaviors like pagination, ordering, or what happens if no notes exist. Given the annotations already provide the core safety information, a 3 is appropriate.

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?

The description is two concise sentences, front-loaded with the core purpose. The scope requirement is stated briefly without extra fluff. Every word earns its place.

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

Completeness3/5

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

The description is short and relies on the tool name and siblings for context. It does not explain the meaning of 'Heading Waypoint' or how the required path parameters (id, waypointId) map to that concept. Since there is no output schema, it also does not describe what the returned list looks like or if there is pagination. For a simple list tool, this is adequate but leaves some ambiguity around parameters and return format.

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 100%, but the schema's descriptions are generic (e.g., 'Path parameters: id, waypointId') and do not explain what id and waypointId refer to in this context. The description does not clarify which id is which. Since the schema already provides some description, the baseline is 3, but the lack of semantic clarification about the two path parameters is a notable gap.

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 'List notes on a Heading Waypoint' clearly states a specific verb (list), resource (notes), and the context (a Heading Waypoint). This distinguishes it from siblings like ruddur_create_waypoint_note, ruddur_update_waypoint_note, and ruddur_delete_waypoint_note, as well as from ruddur_list_waypoints which lists waypoints rather than notes.

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

Usage Guidelines4/5

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

The description provides clear context by indicating this is a read operation on a Heading Waypoint, and it adds a prerequisite (requires scope: content.read). It does not explicitly name alternative tools or state when not to use it, but the purpose implicitly covers the main use case. The sibling tool list makes it obvious that other note tools are for mutation, so the usage context is sufficiently clear.

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

ruddur_list_waypointsA
Read-onlyIdempotent

List creator-owned Waypoints. Requires scope: content.read.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds an auth requirement ('Requires scope: content.read'), which is a useful behavioral trait beyond the annotations. No contradictions found.

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?

The description consists of two short, front-loaded sentences. The first states the core purpose; the second adds a key requirement. Every word earns its place with zero redundancy.

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

Completeness3/5

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

As a list tool with no output schema, the description identifies the resource and scope but omits any detail about pagination, filtering, or return format. The optional query parameters are left generic in the schema, and the description does not clarify them. It is minimally adequate but has clear gaps.

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 100%, with both 'body' and 'query' parameters documented. The description itself adds no extra parameter insight beyond the schema. The body parameter description is slightly confusing for a list operation, but the schema carries the burden adequately.

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 uses the specific verb 'List' with the resource 'creator-owned Waypoints,' which clearly distinguishes it from sibling tools like ruddur_list_waypoint_notes and other list-type operations. The scope is explicit and unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context by specifying 'creator-owned' and the required scope 'content.read,' which informs the agent when this tool is appropriate. It does not mention exclusions or alternatives, but the context is sufficient for a simple list operation.

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

ruddur_record_creator_eventA

Record a creator analytics event. The MCP server accepts event/type/name as aliases for eventType and timestamp/time/createdAt as aliases for occurredAt. Requires scope: events.write.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
idempotencyKeyYesUnique idempotency key for safely retrying this operation.

TDQS

A4.3/5.0
Behavior4/5

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

It adds useful behavioral specifics beyond the annotations: the scope requirement and the fact that the server accepts aliases for parameter names. This helps the agent understand access control and flexible input expectations. It does not contradict the annotations.

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?

The description is concise—two sentences, no filler. It front-loads the primary purpose and efficiently provides alias and scope details. Every sentence contributes to understanding the tool.

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

Completeness3/5

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

While the description is adequate, it leaves gaps: the body schema's mention of 'waypoint payloads' and 'assessmentConfig' is irrelevant for a creator analytics event, and the description does not enumerate other valid event fields or the success response. With no output schema, the agent lacks a complete picture of what to send and what to expect.

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?

The schema already provides descriptions and 100% coverage for top-level parameters, establishing a baseline of 3. The description adds meaning by documenting aliases for eventType and occurredAt, which are not present in the schema. This extra semantic information helps the agent construct valid payloads.

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 the specific verb 'Record' and resource 'creator analytics event', making the tool's purpose immediately clear. It also implicitly distinguishes itself from the sibling tool ruddur_get_creator_analytics, which is about retrieving analytics rather than recording events.

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

Usage Guidelines4/5

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

The description clearly implies when to use the tool (to record a creator analytics event) and notes an important prerequisite: requires scope events.write. However, it does not explicitly mention when not to use it or reference alternative tools, so it falls short of a full 5.

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

ruddur_remove_heading_collaboratorA
DestructiveIdempotent

Remove a Heading collaborator. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
confirmYesMust be true after the user has explicitly confirmed this sensitive action.
pathParamsYesPath parameters: id, collaboratorId.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already signal destructive and non-read-only behavior. The description adds the content.manage scope requirement, which is a useful auth-related detail not present in annotations, but it does not elaborate on other consequences of removal (e.g., irreversibility or impact on related data).

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?

The description is two terse sentences, front-loaded with the action, and every word serves a purpose. No fluff or redundancy.

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

Completeness3/5

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

The description covers the core purpose and required scope, but for a destructive mutation with no output schema, it could mention the result or confirmation flow (though the confirm parameter is documented in the schema). It is acceptable but minimal for a sensitive operation.

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 100%, so the schema fully documents all parameters. The description adds no parameter-specific meaning beyond what the schema already provides, matching the baseline of 3.

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 clearly states the action ('Remove') and the resource ('Heading collaborator'), distinguishing it from sibling CRUD operations like add/update/list. It also specifies the required scope, making the purpose unambiguous.

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?

The description implies usage from the verb 'Remove' and notes a required scope, but it does not explicitly state when to use this over alternatives or when not to use it. It provides a prerequisite but no exclusions or alternative references.

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

ruddur_restore_heading_snapshotA

Restore a Heading snapshot. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
confirmYesMust be true after the user has explicitly confirmed this sensitive action.
pathParamsYesPath parameters: id, snapshotId.

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already provide the safety profile (non-read-only, not destructive, open world, not idempotent). The description adds an auth requirement (content.manage scope), which is a useful behavioral constraint. However, it does not explain the implications of restoring, such as whether current content is overwritten or a new version is created.

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?

The description is a single concise sentence that front-loads the core purpose and the only essential caveat (scope). There is no fluff or redundant information.

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

Completeness3/5

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

The description is minimally viable but lacks context about the restore semantics and the sensitive nature of the action. The schema and annotations fill some gaps, but a mutation tool that requires explicit confirmation would benefit from a brief explanation of what happens when a snapshot is restored.

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?

The schema descriptions cover all four parameters (body, query, confirm, pathParams) with 100% coverage. The description contributes no additional parameter-specific meaning, so the baseline of 3 applies.

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 clearly states the action ('Restore') on a specific resource ('Heading snapshot'), with the required scope ('content.manage') adding precision. This distinguishes it from sibling tools because no other tool performs restoration of snapshots.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It does not mention that it is for reverting a heading to a saved snapshot, nor does it exclude cases where other tools like update_heading or apply_heading_template might be more appropriate. The only extra context is the permission requirement, which is not usage guidance.

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

ruddur_search_headingsA
Read-onlyIdempotent

Search creator-owned Headings using query parameter q. Requires scope: content.read.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already convey read-only, idempotent, open-world, and non-destructive behavior. The description adds the authentication scope requirement and the 'creator-owned' scoping constraint, which are useful beyond annotations. No contradiction.

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?

The description is a single, front-loaded sentence focused on the action and resource. It is concise with no wasted words, aside from a minor double-space typo.

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

Completeness3/5

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

The description covers auth and basic query usage but omits response format, pagination, or any details about what is returned. Since there is no output schema, the description should provide more context about results.

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?

The schema has only generic body and query objects, but the description names the specific query parameter 'q', which is essential for usage. It does not elaborate on the body parameter, but for a search tool, 'q' is the critical semantic detail.

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?

The description clearly states the tool searches creator-owned Headings using query parameter q, with a specific verb and resource. It does not explicitly differentiate from ruddur_list_headings, but 'search' implies a distinct action.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like list_headings or get_heading. It only states the action and a required scope, leaving the agent without context on selection.

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

ruddur_update_couponA

Update a marketplace coupon. The MCP server accepts coupon aliases such as promoCode, percentOff, amountOff, expires, usageLimit, and marketplaceListingId. Requires scope: marketplace.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: couponId.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate a non-read-only, non-idempotent, non-destructive operation; the description adds that the server accepts specific coupon aliases and requires marketplace.manage scope. It does not discuss merge vs. replace semantics or response shape, but the annotation coverage lowers the bar.

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?

Two sentences, front-loaded with the action, and each clause adds value (purpose, aliases, scope requirement). No redundancy or filler.

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?

For a mutation tool with a generic body and no output schema, the description provides the essential operation, authorization scope, and accepted field aliases. It stops short of explaining update semantics, error cases, or return values, but combined with 100% schema coverage and annotations, it is reasonably complete.

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 description coverage is 100%, so baseline is 3. The description supplements the generic body schema by enumerating accepted coupon aliases (promoCode, percentOff, amountOff, expires, usageLimit, marketplaceListingId), which adds practical meaning. It does not detail how aliases map to body/query fields, but it goes beyond the schema.

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 opens with 'Update a marketplace coupon,' a specific verb+resource pairing that clearly distinguishes this from sibling tools like ruddur_create_coupon and ruddur_list_coupons. The alias list adds further operational specificity.

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 implied: use when updating an existing marketplace coupon, reinforced by the 'Requires scope: marketplace.manage' prerequisite. However, it does not explicitly contrast with ruddur_create_coupon or other coupon tools, and there are no when-not-to-use/exclusion statements.

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

ruddur_update_creator_profileA

Create or update the authenticated creator profile. The MCP server accepts name, creatorName, or title as aliases for displayName. Requires scope: marketplace.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate non-readOnly and non-idempotent, and the description adds valuable context about alias acceptance and required scope. It does not fully explain the create-vs-update decision logic, but the added auth and parameter behavior details go beyond what annotations provide, with no contradictions.

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?

The description is concise, with three short sentences that front-load the main purpose and then provide relevant alias and scope details. There is no redundant or irrelevant content; every sentence earns its place.

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

Completeness3/5

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

The tool has no output schema and the input schema is generic, so the description carries a heavier burden. It covers the core operation and scope, but misses key details like whether the tool creates missing profiles or updates existing ones, and what the return value is. Given the mutation nature and generic schema, more behavioral specifics would be needed for full completeness.

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?

The schema has 100% coverage, but the body description is generic and even mentions 'waypoint payloads', which is irrelevant to profiles. The description adds specific meaning by stating that name, creatorName, and title are aliases for displayName, but it does not enumerate other profile fields, so it only partially compensates for the generic schema.

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 clearly states 'Create or update the authenticated creator profile' with a specific verb and resource, making the tool's function immediately obvious. It also distinguishes itself from sibling 'ruddur_get_creator_profile' by indicating a write operation, and the alias detail further clarifies the purpose.

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

Usage Guidelines4/5

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

The description implies usage for creating/updating the creator profile and provides an access requirement ('Requires scope: marketplace.manage'), which is useful context. However, it does not explicitly compare to alternatives like ruddur_get_creator_profile or state when not to use this tool, so it offers clear context without exclusions.

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

ruddur_update_headingB
Idempotent

Update a Heading, cover asset, or canvas style. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already disclose readOnly=false, idempotent=true, and destructive=false, so the description carries less burden. It adds the authorization requirement (scope: content.manage) but does not clarify whether updates are partial or full replacements, nor how cover asset and canvas style fields behave. This is acceptable given annotation coverage but leaves room for improvement.

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?

The description is two sentences long, states the core purpose immediately, and includes the essential scope requirement without filler. Every sentence contributes value, making it appropriately concise.

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

Completeness2/5

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

This is an update tool with a generic open body schema, yet the description does not explain which fields can be updated, whether the operation patches or replaces the resource, or what the response looks like. Given the existence of specialized sibling update tools (tags, status), the lack of boundary clarification makes it incomplete for an agent selecting and invoking the tool correctly.

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?

The schema already documents all parameters with 100% coverage, so the baseline is 3. The description adds no extra meaning about the id or body fields. The generic body guidance about waypoints appears in the schema itself and is not specific to this tool, so the description does not compensate beyond the schema.

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?

The description clearly states the action (Update) and the resource (Heading), with additional targets (cover asset, canvas style) that distinguish it from sibling tools like update_heading_tags and update_heading_status. However, the phrase 'Heading, cover asset, or canvas style' is slightly ambiguous about whether these are separate update targets or aspects of a single heading.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives such as update_heading_tags or update_heading_status. It mentions the required scope (content.manage) as a prerequisite but offers no exclusions, decision criteria, or references to sibling tools.

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

ruddur_update_heading_collaboratorA
Idempotent

Update a Heading collaborator role. The MCP server accepts collaborator aliases such as userId, collaboratorId, permission, access, and accessLevel. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id, collaboratorId.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already state it is mutating and idempotent; the description adds the authorization requirement ('Requires scope: content.manage') and the alias flexibility, which are useful beyond structured fields. No contradiction with annotations.

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?

Two concise sentences, front-loaded with the core action. No filler or repetition.

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

Completeness3/5

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

The description covers purpose, key aliases, and scope, but it lacks explicit usage context and return behavior. The schema's body description also includes an unrelated assessmentConfig note that could confuse an agent, leaving some gaps for a mutation tool.

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?

The schema descriptions are generic, but the description adds concrete body field aliases (userId, collaboratorId, permission, access, accessLevel) and explains that natural top-level fields are accepted. This meaningfully supplements the generic body schema.

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?

The description uses a specific verb ('Update') and resource ('Heading collaborator role'), which clearly distinguishes it from sibling tools like add/remove_heading_collaborator. It is unambiguous, though it does not explicitly name alternatives.

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?

The intended use is implied: modify a collaborator's role on a heading. However, there is no explicit when-to-use guidance nor a mention of add/remove as alternatives, and the scope requirement is operational rather than a usage guideline.

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

ruddur_update_heading_statusB

Update a Heading lifecycle status. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
confirmYesMust be true after the user has explicitly confirmed this sensitive action.
pathParamsYesPath parameters: id.

TDQS

B3.4/5.0
Behavior3/5

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

Beyond annotations, the description adds the auth requirement 'Requires scope: content.manage', which is useful context. However, it does not disclose behavioral traits such as side effects, reversibility, or what happens when a status is updated. Annotations already indicate a non-readonly, non-destructive mutation.

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?

The description is a single sentence, front-loaded with the action and scope requirement. It contains no filler and every part adds value.

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

Completeness2/5

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

The tool has no output schema and a free-form body, yet the description provides no context about lifecycle statuses, valid status values, expected request format, or consequences. The description is too thin to fully guide the agent in using this tool correctly.

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?

The schema description coverage is 100%, including details for body, confirm, and path parameters. The tool description offers no additional parameter semantics. The body description is generic and does not clarify expected fields like 'status', but the baseline of 3 applies given full schema coverage.

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 clear action: 'Update a Heading lifecycle status.' It uses a specific verb and names the resource, distinguishing it from sibling ruddur_update_heading, which implies general heading updates.

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

Usage Guidelines2/5

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

No guidance is given for when to choose this tool over ruddur_update_heading or other heading-related tools. The only usage hint is the required scope, but no alternatives or exclusions are mentioned.

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

ruddur_update_heading_tagsA
Idempotent

Replace the tags on a Heading. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

A4/5.0
Behavior4/5

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

The description adds the authorization requirement 'Requires scope: content.manage', which is not present in the annotations. It does not contradict the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false); 'Replace' aligns with a mutating but idempotent operation. It lacks deeper behavioral detail but annotations cover the safety profile.

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?

The description is two short sentences with the core action front-loaded and no wasted words. It efficiently conveys purpose and auth requirement.

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?

Given the simple tool scope, the presence of annotations, and a fully described schema, the description is mostly complete. It states the action and required scope; however, it does not explicitly mention that all existing tags will be replaced or what the request body should look like, though the schema's body description partly compensates.

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 100%, so the schema fully documents pathParams, query, and body. The description adds no parameter-specific meaning, so the baseline of 3 is appropriate.

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 uses a specific verb and resource: 'Replace the tags on a Heading.' It clearly distinguishes this tool from sibling tools like ruddur_update_heading and ruddur_update_heading_status by targeting the tags specifically.

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?

The description implies usage for heading tag replacement and notes the required scope 'content.manage', but it does not explicitly state when to use this tool versus alternatives such as ruddur_update_heading or provide exclusion criteria. Usage is more implied than stated.

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

ruddur_update_marketplace_listingA
Idempotent

Update or publish a marketplace listing. The MCP server accepts natural marketplace payloads, including marketplace details, title/name aliases, comma-separated tags, lowercase status/currency, and top-level waypoints converted into a heading payload. Ordinary waypoints should not include assessmentConfig. Keep marketplace descriptions outcome-focused and buyer-facing. Do not add question-format, free-text, PII/data-handling, or generic educational/non-diagnostic boilerplate unless explicitly requested or specifically required; place necessary disclosures in a dedicated assessment introduction, help, or consent surface when available. Requires scope: marketplace.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
confirmYesMust be true after the user has explicitly confirmed this sensitive action.
pathParamsYesPath parameters: id.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate readOnly=false, destructive=false, idempotent=true, and openWorld=true. The description adds valuable context: the 'marketplace.manage' scope requirement, the server's acceptance of natural payloads and top-level field inference, and the waypoint-to-heading conversion behavior. It also sets content policy boundaries, which is beyond structured annotations.

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?

The description is dense but well-organized: it starts with the core action, then payload handling, then content rules, then scope. Each sentence adds value, though the content-policy section is somewhat verbose. Overall, it is appropriately sized for a complex tool with free-form body input.

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?

Given the free-form body schema and no output schema, the description covers a lot: payload transformation, content constraints, scope, and the confirm flag's role. It does not fully explain what 'publish' entails or return values, but these are not required given the absence of an output schema and the richness of the provided context.

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%, but the description adds meaningful elaboration beyond the schema. It clarifies that natural Ruddur fields can be passed at the top level instead of wrapping in body, and it specifies when assessmentConfig should be included. Details like comma-separated tags and lowercase status/currency provide format semantics not present in the schema.

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 first sentence clearly states 'Update or publish a marketplace listing', specifying the verb (update/publish) and resource. It distinguishes from sibling tools like create_marketplace_listing and delete_marketplace_listing, which target different lifecycle stages.

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?

The description implies use for existing listings via path id but does not explicitly contrast with create/delete or list tools. It provides extensive content guidelines for payload construction but lacks clear 'when to use this vs alternatives' disambiguation.

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

ruddur_update_media_assetA

Update creator media metadata. The MCP server accepts media aliases such as title/name, mimeType/contentType, size/fileSize, and heading/waypoint/listing identifiers. Requires scope: media.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

A4/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and idempotentHint=false, so the mutation nature is known. The description adds that the server accepts aliases and requires media.manage scope, but it does not disclose whether the update is partial or full, nor any side effects on the media file itself, leaving some behavioral ambiguity.

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?

The description is two sentences with the main purpose front-loaded. It efficiently conveys the alias behavior and scope requirement without extraneous text, making it highly concise and readable.

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

Completeness3/5

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

For a tool with a flexible body schema and no output schema, the description covers purpose, aliases, and scope, but does not specify the return value or error behavior. The schema's body description includes a confusing reference to 'waypoint payloads' that is not clarified by the tool description, creating a minor contextual gap.

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

Parameters5/5

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

The input schema's body is a generic object/array/string with a description about natural fields and waypoint payloads, but the tool description enriches this by listing concrete aliases (title/name, mimeType/contentType, size/fileSize, identifiers). This helps an agent know exactly which fields to pass for a media asset update, compensating for the schema's lack of media-specific field enumeration.

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 clearly states 'Update creator media metadata' with a specific verb and resource, distinguishing it from sibling tools like list_media_assets or delete_media_asset. It also hints at acceptable field aliases, reinforcing the update scope.

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?

The description implies usage for modifying media metadata but provides no explicit guidance on when to prefer this tool over alternatives like attach/detach/delete. It does include a scope requirement (media.manage), which is a useful prerequisite, but lacks exclusions or alternative tool references.

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

ruddur_update_waypointA
Idempotent

Update a creator-owned Waypoint. Omit assessmentConfig for ordinary waypoints; include it only for explicit assessment-style waypoints. The MCP server maps creatorAssessmentConfig to assessmentConfig when provided. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: id.

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description adds useful behavioral details: the server maps creatorAssessmentConfig to assessmentConfig, and it discloses the required auth scope. There is no contradiction with annotations.

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?

Three sentences, each conveying a distinct fact: the action, the assessmentConfig conditional, and the mapping/scope. No filler or redundancy; the purpose is front-loaded.

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?

For a three-parameter update tool with strong annotations and schema coverage, the description covers ownership, auth requirement, and special field behavior. It omits return-value details, but with no output schema and a straightforward update operation, this is a minor gap.

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?

With 100% schema description coverage, the schema already documents each parameter well. The description adds extra value by clarifying that natural Ruddur fields can be passed at the top level and reiterating the assessmentConfig rule, which helps the agent structure the payload correctly.

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 opens with 'Update a creator-owned Waypoint', clearly identifying the verb (update) and resource (Waypoint). The qualifier 'creator-owned' scopes the operation to the creator's own waypoints, which distinguishes it from other update tools in the sibling list.

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

Usage Guidelines4/5

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

The description provides explicit usage context: the required scope 'content.manage' and the rule to include assessmentConfig only for assessment-style waypoints. However, it does not explicitly name alternative tools or state when to prefer this over, say, ruddur_update_waypoint_placement, so some exclusions are missing.

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

ruddur_update_waypoint_noteB
Idempotent

Update a Waypoint note. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: noteId.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds the scope requirement, which is useful context beyond annotations. However, it does not describe side effects, return behavior, or other operational details, so the disclosure remains minimal.

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?

The description is a single sentence with no unnecessary words. It front-loads the primary action and resource, then states the required scope. This is appropriately concise and well-structured.

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

Completeness3/5

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

The annotations and schema provide decent coverage: the operation is idempotent, non-destructive, and the body parameter semantics are explained. However, the tool description itself offers minimal context about what a Waypoint note is, what fields are updatable, or what the response looks like. Given the flexibility of the body (anyOf object/array/string), more guidance would be helpful, but the existing schema partially compensates.

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 100%, so the baseline is 3. The body parameter description in the schema is rich, explaining how to pass Ruddur fields directly and when to use assessmentConfig. The tool description itself contributes no parameter semantics beyond the scope requirement, so no bonus is warranted.

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?

The description clearly states the verb 'Update' and the resource 'Waypoint note', which is specific and unambiguous. It distinguishes from sibling tools like create/delete/list waypoint notes, though it does not explicitly contrast with ruddur_update_waypoint, which is a different resource.

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

Usage Guidelines2/5

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

The description only mentions the required scope ('content.manage'), not when to use this tool versus alternatives. There is no guidance on prerequisites, conditions, or scenarios where updating a waypoint note is appropriate, leaving the agent without usage context.

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

ruddur_update_waypoint_placementA

Update a Waypoint placement. The MCP server accepts placement aliases such as heading, index, state, and sortOrder. Requires scope: content.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.
pathParamsYesPath parameters: placementId.

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate this is a non-read-only, non-idempotent update. The description adds a permission requirement ('Requires scope: content.manage') and notes that placement aliases are accepted, which provides useful context. However, it does not disclose side effects, whether the update fully replaces or merges fields, or what the response contains.

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?

The description is two concise sentences: the first states the purpose, the second adds scope and flexibility. It front-loads the action and avoids redundancy.

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?

The tool has a required path parameter and an optional body/query, and no output schema. The description and schema together explain the operation, permission scope, and payload flexibility. It lacks detail about the response format or failure modes, but for a targeted update operation it is reasonably complete.

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 descriptions cover all three parameters (100% coverage), so the baseline is 3. The body parameter's description adds valuable guidance: 'You may pass natural Ruddur fields directly at the top level instead of wrapping them in body' and 'For normal waypoint payloads, omit assessmentConfig.' The tool description also clarifies placement aliases. This extra semantic information raises the score.

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 opens with 'Update a Waypoint placement' – a specific verb and resource. This distinguishes it from sibling tools like ruddur_create_waypoint, ruddur_attach_waypoint, and ruddur_delete_waypoint_placement. The addition of 'placement' makes the target resource unambiguous.

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?

The description does not explicitly state when to choose this tool over alternatives such as ruddur_update_waypoint or ruddur_attach_waypoint. The mention of placement aliases (heading, index, state, sortOrder) implies it is for reordering or changing a waypoint's placement, but no explicit exclusions or alternative guidance is given.

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

ruddur_verify_entitlementA
Read-only

Verify a user's entitlement to a creator listing. The MCP server accepts marketplaceListingId and customerUserId aliases. Requires one of scope: marketplace.entitlements, marketplace.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST, PUT, or PATCH operations. You may pass natural Ruddur fields directly at the top level instead of wrapping them in body; the server will infer the body. For normal waypoint payloads, omit assessmentConfig. Use assessmentConfig only for assessment-style waypoints.
queryNoOptional query parameters.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate read-only and open-world hints. The description adds useful behavioral context beyond annotations: it notes the server accepts aliases (marketplaceListingId and customerUserId) and specifies required authorization scopes. It does not contradict annotations and provides meaningful operational detail.

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?

Two sentences, no filler. The first sentence states the purpose, the second adds essential alias and scope details. Every sentence earns its place and the tool is easy to scan.

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

Completeness3/5

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

The description is concise but omits the return value/response format, which matters for a 'verify' tool without an output schema. It also does not mention what happens on invalid IDs or when entitlement is false. Given the annotations cover safety and the description covers scope/aliases, it is adequate but not complete.

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?

The input schema only documents generic body and query wrappers with high coverage, while the actual domain parameters (marketplaceListingId, customerUserId) are only mentioned as aliases in the description. This adds some meaning, but the description does not clarify where these parameters go (body vs query), whether they are required, or their types. The schema's generic description provides limited help for the actual invocation.

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 begins with a specific verb+resource: 'Verify a user's entitlement to a creator listing.' It clearly identifies the tool's function and differentiates it from sibling tools, none of which perform entitlement verification. No ambiguity or tautology.

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

Usage Guidelines4/5

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

It states a concrete precondition for use: 'Requires one of scope: marketplace.entitlements, marketplace.manage.' This gives clear context on when the tool can be invoked. However, it does not explicitly mention alternatives or when not to use it, though the unique purpose makes alternatives less relevant.

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

TDQS

A3.7/5.0
Disambiguation4/5

Most tools have a clear resource+action mapping (headings, waypoints, media, marketplace). A few close pairs like attach_waypoint vs update_waypoint_placement and create/import/apply_template/clone for headings could cause confusion, but the descriptions help distinguish them.

Naming Consistency5/5

Every tool uses the consistent ruddur_verb_noun pattern with snake_case. The only minor deviation is list_my_marketplace_listings, which includes an extra 'my' but remains readable and predictable.

Tool Count2/5

53 tools is far beyond the typical 3-15 range and even exceeds the 25+ threshold. While the broad scope (content, media, marketplace, billing) explains the count, the sheer number makes the server heavy and likely overwhelming for agents.

Completeness4/5

The tool surface covers CRUD for most resources (headings, waypoints, media, marketplace listings) plus snapshots, templates, collaborators, notes, coupons, and entitlements. However, there are no direct getters for waypoints, media assets, or marketplace listings, and coupons lack a delete operation.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    An MCP server that enables natural language interaction with the Notion API, allowing users to search, comment, create pages, and access content within their Notion workspace.
    172,212
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables natural language interaction with Google's Discovery Engine API, allowing users to search, recommend, and manage data through conversational interfaces.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chadsly/ruddur-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server