Skip to main content
Glama

prismic-content-mcp

MCP server for Prismic:

  • Read documents from the Prismic Content API

  • List/upload media from the Prismic Asset API

  • Create/update documents through the Prismic Migration API

This server writes into the Prismic Migration Release for review and publishing. It does not auto-publish.

GitHub: https://github.com/rahulpowar/prismic-content-mcp

Example Prompts

Use these directly in your LLM client once this MCP is connected:

  • Show the Prismic repository context and tell me which repo this MCP is configured for.

  • List all content types (custom types) with their IDs and labels.

  • Fetch the page custom type schema and show fields, required flags, and configured slices.

  • List repository refs and identify the master ref.

  • List release refs and summarize each release name + ref.

  • List the top 10 longest articles, excluding a specific type like page guides.

  • Fetch documents using a flexible q predicate for tagged content.

  • Filter documents by type and sort by first publication date descending.

  • Read a document by type + uid and show its resolved URL.

  • Read documents using an explicit ref so I can inspect draft or release content.

  • List all media assets and include pagination cursors if present.

  • Upload a media asset with alt text, credits, and notes.

  • List all resource-center pages and group them by language.

  • Show which pages are translated and which are missing locales.

  • Show SEO metadata for a given article (title, description, OG/Twitter fields).

  • Audit SEO fields for likely copy/paste mismatches across title/description/image.

Related MCP server: MCP Strapi Server

What You Get

  • Read tools for listing and fetching documents

  • Read tools for refs, releases, and custom types

  • Custom Types API tools for shared slices and full page-type model management

  • Media tools for listing and uploading assets

  • Write tools for single and batch upsert

  • Safer write behavior with:

    • Rate limiting

    • Retry-on-transient errors (429, 503, 504)

    • Optional type allowlist

    • Batch size limit

  • Structured upstream errors with status and response details

  • Logging to stderr with secret redaction

Requirements

  • Python 3.10+

  • A Prismic repository

  • For media, custom types, and migration write tools: Prismic write API token

Install

Run without cloning (recommended):

uvx --from git+https://github.com/rahulpowar/prismic-content-mcp.git prismic-content-mcp

For stdio MCP client configs, use:

  • command: uvx

  • args: ["--from", "git+https://github.com/rahulpowar/prismic-content-mcp.git", "prismic-content-mcp"]

Clone only for local development:

git clone https://github.com/rahulpowar/prismic-content-mcp.git
cd prismic-content-mcp
uv sync --frozen --extra dev

uv sync --frozen is the canonical deterministic install path for this repo and will fail if uv.lock is out of date with pyproject.toml.

Run from a local checkout:

uv run prismic-content-mcp

For development/test:

uv run pytest -q

Quickstart (LLM Clients)

This MCP supports both transports:

  • stdio: best for local clients (Claude Desktop, Codex, Claude Code)

  • streamable-http: required for remote/web clients (ChatGPT, Claude connectors)

Security note:

  • streamable-http has no built-in authentication. Prefer stdio for local use.

  • If you must use HTTP transport, bind PRISMIC_MCP_HOST=127.0.0.1 or place the server behind authenticated network boundaries (reverse proxy / private network).

Use these env vars in all examples:

# Required for read tools
export PRISMIC_REPOSITORY=your-repo

# Optional for private content API access
export PRISMIC_CONTENT_API_TOKEN=your-content-token

# Required for media upload path safety (must be an existing directory)
export PRISMIC_UPLOAD_ROOT=/absolute/path/allowed-for-upload-files

# Required for media tools and migration write tools
export PRISMIC_WRITE_API_TOKEN=your-write-token

Claude Desktop (local stdio)

Edit claude_desktop_config.json and add:

{
  "mcpServers": {
    "prismic": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/rahulpowar/prismic-content-mcp.git",
        "prismic-content-mcp"
      ],
      "env": {
        "PRISMIC_REPOSITORY": "your-repo",
        "PRISMIC_CONTENT_API_TOKEN": "your-content-token",
        "PRISMIC_WRITE_API_TOKEN": "your-write-token"
      }
    }
  }
}

Claude Desktop config file location:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\\Claude\\claude_desktop_config.json

Claude (claude.ai connectors)

Claude connectors use remote MCP endpoints (HTTP/SSE), not local stdio.

  1. Start this server in streamable HTTP mode.

  2. Expose it on a reachable HTTPS URL.

  3. Add it in claude.ai/settings/connectors.

Run locally in HTTP mode:

export PRISMIC_MCP_TRANSPORT=streamable-http
export PRISMIC_MCP_HOST=127.0.0.1
export PRISMIC_MCP_PORT=8000
export PRISMIC_MCP_PATH=/mcp
prismic-content-mcp

ChatGPT (Developer mode)

ChatGPT app connectors require remote MCP endpoints (SSE or streaming HTTP).

  1. Enable Developer mode in Settings -> Apps -> Advanced settings -> Developer mode.

  2. In Apps settings, click Create app.

  3. Provide your remote MCP URL (for this server, streamable HTTP).

  4. Enable tools and use the app in chats.

Use the same HTTP run command shown above, but exposed on an HTTPS URL reachable by ChatGPT.

Codex

Add as a local stdio MCP server:

codex mcp add \
  --env PRISMIC_REPOSITORY=your-repo \
  --env PRISMIC_CONTENT_API_TOKEN=your-content-token \
  --env PRISMIC_WRITE_API_TOKEN=your-write-token \
  prismic -- uvx --from git+https://github.com/rahulpowar/prismic-content-mcp.git prismic-content-mcp

Or add as remote HTTP MCP server:

codex mcp add prismic --url https://your-public-host/mcp

Verify:

codex mcp list

Optional agent-routing note for Codex:

If you use ~/.codex/AGENTS.md, add an instruction like:

If querying or updating content for the xyz.com website, use the Prismic MCP tools when enabled.

Claude Code

Add as local stdio MCP server:

claude mcp add \
  --transport stdio \
  --env PRISMIC_REPOSITORY=your-repo \
  --env PRISMIC_CONTENT_API_TOKEN=your-content-token \
  --env PRISMIC_WRITE_API_TOKEN=your-write-token \
  prismic -- uvx --from git+https://github.com/rahulpowar/prismic-content-mcp.git prismic-content-mcp

Verify:

claude mcp get prismic

Client docs:

  • Claude Code MCP: https://docs.anthropic.com/en/docs/claude-code/mcp

  • Claude Desktop MCP config shape/path: https://modelcontextprotocol.io/quickstart/user

  • ChatGPT Developer mode: https://help.openai.com/en/articles/12319417-developer-mode

  • OpenAI Apps SDK MCP server guide: https://developers.openai.com/apps-sdk/build/mcp-server/

  • Codex CLI MCP: https://developers.openai.com/codex/cli/mcp

