Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

com.writavo/cms

NPM · @WRITAVO/MCP-SERVER · SCANNED AUG 15

Draft, edit, organise, schedule and publish a Writavo Site content from any AI assistant.

Available components

+4 this week 74 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 30 of 96 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 7 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability84
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 5600 tokens (~136/item across 41 items; 38 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage95
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 85% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @writavo/mcp-server

# add to Claude Code
claude mcp add com-writavo-cms -- npx -y @writavo/mcp-server
# add to Codex CLI
codex mcp add com-writavo-cms -- npx -y @writavo/mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-writavo-cms": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@writavo/mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-writavo-cms --command npx --arg -y --arg @writavo/mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  com-writavo-cms:
    command: "npx"
    args: ["-y", "@writavo/mcp-server"]
// mcp.json
{
  "mcpServers": {
    "com-writavo-cms": {
      "command": "npx",
      "args": [
        "-y",
        "@writavo/mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 15 Aug 26 +4
    • Stability: unverified → 0.23 functional
  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 8 Aug 26 +31
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Schema quality: unverified → 100 functional
    • MCP protocol: unverified → pass functional
    • Tool coverage: unverified → 100 functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 85 functional
    • First check of Schema quality: excellent functional
  • 7 Aug 26 39

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 15 Aug 2026 · Analysed npm/@writavo/mcp-server@0.1.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm
Dependencies 96 packages
Packages resolved 96
Stale 30
Tree resolution Complete
MCP tools · 38 exposed · ~5,422 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
cancel_article_schedule ~96

Cancel a scheduled publish. Returns the article to `status: draft` and clears `scheduled_publish_at`. The content is untouched. Calling this on an article that is not scheduled is a no-op that returns the current state. Changes content on the customer's Site. Nothing becomes public: publishing is always a separate call. Needs a secret key (wv_sk_) carrying the articles:write scope.

NameTypeReqDescription
idstringyesA UUID.

No output schema declared.

No examples provided.

create_article ~326

Create an article. Creates an article at `status: draft`. Always. There is no request field that can make it public, and supplying `status` is a validation error rather than a silent ignore, so a client written against a different CMS fails loudly instead of quietly leaving content unpublished. Changes content on the customer's Site. Nothing becomes public: publishing is always a separate call. Needs a secret key (wv_sk_) carrying the articles:write scope.

NameTypeReqDescription
author_idstring|nullA UUID. Send null to clear it.
category_idstring|nullA UUID. Send null to clear it.
comparisonSend null to clear it.
contentstring|nullMarkdown. Send null to clear it.
excerptstring|nullSend null to clear it.
faqsSend null to clear it.
featured_image_urlstring|nullSend null to clear it.
format_idstring|nullA UUID. Send null to clear it.
howto_stepsSend null to clear it.
key_takeawaysSend null to clear it.
seo_descriptionstring|nullSend null to clear it.
seo_keywordsSend null to clear it.
seo_titlestring|nullSend null to clear it.
slugstring|nullDerived from `title` when omitted. Supply it if the URL matters. Send null to clear it.
tag_idsarray
titlestring|nullSend null to clear it.

No output schema declared.

No examples provided.

create_author ~152

Create an author. `is_ai_generated` marks a persona rather than a real person. It defaults to `true` because that is what the generation pipeline creates. Set it to `false` for a human byline, and be accurate about it: it is what your disclosure copy keys off. Changes content on the customer's Site. Nothing becomes public: publishing is always a separate call. Needs a secret key (wv_sk_) carrying the authors:write scope.

NameTypeReqDescription
avatar_urlstring|nullSend null to clear it.
biostring|nullSend null to clear it.
is_ai_generatedboolean
is_defaultboolean
namestringyes

No output schema declared.

No examples provided.

create_category ~101

Create a category. `slug` is unique within the Site. A collision returns `409 SLUG_CONFLICT` rather than silently appending a suffix, so your URLs are never a surprise. Changes content on the customer's Site. Nothing becomes public: publishing is always a separate call. Needs a secret key (wv_sk_) carrying the taxonomy:write scope.

NameTypeReqDescription
namestringyes
slugstringDerived from `name` when omitted.

No output schema declared.

No examples provided.

create_tag ~85

Create a tag. `slug` is unique within the Site. A collision returns `409 SLUG_CONFLICT`. Changes content on the customer's Site. Nothing becomes public: publishing is always a separate call. Needs a secret key (wv_sk_) carrying the taxonomy:write scope.

NameTypeReqDescription
namestringyes
slugstringDerived from `name` when omitted.

No output schema declared.

No examples provided.

delete_article ~184

Delete an article. Permanent. The row and its tag assignments are removed, and if the article was published its URL starts returning 404 on your blog once the cache is purged. PERMANENT: this deletes content from the customer's Site. There is no trash and no undo. Ask the user before calling this, and pass confirm: true only once they have agreed. Needs a secret key (wv_sk_) carrying the articles:write scope.

NameTypeReqDescription
confirmbooleanSet to true only after the user has explicitly agreed to this action. Calling without it returns a description of what would happen and changes nothing.
idstringyesA UUID.
if_matchstringThe ETag from your last read of this object. Send it and the write is refused if somebody else changed the object in the meantime, rather than silently overwriting their work.

No output schema declared.

No examples provided.

delete_author ~135

Delete an author. Articles by this author are not deleted. Their `author_id` becomes `null`, so they stay published and lose their byline. PERMANENT: this deletes content from the customer's Site. There is no trash and no undo. Ask the user before calling this, and pass confirm: true only once they have agreed. Needs a secret key (wv_sk_) carrying the authors:write scope.

NameTypeReqDescription
confirmbooleanSet to true only after the user has explicitly agreed to this action. Calling without it returns a description of what would happen and changes nothing.
idstringyesA UUID.

No output schema declared.

No examples provided.

delete_category ~142

Delete a category. Articles in this category are not deleted. Their `category_id` becomes `null`, so they stay published and simply lose their category. Removing a category never removes content. PERMANENT: this deletes content from the customer's Site. There is no trash and no undo. Ask the user before calling this, and pass confirm: true only once they have agreed. Needs a secret key (wv_sk_) carrying the taxonomy:write scope.

NameTypeReqDescription
confirmbooleanSet to true only after the user has explicitly agreed to this action. Calling without it returns a description of what would happen and changes nothing.
idstringyesA UUID.

No output schema declared.

No examples provided.

delete_media ~118

Delete a media asset. Removes the catalog row and the stored bytes. PERMANENT: this deletes content from the customer's Site. There is no trash and no undo. Ask the user before calling this, and pass confirm: true only once they have agreed. Needs a secret key (wv_sk_) carrying the media:write scope.

NameTypeReqDescription
confirmbooleanSet to true only after the user has explicitly agreed to this action. Calling without it returns a description of what would happen and changes nothing.
idstringyesA UUID.

No output schema declared.

No examples provided.

delete_tag ~124

Delete a tag. The tag is removed from every article that carried it. No article is deleted. PERMANENT: this deletes content from the customer's Site. There is no trash and no undo. Ask the user before calling this, and pass confirm: true only once they have agreed. Needs a secret key (wv_sk_) carrying the taxonomy:write scope.

NameTypeReqDescription
confirmbooleanSet to true only after the user has explicitly agreed to this action. Calling without it returns a description of what would happen and changes nothing.
idstringyesA UUID.

No output schema declared.

No examples provided.

get_api_docs ~123

Read the Writavo Content API reference: what the API does, how keys and scopes work, every endpoint, every error code and what to do about each one. Generated from the published OpenAPI specification, so it is exactly what the API implements. No API key required. Sections: overview, authentication, errors, meta, articles, categories, tags, authors, media, pipeline, api-keys, webhooks, tools, all.

NameTypeReqDescription
sectionstringWhich part to read. Defaults to "overview". Use "all" for the whole reference.

No output schema declared.

No examples provided.

get_article ~100

Read one article. Returns the full article including `content`. A publishable key may only read an article at `status: published`; anything else returns 404, for the same no disclosure reason that governs cross Site access. Read only. Nothing is changed. Needs a key carrying the articles:read scope.

NameTypeReqDescription
fieldsstringComma separated field allow list. Omit to receive every readable field.
idstringyesA UUID.

No output schema declared.

No examples provided.

get_author ~38

Read one author. Read only. Nothing is changed. Needs a key carrying the authors:read scope.

NameTypeReqDescription
idstringyesA UUID.

No output schema declared.

No examples provided.

get_category ~38

Read one category. Read only. Nothing is changed. Needs a key carrying the taxonomy:read scope.

NameTypeReqDescription
idstringyesA UUID.

No output schema declared.

No examples provided.

get_content_types ~79

List content types. The article formats available to this Site. A format is an SEO blueprint (How-To, Listicle, Versus and so on) that shapes how the generator structures an article, and that you may set on any article via `format_id`. Read only. Nothing is changed. Needs a key carrying the meta:read scope.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_media ~44

Read one media asset. Read only. Nothing is changed. Needs a secret key (wv_sk_) carrying the media:read scope.

NameTypeReqDescription
idstringyesA UUID.

No output schema declared.

No examples provided.

get_pipeline_queue ~181

Read the content queue. What the engine plans to write, highest priority first. Each item is a topic or keyword with a source: `manual` if a person added it, `content_gap` if gap analysis found it, `competitor_seed` if it came from a competitor page. Read only. Nothing is changed. Needs a secret key (wv_sk_) carrying the pipeline:read scope.

NameTypeReqDescription
cursorstringThe opaque cursor from `data.next_cursor` on the previous page. Do not parse it or construct one; its encoding is not part of this contract and will change.
limitintegerPage size. Values above the maximum are clamped rather than rejected, so a client asking for a thousand rows gets a hundred and a `next_cursor`.
sourcestring
statusstring

No output schema declared.

No examples provided.

get_pipeline_status ~102

Read one pipeline run. The outcome of a run. `status: partial` with an `error_summary` is what you see when a run stopped early, whether because credits ran out, the spend cap was reached, or a vendor call failed. `items_succeeded` tells you what you did get. Read only. Nothing is changed. Needs a secret key (wv_sk_) carrying the pipeline:read scope.

NameTypeReqDescription
idstringyesA UUID.

No output schema declared.

No examples provided.

get_site_info ~72

Read Site information. Public facing information about the Site your key belongs to: its display name, the domain its blog is served from, its locale and its timezone. Scheduling times are interpreted against this timezone when no offset is supplied. Read only. Nothing is changed. Needs a key carrying the meta:read scope.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_tag ~38

Read one tag. Read only. Nothing is changed. Needs a key carrying the taxonomy:read scope.

NameTypeReqDescription
idstringyesA UUID.

No output schema declared.

No examples provided.

get_usage ~90

Read plan limits, usage and balances. What your plan allows, what you have used in the current period, and what you can still spend. Read this before a pipeline run if you want to fail fast rather than handle a 402, and read it after a run to see the balance move. Read only. Nothing is changed. Needs a secret key (wv_sk_) carrying the meta:read scope.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_articles ~362

List articles. Cursor paginated, newest updated first. Read only. Nothing is changed. Needs a key carrying the articles:read scope.

NameTypeReqDescription
author_idstringA UUID.
category_idstringA UUID.
cursorstringThe opaque cursor from `data.next_cursor` on the previous page. Do not parse it or construct one; its encoding is not part of this contract and will change.
fieldsstringComma separated field allow list. Any field of the Article schema may be named. Omit for the default projection, which is: `id, status, title, slug, excerpt, featured_image_url, category_id, author_i…
limitintegerPage size. Values above the maximum are clamped rather than rejected, so a client asking for a thousand rows gets a hundred and a `next_cursor`.
orderstring
slugstringExact slug match. Slugs are unique within a Site, so this returns at most one article.
statusarrayFilter by status. Repeat the parameter to match several. A publishable key may only ask for `published`, and any other value is rejected with `403 INSUFFICIENT_SCOPE`.
tag_idstringReturn only articles carrying this tag. A UUID.
updated_sincestringReturn only articles updated at or after this instant. This is the incremental sync parameter: store the greatest `updated_at` you have seen and pass it back next time. ISO 8601 with an offset, for e…

No output schema declared.

No examples provided.

list_authors ~150

List authors. The byline roster for the Site. Read only. Nothing is changed. Needs a key carrying the authors:read scope.

NameTypeReqDescription
cursorstringThe opaque cursor from `data.next_cursor` on the previous page. Do not parse it or construct one; its encoding is not part of this contract and will change.
fieldsstringComma separated field allow list. Default projection: `id, name, bio, avatar_url, is_ai_generated, is_default, created_at`.
limitintegerPage size. Values above the maximum are clamped rather than rejected, so a client asking for a thousand rows gets a hundred and a `next_cursor`.

No output schema declared.

No examples provided.

list_categories ~155

List categories. Every category on the Site, alphabetically. Categories are a closed taxonomy: an article has exactly one, or none. Read only. Nothing is changed. Needs a key carrying the taxonomy:read scope.

NameTypeReqDescription
cursorstringThe opaque cursor from `data.next_cursor` on the previous page. Do not parse it or construct one; its encoding is not part of this contract and will change.
fieldsstringComma separated field allow list. Default projection: `id, name, slug, article_count`.
limitintegerPage size. Values above the maximum are clamped rather than rejected, so a client asking for a thousand rows gets a hundred and a `next_cursor`.

No output schema declared.

No examples provided.

list_media ~167

List media assets. The media library, newest first. Read only. Nothing is changed. Needs a secret key (wv_sk_) carrying the media:read scope.

NameTypeReqDescription
bucketstring
cursorstringThe opaque cursor from `data.next_cursor` on the previous page. Do not parse it or construct one; its encoding is not part of this contract and will change.
fieldsstringComma separated field allow list. Default projection: `id, bucket, url, file_name, mime_type, size_bytes, width, height, alt_text, created_at`.
limitintegerPage size. Values above the maximum are clamped rather than rejected, so a client asking for a thousand rows gets a hundred and a `next_cursor`.

No output schema declared.

No examples provided.

list_pipeline_runs ~158

List pipeline runs. Recent engine activity for the Site, newest first. One row per stage invocation, so a single logical run appears as several rows as work moves through the stages. Read only. Nothing is changed. Needs a secret key (wv_sk_) carrying the pipeline:read scope.

NameTypeReqDescription
cursorstringThe opaque cursor from `data.next_cursor` on the previous page. Do not parse it or construct one; its encoding is not part of this contract and will change.
limitintegerPage size. Values above the maximum are clamped rather than rejected, so a client asking for a thousand rows gets a hundred and a `next_cursor`.
stagestring
statusstring

No output schema declared.

No examples provided.

list_tags ~151

List tags. Every tag on the Site, alphabetically. Tags are cross cutting: an article may carry many. Read only. Nothing is changed. Needs a key carrying the taxonomy:read scope.

NameTypeReqDescription
cursorstringThe opaque cursor from `data.next_cursor` on the previous page. Do not parse it or construct one; its encoding is not part of this contract and will change.
fieldsstringComma separated field allow list. Default projection: `id, name, slug, article_count`.
limitintegerPage size. Values above the maximum are clamped rather than rejected, so a client asking for a thousand rows gets a hundred and a `next_cursor`.

No output schema declared.

No examples provided.

publish_article ~124

Publish an article. Makes the article public immediately, at `status: published`. PUBLIC: this makes the article publicly visible on the customer's own live site, where search engines and readers will see it. Ask the user before calling this, and pass confirm: true only once they have agreed. Needs a secret key (wv_sk_) carrying the articles:write scope.

NameTypeReqDescription
confirmbooleanSet to true only after the user has explicitly agreed to this action. Calling without it returns a description of what would happen and changes nothing.
idstringyesA UUID.

No output schema declared.

No examples provided.

schedule_article ~219

Schedule an article. Moves the article to `status: scheduled` and records when it should go live. A cron publishes it within a few minutes of that time, whether or not the AI pipeline is switched on for your Site. PUBLIC: this makes the article publicly visible on the customer's own live site, where search engines and readers will see it. Ask the user before calling this, and pass confirm: true only once they have agreed. Needs a secret key (wv_sk_) carrying the articles:write scope.

NameTypeReqDescription
confirmbooleanSet to true only after the user has explicitly agreed to this action. Calling without it returns a description of what would happen and changes nothing.
idstringyesA UUID.
scheduled_publish_atstringyesISO 8601. Include an offset. If you omit one it is read in the Site's timezone, which you can get from `GET /site`. ISO 8601 with an offset, for example 2026-09-01T09:00:00Z.

No output schema declared.

No examples provided.

trigger_pipeline_run ~167

Request a pipeline run. This is the only billable operation in this API. COSTS MONEY: this spends the organisation's credit balance. It is the only billable tool here, and it is charged per unit of work the engine completes. Ask the user before calling this, and pass confirm: true only once they have agreed. Needs a secret key (wv_sk_) carrying the pipeline:run scope.

NameTypeReqDescription
confirmbooleanSet to true only after the user has explicitly agreed to this action. Calling without it returns a description of what would happen and changes nothing.
max_articlesintegerAn upper bound on how many articles this run may produce. Your own safety valve on top of the platform spend cap. Omit to use the Site's configured batch size.

No output schema declared.

No examples provided.

unpublish_article ~87

Unpublish an article. Takes the article off the web and returns it to `status: draft`. The URL starts returning 404 on your blog once the cache is purged. Changes content on the customer's Site. Nothing becomes public: publishing is always a separate call. Needs a secret key (wv_sk_) carrying the articles:write scope.

NameTypeReqDescription
idstringyesA UUID.

No output schema declared.

No examples provided.

update_article ~377

Update an article. A partial update. Only the fields you send are touched. Send `null` to clear a nullable field; omit it to leave it alone. Changes content on the customer's Site. Nothing becomes public: publishing is always a separate call. Needs a secret key (wv_sk_) carrying the articles:write scope.

NameTypeReqDescription
author_idstring|nullA UUID. Send null to clear it.
category_idstring|nullA UUID. Send null to clear it.
comparisonSend null to clear it.
contentstring|nullMarkdown. Send null to clear it.
excerptstring|nullSend null to clear it.
faqsSend null to clear it.
featured_image_urlstring|nullSend null to clear it.
format_idstring|nullA UUID. Send null to clear it.
howto_stepsSend null to clear it.
idstringyesA UUID.
if_matchstringThe ETag from your last read of this object. Send it and the write is refused if somebody else changed the object in the meantime, rather than silently overwriting their work.
key_takeawaysSend null to clear it.
seo_descriptionstring|nullSend null to clear it.
seo_keywordsSend null to clear it.
seo_titlestring|nullSend null to clear it.
slugstring|nullChanging the slug of a published article changes its live URL and nothing is redirected for you. The old URL starts returning 404. Send null to clear it.
tag_idsarrayFull replacement, not a merge. Send `[]` to clear.
titlestring|nullSend null to clear it.

No output schema declared.

No examples provided.

update_author ~191

Update an author. Setting `is_default: true` clears the flag on whichever author held it, because a Site has at most one default byline. Setting it to `false` on the current default leaves the Site with none. Changes content on the customer's Site. Nothing becomes public: publishing is always a separate call. Needs a secret key (wv_sk_) carrying the authors:write scope.

NameTypeReqDescription
avatar_urlstring|nullSend null to clear it.
biostring|nullSend null to clear it.
idstringyesA UUID.
if_matchstringThe ETag from your last read of this object. Send it and the write is refused if somebody else changed the object in the meantime, rather than silently overwriting their work.
is_ai_generatedboolean
is_defaultboolean
namestring

No output schema declared.

No examples provided.

update_category ~147

Update a category. Renaming is safe. Changing `slug` changes the category archive URL on your blog, and nothing is redirected for you, so change it only if you accept the broken link. Changes content on the customer's Site. Nothing becomes public: publishing is always a separate call. Needs a secret key (wv_sk_) carrying the taxonomy:write scope.

NameTypeReqDescription
idstringyesA UUID.
if_matchstringThe ETag from your last read of this object. Send it and the write is refused if somebody else changed the object in the meantime, rather than silently overwriting their work.
namestring
slugstring

No output schema declared.

No examples provided.

update_media ~143

Update a media asset. Only `alt_text` is editable. The bytes are immutable: to replace an image, upload a new one and repoint whatever referenced the old one. Changes content on the customer's Site. Nothing becomes public: publishing is always a separate call. Needs a secret key (wv_sk_) carrying the media:write scope.

NameTypeReqDescription
alt_textstring|nullSend null to clear it.
idstringyesA UUID.
if_matchstringThe ETag from your last read of this object. Send it and the write is refused if somebody else changed the object in the meantime, rather than silently overwriting their work.

No output schema declared.

No examples provided.

update_tag ~111

Update a tag. Changes content on the customer's Site. Nothing becomes public: publishing is always a separate call. Needs a secret key (wv_sk_) carrying the taxonomy:write scope.

NameTypeReqDescription
idstringyesA UUID.
if_matchstringThe ETag from your last read of this object. Send it and the write is refused if somebody else changed the object in the meantime, rather than silently overwriting their work.
namestring
slugstring

No output schema declared.

No examples provided.

upload_media ~276

Upload an image to the Site's media library and return the asset with a usable url, which you can then set as an article's featured_image_url. Give it either a local file path or a public source_url. It drives the whole three step upload for you: reserve, transfer the bytes, register the asset. Changes content on the customer's Site. Nothing becomes public: an asset is only visible where you attach it. Needs a secret key (wv_sk_) carrying the media:write scope.

NameTypeReqDescription
alt_textstringAccessibility text. Worth sending. It is what screen readers announce and what search engines read, and there is no way to generate it for you.
bucketstringWhich library the asset belongs to. Defaults to blog-images.
content_typestringThe image type. Guessed from the filename when omitted. It is a hint either way: the API reads the real type from the bytes and refuses anything that is not an allowed image.
file_namestringThe filename to store it under. Taken from the path or URL when omitted.
file_pathstringAbsolute path to an image on this machine. Give either this or source_url.
source_urlstringPublic https URL to fetch the image from. Give either this or file_path.

No output schema declared.

No examples provided.

verify_api_key ~69

Verify a key. The cheapest possible authenticated call. Returns the kind of key you presented and the scopes it carries. Use it to confirm credentials during setup, and as a liveness probe. It touches no content, so it is exempt from the write rate limit. Read only. Nothing is changed.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.