Configuration

Core Variables

Variable

Default

Required

Notes

PRISMIC_REPOSITORY

none

Read: usually yes, Write: yes

Repository name (recommended). Used to derive Content API URL if not provided.

PRISMIC_DOCUMENT_API_URL

Derived from repository

No

Optional override for Content API base URL.

PRISMIC_CONTENT_API_TOKEN

none

No

Needed for private repos and often required to read non-master refs (preview/release) when API visibility is restricted.

PRISMIC_DISABLE_RAW_Q

false

No

When true (1/true), rejects raw q predicates; only server-generated predicates (for example type) are allowed.

PRISMIC_WRITE_API_TOKEN

none

CustomTypes/Media/Write

Required for Custom Types API tools, media tools, and Migration API write tools.

PRISMIC_MIGRATION_API_BASE_URL

https://migration.prismic.io

No

Optional Migration API override.

PRISMIC_ASSET_API_BASE_URL

https://asset-api.prismic.io

No

Optional Asset API override.

PRISMIC_CUSTOM_TYPES_API_BASE_URL

https://customtypes.prismic.io

No

Optional Custom Types API override.

PRISMIC_UPLOAD_ROOT

none

Media upload

Required for prismic_add_media; upload file paths must resolve within this directory.

PRISMIC_ENFORCE_TRUSTED_ENDPOINTS

false

No

When true (1/true), startup fails if endpoint override env vars point to non-*.prismic.io hosts.

Write Safety Controls

Variable

Default

Required

Notes

PRISMIC_MIGRATION_MIN_INTERVAL_SECONDS

2.5

No

Minimum spacing between write requests.

PRISMIC_RETRY_MAX_ATTEMPTS

5

No

Max attempts for transient write failures.

PRISMIC_WRITE_TYPE_ALLOWLIST

empty

No

Comma-separated list of allowed custom types for writes.

PRISMIC_MAX_BATCH_SIZE

50

No

Maximum documents allowed in prismic_upsert_documents.

Runtime + Logging

Variable

Default

Required

Notes

PRISMIC_MCP_TRANSPORT

stdio

No

stdio, http, or streamable-http (http maps to streamable HTTP mode).

PRISMIC_MCP_HOST

127.0.0.1

No

HTTP/streamable-http bind host.

PRISMIC_MCP_PORT

8000

No

HTTP/streamable-http bind port.

PRISMIC_MCP_PATH

/mcp

No

Streamable HTTP path.

PRISMIC_LOG_LEVEL

INFO

No

Standard Python logging level.

Content API URL Derivation

If PRISMIC_DOCUMENT_API_URL is not set, the server derives it from PRISMIC_REPOSITORY.

Recommended:

  • PRISMIC_REPOSITORY=your-repo

Result:

  • https://your-repo.cdn.prismic.io/api/v2

If you prefer, you may explicitly set PRISMIC_DOCUMENT_API_URL and skip derivation.

Security behavior for endpoint overrides:

  • Non-Prismic overrides for PRISMIC_DOCUMENT_API_URL, PRISMIC_MIGRATION_API_BASE_URL, PRISMIC_ASSET_API_BASE_URL, or PRISMIC_CUSTOM_TYPES_API_BASE_URL emit a startup warning.

  • Set PRISMIC_ENFORCE_TRUSTED_ENDPOINTS=1 to block startup on such overrides.

MCP Tools

prismic_get_repository_context

Return non-secret runtime context so agents know which repository this MCP server is configured to use.

Example output shape:

{
  "context": {
    "repository": "your-repo",
    "content_api_base_url": "https://your-repo.cdn.prismic.io/api/v2",
    "migration_api_base_url": "https://migration.prismic.io",
    "asset_api_base_url": "https://asset-api.prismic.io",
    "custom_types_api_base_url": "https://customtypes.prismic.io",
    "has_content_api_token": false,
    "has_write_credentials": true,
    "has_asset_credentials": true,
    "has_custom_types_credentials": true
  }
}

prismic_get_refs

Return the repository refs array from Prismic Content API root (/api/v2).

Important:

  • Refs are repository-level pointers (master, preview, release refs).

  • They are not per-document refs.

  • Use a ref value with prismic_get_documents/prismic_get_document via the ref parameter to read that content version.

Example output shape:

{
  "refs": [
    {
      "id": "master",
      "ref": "aahE6hoAAE0AtrIS",
      "label": "Master",
      "isMasterRef": true
    }
  ]
}

prismic_get_types

Return repository custom types from Prismic Content API root (/api/v2).

Important:

  • This is based on the Content API root types map.

  • It returns normalized entries with id and label.

Example output shape:

{
  "types": [
    { "id": "blog_post", "label": "Blog Post" },
    { "id": "page", "label": "Page" }
  ]
}

prismic_get_releases

Return only release refs from Prismic Content API root (/api/v2).

Important:

  • This is a convenience subset of prismic_get_refs.

  • It excludes refs where isMasterRef is true.

  • Use returned release refs with read tools (ref parameter) to inspect release content.

Example output shape:

{
  "releases": [
    {
      "id": "release-q1",
      "ref": "aahE6hoAAE0AtrIS",
      "label": "Q1 Release",
      "isMasterRef": false
    }
  ]
}

prismic_get_custom_types

List full custom type models from the Prismic Custom Types API (GET /customtypes).

Requires:

  • PRISMIC_REPOSITORY

  • PRISMIC_WRITE_API_TOKEN

Returns:

  • custom_types: array of full custom type JSON models.

prismic_get_custom_type

Fetch one custom type model by id (GET /customtypes/{id}).

Inputs:

  • custom_type_id (required)

  • include_schema_summary (default: true)

When include_schema_summary=true, response includes:

  • schema.tabs[].fields[] with field type and full config

  • required flags where present in field config

  • shared_slices extracted from Slices field choices

Use this to verify page-type schema (fields, slices, config, required flags).

prismic_insert_custom_type

Insert a new custom type model (POST /customtypes/insert).

Input:

  • custom_type: full custom type JSON model (must include id).

prismic_update_custom_type

Update an existing custom type model (POST /customtypes/update).

Input:

  • custom_type: full updated custom type JSON model (must include id).

Recommended sequence:

  1. prismic_get_custom_type

  2. edit JSON model

  3. prismic_update_custom_type

  4. prismic_get_custom_type to verify

prismic_get_shared_slices

List shared slice models from Custom Types API (GET /slices).

prismic_get_shared_slice

Fetch one shared slice model by id (GET /slices/{id}).

prismic_insert_shared_slice

Insert a new shared slice model (POST /slices/insert).

prismic_update_shared_slice

Update an existing shared slice model (POST /slices/update).

prismic_get_documents

List documents with pagination.

ref can be used to read from an explicit Prismic content ref (for example, a preview/draft ref). If omitted, the server resolves and uses the master ref. Depending on repository API visibility settings, reading non-master refs may require PRISMIC_CONTENT_API_TOKEN. q is passed through to Prismic Content API predicates. Treat q as trusted raw input only; do not forward untrusted prompt/user text directly into q. Supported q shapes are: null, string, or array of strings. If PRISMIC_DISABLE_RAW_Q=1, raw q input is rejected. orderings is passed through to Prismic Content API sort clauses. routes is passed through to Prismic Content API route resolvers.

type is a convenience shortcut for:

  • [[at(document.type,"<type>")]]

If both type and q are provided, the type predicate is prepended to q.

Input:

{
  "type": "page",
  "lang": "en-us",
  "ref": "your-preview-or-release-ref",
  "page": 1,
  "page_size": 20,
  "q": null,
  "orderings": "[document.first_publication_date desc]",
  "routes": [
    { "type": "page", "path": "/:uid" },
    { "type": "homepage", "path": "/" }
  ]
}

Usage examples:

Filter by type via convenience mapping:

{
  "type": "webinar_form",
  "page": 1,
  "page_size": 20
}

Equivalent explicit predicate in q:

{
  "q": ["[[at(document.type,\"webinar_form\")]]"],
  "page": 1,
  "page_size": 20
}

Multiple predicates (example: type + tag) using explicit q:

{
  "q": [
    "[[at(document.type,\"webinar_form\")]]",
    "[[at(document.tags,\"news\")]]"
  ],
  "lang": "en-us"
}

Sort by first publication date descending:

{
  "q": ["[[at(document.type,\"blog\")]]"],
  "orderings": "[document.first_publication_date desc]",
  "page": 1,
  "page_size": 20
}

Sort by last publication date ascending:

{
  "type": "chapter",
  "orderings": "[document.last_publication_date]",
  "page": 1,
  "page_size": 20
}

Use an explicit preview ref:

{
  "type": "blog",
  "ref": "ZxY123...previewRef",
  "page": 1,
  "page_size": 20
}

Resolve url values with route resolvers:

{
  "type": "page",
  "routes": [
    { "type": "homepage", "path": "/" },
    { "type": "page", "path": "/:uid" },
    { "type": "blog_post", "path": "/blog/:uid" }
  ],
  "page": 1,
  "page_size": 20
}

prismic_get_document

Fetch one document by:

  • id, or

  • type + uid (optional lang)

  • optional ref to read a specific preview/release ref instead of master

  • depending on repository API visibility settings, non-master refs may require PRISMIC_CONTENT_API_TOKEN

prismic_get_media

List media assets from the Prismic Asset API (GET /assets).

This tool maps directly to native Asset API query parameters:

  • asset_type -> assetType

  • limit -> limit

  • cursor -> cursor

  • keyword -> keyword

Requires:

  • PRISMIC_REPOSITORY

  • PRISMIC_WRITE_API_TOKEN

Example input:

{
  "asset_type": "image",
  "limit": 25,
  "keyword": "hero"
}

prismic_add_media

Upload a media file to the Prismic Asset API (POST /assets) using multipart/form-data.

Inputs:

  • file_path (required): local filesystem path to the file to upload

  • notes (optional)

  • credits (optional)

  • alt (optional)

Requires:

  • PRISMIC_REPOSITORY

  • PRISMIC_WRITE_API_TOKEN

  • PRISMIC_UPLOAD_ROOT (file must resolve inside this directory; symlink and traversal escapes are blocked)

Example input:

{
  "file_path": "/absolute/path/to/hero.png",
  "notes": "Homepage hero image",
  "credits": "Design Team",
  "alt": "Person presenting on stage"
}

prismic_upsert_document

Create/update one document in Migration API.

Important behavior:

  • Writes to Prismic Migration workflow (Migration UI/release flow), not directly to Content API master visibility.

  • A successful upsert can exist in Migration UI but still not appear in prismic_get_document(s) master reads until release/publish workflow makes it readable.

  • To read back migrated content before publish, get a release ref via prismic_get_releases (or prismic_get_refs) and query read tools with ref=<release_ref>. Supply PRISMIC_CONTENT_API_TOKEN when repo/API settings require authenticated reads.

  • Supports dry_run=true to validate request shape without writing.

prismic_upsert_documents

Batch create/update documents in Migration API.

Important behavior:

  • Same visibility caveat as single upsert: Migration success does not guarantee immediate master-read visibility.

  • Read-back pattern is the same as single upsert: use explicit ref with read tools (plus PRISMIC_CONTENT_API_TOKEN when required by repo settings).

  • Supports dry_run and fail_fast.

Error and Safety Behavior

  • Content API read tools do not require write credentials.

  • Custom Types API tools (including read calls) require write credentials.

  • Write tools fail fast if write credentials are missing.

  • Write retries only on 429, 503, 504 with exponential backoff + jitter.

  • Non-retryable 4xx errors fail immediately.

  • Batch upsert enforces PRISMIC_MAX_BATCH_SIZE.

  • Logs are written to stderr only, with token redaction.

Testing

Run default tests:

python3 -m pytest -q

Run live upstream read tests:

PRISMIC_RUN_LIVE_TESTS=1 python3 -m pytest -q tests/test_real_prismic_api.py

Run live upstream write test (writes into Migration Release):

PRISMIC_RUN_LIVE_TESTS=1 \
PRISMIC_RUN_LIVE_WRITE_TESTS=1 \
PRISMIC_LIVE_TEST_WRITE_TYPE=page \
python3 -m pytest -q tests/test_real_prismic_api.py

Available Tools

18 tools
prismic_add_mediaA

Upload media via Prismic Asset API.

Uploads file_path using multipart/form-data to POST /assets. Optional metadata maps to Asset API fields: notes, credits, alt. Requires PRISMIC_REPOSITORY and PRISMIC_WRITE_API_TOKEN. Security: PRISMIC_UPLOAD_ROOT must be set; upload paths must resolve within that directory (traversal and symlink escapes are blocked).

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
notesNo
creditsNo
altNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure and does so effectively. It explains security constraints (PRISMIC_UPLOAD_ROOT requirement, path traversal blocking), authentication needs (specific environment variables), and technical implementation details (multipart/form-data, POST /assets). It doesn't mention rate limits or error handling, but covers essential operational context.

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 efficiently structured with zero wasted sentences. It front-loads the core purpose, then provides implementation details, prerequisites, and security constraints in a logical flow. Each sentence adds essential information without 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?

Given the complexity of a media upload operation with security constraints, no annotations, and an output schema present, the description is quite complete. It covers purpose, implementation, prerequisites, and security. The output schema likely handles return values, so the description appropriately focuses on operational context rather than response format.

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 0% schema description coverage, the description must compensate and does so well for most parameters. It explains that 'file_path' is uploaded, and that 'notes', 'credits', and 'alt' are optional metadata mapping to Asset API fields. However, it doesn't provide format expectations or constraints for these string parameters beyond their purpose.

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 specific action ('Upload media via Prismic Asset API') and resource ('file_path'), distinguishing it from sibling tools that primarily retrieve or manage documents, custom types, and slices rather than uploading media assets. It provides concrete technical details about the API endpoint and method.

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 for when to use this tool (uploading media assets) and mentions prerequisites (environment variables like PRISMIC_REPOSITORY and PRISMIC_WRITE_API_TOKEN). However, it doesn't explicitly contrast with alternatives or state when not to use it compared to sibling tools like prismic_get_media or document management tools.

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

prismic_get_custom_typeA

Get one Custom Type model and schema summary by ID.

Uses GET /customtypes/{id}. When include_schema_summary=true, returns:

  • tab/field breakdown

  • field config for each field

  • required flags where present in field config

  • shared slice choices configured inside Slices fields

This is the recommended verification call after create/update operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
custom_type_idYes
include_schema_summaryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the HTTP method ('GET /customtypes/{id}'), which implies a read-only operation, and details what is returned when 'include_schema_summary=true' (e.g., tab/field breakdown, field config). However, it doesn't mention error conditions, rate limits, or authentication needs, which are gaps for a tool with no 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 well-structured and front-loaded with the core purpose. Each sentence adds value: the first states the action, the second specifies the API endpoint, the third details the schema summary output, and the fourth provides usage guidelines. There is no wasted text, and it's appropriately sized for the tool's complexity.

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

Completeness5/5

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

Given the tool has an output schema (which handles return values), no annotations, and low schema coverage, the description is complete enough. It covers the purpose, usage context, behavioral details (HTTP method and output specifics), and parameter semantics for one parameter. The gaps in behavioral transparency and parameter semantics are mitigated by the output schema and the tool's relative simplicity.

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 0%, so the description must compensate. It explains the purpose of 'include_schema_summary=true' in detail, adding meaning beyond the schema's boolean type. However, it doesn't clarify the 'custom_type_id' parameter (e.g., format or source), leaving some semantic gaps. The description partially compensates but not fully.

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 specific action ('Get one Custom Type model and schema summary by ID'), identifies the resource ('Custom Type'), and distinguishes it from sibling tools like 'prismic_get_custom_types' (plural) which likely lists multiple types. The verb 'Get' is precise and the scope is well-defined.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool: 'This is the recommended verification call after create/update operations.' It distinguishes it from other tools by specifying it retrieves a single custom type by ID, unlike 'prismic_get_custom_types' which likely lists multiple types. This provides clear context for selection.

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

prismic_get_custom_typesB

List full Custom Type models from Prismic Custom Types API.

Uses GET /customtypes on https://customtypes.prismic.io (override via PRISMIC_CUSTOM_TYPES_API_BASE_URL). Requires:

  • PRISMIC_REPOSITORY

  • PRISMIC_WRITE_API_TOKEN

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully specifies the HTTP method (GET), endpoint, and environment variable requirements, which are important for usage. However, it lacks details on rate limits, error handling, authentication scope, or what 'full Custom Type models' entails in terms of data returned.

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 well-structured and front-loaded with the core purpose. The additional details about the API endpoint and requirements are necessary and efficiently presented. It could be slightly more concise by integrating the requirements more seamlessly, but overall it avoids unnecessary verbosity.

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 tool has 0 parameters, 100% schema coverage, and an output schema exists, the description provides adequate context. It covers the action, API specifics, and prerequisites. The presence of an output schema means return values don't need explanation, making this description reasonably complete for a simple listing operation.

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 has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately focuses on operational context without redundant parameter explanations, earning a baseline score of 4 for effectively handling a parameterless tool.

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 ('List full Custom Type models') and the resource ('from Prismic Custom Types API'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'prismic_get_types' or 'prismic_get_custom_type', which reduces clarity about when to choose this particular listing tool.

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 mentions the API endpoint and requirements but doesn't explain scenarios where listing all custom types is appropriate compared to getting a single custom type or other related operations available in the sibling tools.

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

prismic_get_documentA

Get one document by id or by type+uid with optional explicit ref.

Use ref to read a specific preview/release version pointer. Depending on repository API visibility settings, non-master refs may require PRISMIC_CONTENT_API_TOKEN. The document payload has no explicit status field (for example published/draft/in-release). To determine publish state on master, use this sequence:

  1. Call prismic_get_refs and capture the master ref.

  2. Call prismic_get_document(..., ref=<master_ref>).

  3. Call prismic_get_document(..., ref=<release_ref>) as needed.

  4. Interpret results:

    • exists on master: published on master

    • missing on master but exists on release ref: not published on master (release-only content) Prefer this over prismic_get_documents when you already have an exact id or type+uid target.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
typeNo
uidNo
langNo
refNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively explains key behaviors: the need for PRISMIC_CONTENT_API_TOKEN for non-master refs, the absence of a status field in the payload, and the multi-step process to determine publish state. However, it doesn't mention error handling, rate limits, or authentication requirements beyond the token note.

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 well-structured and front-loaded with the core purpose, followed by detailed usage notes. While comprehensive, some sentences could be tightened (e.g., the multi-step sequence is verbose but necessary). Overall, it earns its length with valuable information.

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

Completeness5/5

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

Given the complexity (5 parameters, 0% schema coverage, no annotations, but with output schema), the description is highly complete. It covers purpose, usage guidelines, parameter semantics, and behavioral nuances like authentication and publish state determination. The output schema handles return values, so no need to explain them here.

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?

Schema description coverage is 0%, so the description must compensate for all parameters. It explains the purpose of id, type, uid, and ref parameters, including that ref is for 'specific preview/release version pointer.' It also implies lang is for language, though less explicitly. This adds significant meaning beyond the bare 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 the tool's purpose: 'Get one document by id or by type+uid with optional explicit ref.' It specifies the exact action (get), resource (document), and two identification methods, distinguishing it from sibling tools like prismic_get_documents (which retrieves multiple documents).

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: 'Prefer this over prismic_get_documents when you already have an exact id or type+uid target.' It also explains when to use the ref parameter for preview/release versions and outlines a multi-step sequence for determining publish state, offering clear alternatives and context.

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

prismic_get_documentsA

List documents with optional Prismic predicate filtering.

Use ref to read from an explicit Prismic content ref (for example preview/draft refs). When omitted, master ref is used. Depending on repository API visibility settings, reading non-master refs may require PRISMIC_CONTENT_API_TOKEN. Use q for explicit Content API predicates (for example [[at(document.tags,"news")]]). type is a convenience shortcut for [[at(document.type,"<type>")]] and is merged into q. Use orderings for native Content API sort clauses (for example [document.first_publication_date desc]). Use routes for Content API route resolvers to populate the url field (for example [{"type":"page","path":"/:uid"}]). Note: there is no documented Content API q predicate for "published status". A release ref query returns a version snapshot, not only release-delta documents. Efficiency tips:

  • For large scans: call prismic_get_refs once and pass ref explicitly.

  • For counts/existence checks: set page_size=1 and read total_results.

  • Only pass routes when you need populated url fields.

  • Paginate with page + next_page for full exports. Codex js_repl tip: codex.tool(...) wraps tool output; read payload from result.Ok.structuredContent.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
langNo
refNo
pageNo
page_sizeNo
qNo
orderingsNo
routesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well: it explains authentication needs ('may require PRISMIC_CONTENT_API_TOKEN'), efficiency considerations, pagination behavior, and important limitations ('no documented Content API q predicate for published status'). It doesn't cover rate limits or error handling, but provides substantial operational context.

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 well-structured with clear sections: parameter explanations, important notes, efficiency tips, and implementation guidance. While comprehensive, some sentences could be more concise (e.g., the Codex js_repl tip feels slightly out of place). Overall, most content earns its place.

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

Completeness5/5

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

Given the complexity (8 parameters, 0% schema coverage, no annotations) and presence of an output schema, the description is remarkably complete. It covers all parameters, provides operational context, efficiency tips, sibling tool relationships, authentication considerations, and implementation notes. The output schema existence means return values don't need explanation.

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?

With 0% schema description coverage for 8 parameters, the description fully compensates by explaining every parameter's purpose: ref (content ref selection), q (predicate filtering), type (convenience shortcut), orderings (sorting), routes (URL population), page/page_size (pagination). It provides concrete examples and usage patterns for each.

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 starts with 'List documents with optional Prismic predicate filtering' - a specific verb ('List') and resource ('documents') with clear scope ('Prismic predicate filtering'). It distinguishes from siblings like prismic_get_document (singular) and prismic_upsert_document (write operation).

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use alternatives: 'call prismic_get_refs once and pass ref explicitly' for large scans, and mentions sibling tools like prismic_get_refs. It also gives clear context about when to use certain parameters like 'Only pass routes when you need populated url fields.'

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

prismic_get_mediaA

List media assets from Prismic Asset API.

This maps directly to GET /assets query parameters: assetType, limit, cursor, and keyword. Requires PRISMIC_REPOSITORY and PRISMIC_WRITE_API_TOKEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_typeNo
limitNo
cursorNo
keywordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that this is a read operation ('List'), maps to a specific API endpoint, and discloses authentication requirements (PRISMIC_REPOSITORY and PRISMIC_WRITE_API_TOKEN). It doesn't mention rate limits, pagination behavior beyond cursor usage, or error conditions, but provides solid foundational context.

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 perfectly front-loaded with the core purpose in the first sentence, followed by essential implementation details. Every sentence earns its place: the first establishes what the tool does, the second maps parameters to the API, and the third states authentication requirements. No wasted words or 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?

For a read operation with 4 parameters and an output schema (which handles return values), the description provides good context: purpose, parameter mapping, and authentication. It doesn't mention pagination strategy (cursor usage) or potential response formats, but with an output schema available, those details are less critical. The main gap is lack of error handling or rate limit information.

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?

Given 0% schema description coverage (titles like 'Asset Type' and 'Limit' provide minimal semantic value), the description adds crucial meaning by explicitly naming all four parameters (assetType, limit, cursor, keyword) and clarifying they map directly to GET /assets query parameters. This transforms completely undocumented parameters into well-understood API arguments.

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 ('List media assets') and resource ('from Prismic Asset API'), making the purpose immediately understandable. It distinguishes this tool from siblings like prismic_add_media (which creates rather than lists) and prismic_get_document (which fetches documents rather than media assets). However, it doesn't explicitly contrast with all similar retrieval tools like prismic_get_custom_types.

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 context by mentioning it maps to GET /assets and requires specific credentials, suggesting when authentication is needed. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like prismic_get_documents or prismic_get_shared_slices, nor does it mention any exclusions or prerequisites beyond the credentials.

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

prismic_get_refsA

Get repository refs from Content API root.

Refs are repository-level version pointers (for example master, preview, or release refs), not per-document refs. Use returned ref values with prismic_get_documents or prismic_get_document to read content for that version pointer. Efficiency tip: call once, cache the chosen ref, and pass it explicitly to subsequent read calls to avoid per-call implicit master-ref resolution.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it returns refs for use with other tools, implies it's a read operation (consistent with 'Get'), and includes an efficiency tip about caching to optimize performance. However, it doesn't mention potential errors, rate limits, or authentication needs, leaving some gaps.

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 well-structured and concise, with three focused paragraphs: the first states the purpose, the second clarifies what refs are and links to siblings, and the third provides an efficiency tip. Every sentence adds value without waste, and it's front-loaded with key information.

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

Completeness5/5

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

Given the tool's simplicity (0 parameters, no annotations, but has an output schema), the description is complete. It explains what the tool does, how to use the output, and includes performance advice. With an output schema present, it doesn't need to detail return values, making this description fully adequate for the 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?

The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately focuses on the tool's purpose and usage without redundant parameter details, earning a baseline score of 4 for zero-parameter tools.

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 specific action ('Get repository refs from Content API root') and distinguishes it from siblings by explaining what refs are (repository-level version pointers) and what they are not (per-document refs). It uses precise terminology like 'master', 'preview', or 'release refs' to clarify scope.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool (to get refs for version pointers) and how to use the output with sibling tools like 'prismic_get_documents' or 'prismic_get_document'. It also provides an efficiency tip on caching the ref to avoid per-call resolution, offering clear operational guidance.

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

prismic_get_releasesA

Get release refs from Content API root.

Returns non-master refs only, equivalent to filtering repository refs by isMasterRef != true. Use these refs with read tools (ref parameter) to inspect release content through Content API. Note: querying documents with a release ref returns a content snapshot at that ref, not only the release "planned items" shown in Prismic UI. Efficiency tip: pick the release ref once and reuse it across all read queries in the same analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it's a read-only operation (implied by 'Get' and usage with 'read tools'), returns a filtered subset of refs, and clarifies that querying with release refs returns a content snapshot (not just planned items). It also provides an efficiency tip. However, it doesn't mention potential errors, rate limits, or authentication needs, leaving some gaps.

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 front-loaded with the core purpose, followed by clarifications and usage tips in a logical flow. Every sentence adds value: the first states what it does, the second clarifies the output, the third explains usage, the fourth warns about content interpretation, and the fifth provides an efficiency tip. No wasted words.

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

Completeness5/5

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

Given the tool's complexity (simple read operation with 0 parameters), no annotations, and the presence of an output schema (which handles return values), the description is complete enough. It covers purpose, output filtering, usage context, behavioral nuances (content snapshot vs. planned items), and efficiency advice, leaving no significant gaps for the 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?

The tool has 0 parameters, with 100% schema description coverage. The description adds no parameter information, which is appropriate. A baseline of 4 is applied for zero-parameter tools, as there's no need to compensate for schema gaps, and the description focuses on usage context instead.

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 specific action ('Get release refs'), resource ('from Content API root'), and scope ('non-master refs only'), distinguishing it from sibling tools like prismic_get_refs (which presumably includes master refs). It provides a precise technical equivalent ('filtering repository refs by `isMasterRef != true`).

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool ('Use these refs with read tools (`ref` parameter) to inspect release content through Content API') and provides an efficiency tip for reuse. It implicitly distinguishes from alternatives by specifying it returns 'non-master refs only,' contrasting with tools that might handle master refs or other content types.

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

prismic_get_repository_contextA

Get active repository context for this MCP server.

Returns repository and API base URL metadata (no secrets) so agents can identify which Prismic repository they are operating on. Recommended first call in a session to confirm repository and auth posture before running read/write workflows.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it returns metadata (not secrets), serves as a session initialization step, and helps confirm repository and auth posture. However, it lacks details on potential errors, response format, or any side effects, though these are mitigated by the presence of an output schema.

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 and well-structured: the first sentence states the purpose, the second clarifies the return value, and the third provides usage guidelines. Each sentence adds clear value without any wasted words, making it easy to parse and understand quickly.

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

Completeness5/5

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

Given the tool's simplicity (0 parameters, no annotations, but with an output schema), the description is complete. It explains what the tool does, why to use it, and what to expect, covering all necessary context for an agent to invoke it correctly. The output schema will handle return value details, so no additional explanation is needed.

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 tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately focuses on the tool's purpose and usage without redundant parameter details, earning a high baseline score for this dimension.

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 specific action ('Get active repository context') and resource ('for this MCP server'), distinguishing it from sibling tools that perform CRUD operations on documents, types, slices, etc. It explicitly mentions what is returned ('repository and API base URL metadata') and what is not ('no secrets'), 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 Guidelines5/5

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

The description provides explicit guidance on when to use this tool: 'Recommended first call in a session to confirm repository and auth posture before running read/write workflows.' This clearly positions it as an initialization step distinct from the operational sibling tools, with a specific rationale for its use.

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

prismic_get_shared_sliceB

Get one Shared Slice model by ID.

Uses GET /slices/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
slice_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the HTTP method ('GET'), implying a read-only operation, but lacks details on authentication needs, rate limits, error handling, or what happens if the ID is invalid. This is a significant gap for a tool with zero annotation coverage.

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 and front-loaded, with two sentences that directly state the purpose and HTTP method. There is zero waste or redundancy, making it efficient and easy to parse for an AI agent.

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 tool's low complexity (one parameter) and the presence of an output schema, the description is somewhat complete but lacks depth. It covers the basic action and method but misses behavioral context (e.g., permissions, errors) and usage guidelines. With no annotations, it should do more to compensate, but the output schema reduces the need to explain return values.

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 description adds minimal meaning beyond the input schema, which has 0% description coverage. It implies 'slice_id' is used to fetch a specific shared slice, but doesn't clarify format, constraints, or examples. With one parameter and an output schema present, the baseline is 3, as the schema handles structure, but the description doesn't compensate for the lack of schema descriptions.

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 ('one Shared Slice model by ID'), making the purpose specific and understandable. It distinguishes from sibling 'prismic_get_shared_slices' (plural) by specifying retrieval of a single item, though it doesn't explicitly contrast with other siblings like 'prismic_insert_shared_slice' or 'prismic_update_shared_slice'.

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 doesn't mention prerequisites (e.g., needing a valid slice ID), exclusions, or comparisons to siblings like 'prismic_get_shared_slices' for multiple slices or 'prismic_get_document' for documents. The description only states what it does, not when to apply it.

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

prismic_get_shared_slicesB

List all Shared Slice models from Prismic Custom Types API.

Uses GET /slices.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states this is a list operation and mentions the API endpoint, but doesn't disclose important behavioral traits: whether this requires authentication, rate limits, pagination behavior, error conditions, or what format the output takes. The description is minimal and leaves critical operational context unspecified.

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 appropriately concise with two short sentences. The first sentence states the purpose clearly, and the second provides implementation detail. There's no wasted text, though the structure could be slightly improved by integrating the API endpoint information more naturally with the purpose statement.

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 that this is a read operation (implied by 'List') with 0 parameters and an output schema exists, the description is minimally adequate. However, with no annotations and multiple sibling tools, it should provide more context about when to use it and what behavioral constraints exist. The presence of an output schema means return values are documented elsewhere, but operational context is lacking.

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 tool has 0 parameters with 100% schema description coverage. The description doesn't need to explain parameters, and it appropriately doesn't mention any. The baseline for 0 parameters is 4, and the description doesn't incorrectly suggest parameters exist.

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: 'List all Shared Slice models from Prismic Custom Types API.' This specifies the verb ('List'), resource ('Shared Slice models'), and source ('Prismic Custom Types API'). However, it doesn't explicitly differentiate from sibling tools like 'prismic_get_shared_slice' (singular) or 'prismic_get_types', which might have overlapping functionality.

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. With multiple sibling tools like 'prismic_get_shared_slice' (singular) and 'prismic_get_types', there's no indication of when this list-all operation is appropriate versus more specific queries. The mention of 'Uses GET /slices' is technical implementation detail, not usage guidance.

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

prismic_get_typesA

Get repository custom types from Content API root.

Returns content type metadata from the Content API types map as normalized entries with id and label. Typical sequencing: call once, then iterate type ids with prismic_get_documents(type=..., page_size=1) when you only need counts or existence checks.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses that it returns 'normalized entries with `id` and `label`' and suggests 'call once' (implying it's a read-only, non-destructive operation that can be cached). However, it doesn't mention potential rate limits, authentication needs, or error handling, leaving some behavioral aspects unclear.

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 front-loaded with the core purpose, followed by return details and usage sequencing. Every sentence adds value: the first states what it does, the second specifies the output format, and the third provides practical guidance. No wasted words, and structure is logical for tool understanding.

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

Completeness5/5

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

Given 0 parameters, no annotations, but an output schema exists (so return values are documented elsewhere), the description is complete enough. It covers purpose, output semantics, and usage context, which is sufficient for a simple read operation. No gaps are evident for this level of complexity.

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?

There are 0 parameters, and schema description coverage is 100% (though schema is empty). The description doesn't need to explain parameters, but it implicitly confirms no inputs are required by not mentioning any. Baseline for 0 params is 4, as it appropriately avoids redundant parameter details.

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 ('Get repository custom types') and resource ('from Content API root'), specifying it returns 'content type metadata from the Content API `types` map as normalized entries with `id` and `label`.' It distinguishes from siblings like `prismic_get_custom_type` (singular) and `prismic_get_custom_types` (plural, but likely similar) by focusing on the API root and normalized metadata.

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

Usage Guidelines5/5

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

It explicitly provides usage guidance: 'Typical sequencing: call once, then iterate type ids with `prismic_get_documents(type=..., page_size=1)` when you only need counts or existence checks.' This tells when to use it (for initial type retrieval) and how to combine with a sibling tool (`prismic_get_documents`) for follow-up actions.

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

prismic_insert_custom_typeC

Insert a new Custom Type model.

Uses POST /customtypes/insert. Pass a full Custom Type JSON model (including id, label, repeatable, and json tabs/fields).

ParametersJSON Schema
NameRequiredDescriptionDefault
custom_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is an insertion but doesn't cover permissions, side effects, error handling, or response behavior. The mention of the API endpoint adds minimal context, leaving significant gaps in understanding how the tool behaves.

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 brief and front-loaded with the main action, using two sentences efficiently. However, the second sentence could be more structured, and some information (like the API endpoint) might be redundant if not contextualized, slightly reducing 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?

Given the tool has an output schema, the description doesn't need to explain return values. However, with no annotations, 0% schema coverage, and a mutation operation, the description is incomplete—it lacks behavioral details, usage context, and full parameter guidance, making it only minimally adequate.

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 0%, so the description must compensate. It specifies that the parameter should be a 'full Custom Type JSON model' and lists some fields ('id', 'label', 'repeatable', 'json tabs/fields'), adding meaning beyond the generic schema. However, it doesn't fully detail all required properties or constraints, leaving some ambiguity.

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 ('Insert a new Custom Type model') and the resource ('Custom Type'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'prismic_update_custom_type' or 'prismic_insert_shared_slice', which would require more specific context about when to use each.

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 like 'prismic_update_custom_type' or 'prismic_insert_shared_slice'. It mentions the API endpoint but doesn't clarify prerequisites, dependencies, or typical scenarios for insertion versus update operations.

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

prismic_insert_shared_sliceC

Insert a new Shared Slice model.

Uses POST /slices/insert. Pass a full Shared Slice JSON model.

ParametersJSON Schema
NameRequiredDescriptionDefault
shared_sliceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but provides minimal behavioral insight. It mentions the HTTP method ('POST') and that a 'full JSON model' is required, but lacks details on permissions, side effects, error handling, or response format, which are critical for a mutation tool.

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 brief and front-loaded with the main action, using three sentences efficiently. However, the second sentence about the HTTP method could be integrated more smoothly, and some redundancy exists between 'Insert' and 'POST'.

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 tool's complexity (mutation with nested objects) and lack of annotations, the description is incomplete. It mentions the output schema exists but doesn't explain return values or error cases. For a creation tool, more context on success/failure outcomes is needed.

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 0%, but the description adds some value by specifying 'Pass a full Shared Slice JSON model', clarifying the parameter's purpose. However, it doesn't detail the JSON structure, required fields, or examples, leaving significant gaps in understanding.

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 ('Insert') and resource ('Shared Slice model'), making the purpose understandable. It distinguishes from siblings like 'prismic_update_shared_slice' by specifying 'new', but doesn't explicitly contrast with all alternatives like 'prismic_get_shared_slice'.

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. While 'new' implies creation rather than updating, there's no mention of prerequisites, constraints, or specific scenarios for insertion versus other operations like 'prismic_insert_custom_type'.

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

prismic_update_custom_typeA

Update an existing Custom Type model.

Uses POST /customtypes/update. Pass the full updated Custom Type JSON model. Typical sequence:

  1. prismic_get_custom_type

  2. edit model JSON

  3. prismic_update_custom_type

  4. prismic_get_custom_type to verify schema

ParametersJSON Schema
NameRequiredDescriptionDefault
custom_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It mentions the HTTP method (POST) and implies this is a mutation operation. However, it doesn't disclose important behavioral traits like authentication requirements, rate limits, error conditions, or what happens to existing data. The typical sequence is helpful but doesn't fully compensate for missing behavioral details.

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 well-structured and efficiently written. The first sentence states the core purpose, followed by technical details (HTTP endpoint), then practical guidance (typical sequence). Every sentence serves a clear purpose with zero wasted words. The bullet-point sequence is particularly effective for readability.

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 this is a mutation tool with no annotations, 1 parameter (0% schema coverage), nested objects, and an output schema exists, the description does reasonably well. It explains the parameter's purpose and provides a usage sequence. However, for a mutation operation, it should ideally mention permissions, side effects, or validation rules. The output schema reduces the need to describe return values.

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 0%, so the description must compensate. It clarifies that the 'custom_type' parameter should contain 'the full updated Custom Type JSON model' and references getting the model first via 'prismic_get_custom_type'. This adds meaningful context beyond the bare schema, but doesn't explain the structure or required fields of the JSON model. Baseline would be lower without this guidance.

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 resource ('Custom Type model'), making the purpose immediately understandable. It distinguishes from siblings like 'prismic_insert_custom_type' (create new) and 'prismic_get_custom_type' (read). However, it doesn't specify what aspects of the model can be updated or the scope of changes.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool through a typical sequence (get → edit → update → verify). It clearly distinguishes from 'prismic_insert_custom_type' by specifying this is for updating existing models, not creating new ones. The sequence provides practical context for proper usage.

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

prismic_update_shared_sliceC

Update an existing Shared Slice model.

Uses POST /slices/update. Pass the full updated Shared Slice JSON model.

ParametersJSON Schema
NameRequiredDescriptionDefault
shared_sliceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but provides minimal behavioral insight. It states the tool updates a model and uses a POST endpoint, but doesn't disclose permissions, side effects, rate limits, or response format. This is inadequate for a mutation tool with zero annotation coverage.

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 brief and front-loaded, with two sentences that directly state the action and parameter. There's no wasted text, but it could be more structured with bullet points or examples for better 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?

Given complexity (mutation tool with nested objects) and no annotations, the description is incomplete. It mentions the output schema exists but doesn't explain return values or error handling. For a tool updating a shared slice, more context on behavior and parameters is needed.

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 0%, so the description must compensate. It adds that the parameter is 'the full updated Shared Slice JSON model', giving basic semantics beyond the schema's generic object type. However, it doesn't detail structure, fields, or constraints, leaving significant gaps.

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 resource ('existing Shared Slice model'), making the purpose evident. It distinguishes from siblings like 'prismic_insert_shared_slice' by specifying 'existing' versus creation, though it doesn't explicitly name alternatives. This is specific but could be more distinct.

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 mentions the HTTP method ('POST /slices/update') but doesn't clarify prerequisites, such as needing an existing slice, or contrast with tools like 'prismic_update_custom_type'. Usage is implied by the action but lacks explicit context.

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

prismic_upsert_documentA

Create/update one document in the Prismic Migration API.

Important behavior:

  • This writes to the Migration workflow (Migration UI/release flow).

  • New/updated documents may not be visible via Content API master reads immediately (or at all) until they are included in the readable release flow/published in Prismic.

  • To read back migrated content before publish, fetch a release ref via prismic_get_releases/prismic_get_refs, then query read tools with that ref (and provide PRISMIC_CONTENT_API_TOKEN when required).

  • Use dry_run=true to validate payload/endpoint choice without writing.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentYes
dry_runNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Since no annotations are provided, the description carries the full burden of behavioral disclosure. It does this exceptionally well by explaining: 1) This writes to the Migration workflow, 2) New/updated documents may not be immediately visible via Content API, 3) How to read back migrated content before publish, and 4) The dry_run option for validation. This covers critical behavioral aspects including write operations, visibility delays, and safety mechanisms.

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 perfectly structured and concise. It starts with the core purpose, then provides 'Important behavior' in bullet points, each addressing critical information. Every sentence earns its place by adding essential context about the tool's behavior, limitations, and usage patterns. No wasted words or redundant information.

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

Completeness5/5

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

Given that this is a write operation with no annotations, 2 parameters (one complex nested object), and an output schema exists, the description provides excellent contextual completeness. It explains the write behavior, visibility constraints, how to work with the migration workflow, and includes safety guidance. The presence of an output schema means the description doesn't need to explain return values, allowing it to focus on behavioral 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?

With 0% schema description coverage, the description must compensate for the lack of parameter documentation. It mentions the 'dry_run' parameter and explains its purpose ('to validate payload/endpoint choice without writing'), which adds valuable semantic context. However, it doesn't describe the 'document' parameter or its structure, leaving the agent to rely solely on the schema for understanding this complex nested object.

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 purpose: 'Create/update one document in the Prismic Migration API.' It specifies the exact action (create/update), the resource (document), and the target system (Prismic Migration API). This distinguishes it from sibling tools like prismic_get_document (read) and prismic_upsert_documents (plural).

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool versus alternatives. It explains that writes go to the Migration workflow, not directly to the Content API, and specifies how to read back migrated content before publishing (using prismic_get_releases/prismic_get_refs). It also mentions the dry_run parameter for validation without writing, which helps the agent understand when to use this mode.

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

prismic_upsert_documentsA

Batch create/update documents in the Prismic Migration API.

Important behavior:

  • This writes to the Migration workflow (Migration UI/release flow).

  • Batch-created/updated documents may not be visible via Content API master reads until release/publish workflow makes them readable.

  • For read-back before publish, use a release ref with read tools (ref parameter), plus PRISMIC_CONTENT_API_TOKEN if repo settings require authenticated reads.

  • Supports dry_run and fail_fast for safer execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentsYes
fail_fastNo
dry_runNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing critical behavioral traits: it writes to Migration workflow, documents may not be visible via Content API until release/publish, and supports dry_run and fail_fast for safer execution. It doesn't mention rate limits or authentication requirements, but covers key operational constraints.

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 well-structured with a clear purpose statement followed by an 'Important behavior' section. Every sentence adds value: the first states the core function, and subsequent sentences explain workflow implications, read-back alternatives, and safety features. No wasted words.

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 tool's complexity (batch write operation with 3 parameters, no annotations, but with output schema), the description is mostly complete. It covers purpose, usage context, and key behaviors, but lacks details on authentication, error handling, or response format, though some of this may be in the output 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 0%, so the description must compensate. It mentions dry_run and fail_fast parameters, explaining they are 'for safer execution,' which adds useful context beyond the schema's titles. However, it doesn't detail the documents array structure or DocumentWrite model, leaving some parameter semantics undocumented.

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 performs 'Batch create/update documents in the Prismic Migration API,' specifying both the action (create/update) and resource (documents) with the batch qualifier. It distinguishes from sibling tools like prismic_upsert_document (singular) and prismic_get_documents (read-only).

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use alternatives: it states that for read-back before publish, use read tools with a release ref and PRISMIC_CONTENT_API_TOKEN. It also clarifies this writes to the Migration workflow, not directly to the Content API, helping differentiate from other write operations.

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

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific Prismic resources and operations. The naming convention (prismic_ + verb + noun) combined with detailed descriptions eliminates ambiguity between similar-sounding tools like prismic_get_document vs prismic_get_documents or prismic_insert_custom_type vs prismic_update_custom_type.

Naming Consistency5/5

All tools follow a perfect prismic_verb_noun pattern with consistent snake_case throughout. The naming is predictable and systematic, making it easy to understand what each tool does based on its name alone.

Tool Count4/5

With 18 tools, the count is slightly high but reasonable for a comprehensive content management system interface. The tools cover multiple domains (documents, custom types, shared slices, media, refs, releases) which justifies the number, though some consolidation might be possible.

Completeness5/5

The toolset provides complete CRUD coverage for all major Prismic entities: documents (get, list, upsert), custom types (get, list, insert, update), shared slices (get, list, insert, update), media (add, list), plus essential supporting operations for refs, releases, and repository context. There are no obvious gaps for content management workflows.

Maintenance

ActivityInactive
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

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/rahulpowar/prismic-content-mcp'

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