Skip to main content
Glama

@web-resurrect/mcp

npm version AI Skill

MCP (Model Context Protocol) server for the Web Resurrect API. Lets AI assistants like Claude resurrect expired domains: fetch archived URLs, scrape content, rewrite with AI, generate images, and publish to WordPress.

🤖 AI Agent Skill (full pipeline)

The unified web-resurrect skill covers the entire workflow from A to Z (project creation → SEO enrichment → Wayback scraping → rewriting → AI categorization → WordPress publishing → redirects), with all known tips and pitfalls. It works equally well with this MCP server as it does with the wr CLI, and contains a complete mapping table between the two modes.

Compatible with Claude Code, Codex, Cursor, Cline, Copilot, OpenCode, Windsurf and 40+ other agents via npx skills:

# Install globalement pour tous tes projets
npx skills add MattiooFR/web-resurrect-skill -g

# Ou uniquement pour le projet courant
npx skills add MattiooFR/web-resurrect-skill

Once installed, simply ask your agent:

"Resurrect the domain example.com"

And it will automatically follow the complete pipeline using the mcp__web_resurrect__* MCP tools from this server.

Skill source: github.com/MattiooFR/web-resurrect-skill

Related MCP server: WordPress MCP Server

Quick start

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "web-resurrect": {
      "command": "npx",
      "args": ["-y", "@web-resurrect/mcp"],
      "env": {
        "WEB_RESURRECT_API_KEY": "wr_live_xxx"
      }
    }
  }
}

Claude Code

claude mcp add web-resurrect -e WEB_RESURRECT_API_KEY=wr_live_xxx -- npx -y @web-resurrect/mcp

Local development

cd packages/mcp
npm install
npm run build
WEB_RESURRECT_API_KEY=wr_live_xxx node dist/index.js

Environment variables

Variable

Required

Default

Description

WEB_RESURRECT_API_KEY

Yes

—

API key (wr_live_xxx). Get one from your dashboard.

WEB_RESURRECT_BASE_URL

No

https://web-resurrect.com

API base URL (for self-hosted or staging).

Available tools

Credits

  • get_credits — Get current credit balance and account info

Projects

  • create_project — Create a project for an expired domain (starts URL fetching)

  • list_projects — List all projects with page counts

  • get_project — Get project details and stats

  • delete_project — Delete a project and all its pages

Pages

  • list_pages — List pages with status/source/search filters, sorting, pagination. Each page exposes a source field: wayback (default, scrapeable from archive) or haloscan (discovered via Haloscan, no snapshot — Wisewand-rewrite only).

  • get_page — Get full page details (scrape, rewrite, SEO, WordPress status)

Scraping

  • scrape_page — Scrape a page from the Wayback Machine (1 credit)

  • scrape_bulk — Scrape multiple pages (1 credit each, max 100)

SEO Enrichment

  • enrich_project — Enrich with Haloscan (free) and/or Majestic (10 credits)

Rewriting

  • rewrite_page — Rewrite a page (basic default 1 credit, add wisewand=true for premium 5 credits / 1 with own key). Wisewand mode also accepts Haloscan-origin pages (no scrape required).

  • rewrite_bulk — Rewrite multiple pages (same options, max 50). In Wisewand mode, mixes scraped + Haloscan-origin pages; use list_pages with status='rewritable_wisewand' to fetch everything rewritable in one call, or status='haloscan' to target only Haloscan-origin pages.

Image Generation

  • generate_image — Generate AI featured image (1 credit)

  • generate_image_bulk — Generate images for multiple pages (1 credit each, max 50)

Categorization

  • categorize_page — AI-suggest a WordPress category for a page (free)

WordPress

  • wordpress_plugin_check — Check if WP plugin is installed

  • wordpress_configure — Configure WordPress credentials (plugin or basic_auth)

  • wordpress_validate — Validate WordPress connection

  • wordpress_categories — List WordPress categories

  • wordpress_authors — List WordPress authors

  • wordpress_publish — Publish a page to WordPress (free, original URLs preserved in plugin mode)

  • wordpress_publish_bulk — Publish multiple pages (free, supports plugin and Basic Auth modes)

  • export_redirects — Export URL mappings to file (only needed for Basic Auth mode)

Jobs

  • get_job — Get job status, progress, and result

  • wait_for_job — Block until a job reaches a terminal state (server-side polling). USE THIS AFTER EVERY ASYNC CALL for autonomous pipelines — no more manual polling loops.

  • list_jobs — List recent jobs with filters

  • cancel_job — Cancel a pending job

Overview

  • get_project_overview — Single-call pipeline status: pending/scraped/rewritten/published counts, Wisewand pipeline state, SEO totals. Replaces several list_pages calls.

Typical workflow

  1. create_project with a domain -> get job_id

  2. get_job to wait for URL fetching to complete

  3. enrich_project with Haloscan for SEO data

  4. list_pages sorted by total_traffic to find best pages

  5. scrape_bulk the top pages

  6. rewrite_bulk the scraped pages

  7. generate_image_bulk for rewritten pages

  8. wordpress_configure your WordPress site

  9. wordpress_publish_bulk to publish everything (original URLs preserved in plugin mode, URL mappings pushed automatically)

  10. Non-published URLs automatically 301 to homepage (via plugin catch-all)

Credit costs

Action

Cost

Create project + URL fetching

Free

Haloscan enrichment

Free

Majestic enrichment (backlinks)

10 credits

Scrape a page

1 credit

Rewrite (basic)

1 credit

Rewrite (Wisewand)

5 credits (1 with own key)

Image generation

1 credit

AI categorization

Free

WordPress publish

Free

Available Tools

33 tools
cancel_jobA

Cancel a pending or processing job. Credits reserved but not yet used will be refunded.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob UUID to cancel

TDQS

A4.2/5.0
Behavior3/5

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

Discloses that unused credits are refunded. No annotations, so this adds value, but lacks details on idempotency, auth, or errors for invalid states.

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

Conciseness5/5

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

Two sentences, no superfluous words. Front-loaded with action and condition. Ideal conciseness.

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 a single parameter, no output schema, and no annotations, the description adequately covers purpose, state condition, and credit refund. Could mention error cases but overall sufficient.

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?

Description adds context that the job must be pending or processing, which is beyond the schema's 'Job UUID to cancel'. Schema coverage is 100%, so baseline is 3; the added state condition justifies a 4.

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

Purpose5/5

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

Clear verb 'cancel', specific resource 'pending or processing job', and mentions credit refund. Distinct from sibling tools.

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?

Explicitly states it applies to pending or processing jobs. Implies not for completed/failed, but no explicit alternatives or when-not.

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

categorize_pagesA

AI-suggest WordPress categories for 1–50 pages based on their content. Free. Saves the assigned category to each page in the database. PREREQUISITE: Configure the category-to-author mapping with wordpress_set_mapping BEFORE categorizing. To categorize a full project: use list_pages with status='scraped' or status='rewritten' to get page IDs, then call this tool in batches of 50.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idsYesPage UUIDs (1 to 50)
wordpress_domainYesWordPress domain (e.g. example.com)

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description carries the burden. It discloses that it saves to the database (destructive effect), is free, AI-suggested (potential latency), and has a prerequisite. Missing details on error handling or response, but covers key behaviors well.

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?

Concise three sentences: purpose and side effect, prerequisite, and workflow. Front-loaded with key information, no unnecessary 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?

Covers purpose, side effect, prerequisite, workflow, and batching limit. No output schema, but description adequately prepares the agent for mutation tool usage. Minor gaps in error conditions but acceptable.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions. Description adds context about content-based categorization but doesn't significantly enhance parameter understanding beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it AI-suggests WordPress categories for 1-50 pages and saves the assigned category to the database. It distinguishes from siblings like list_pages and wordpress_categories by specifying the action and 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?

Provides explicit prerequisite (configure mapping with wordpress_set_mapping) and a workflow for full projects using list_pages before calling this tool in batches of 50. This guides the agent on when to use and alternatives.

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

create_projectA

Create a new project for an expired domain. Automatically starts fetching archived URLs from the Wayback Machine. Returns a job_id to track URL fetching progress.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesExpired domain to analyze (e.g. example.fr)
nameNoProject name (defaults to domain)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description must disclose behaviors. It does so by stating automatic URL fetching from Wayback Machine and returning a job_id for tracking. This provides key behavioral insight beyond the tool name alone.

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

Conciseness5/5

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

Three concise sentences with no fluff. The first sentence states the main purpose, the second adds the automatic behavior, and the third explains the return value. Information is front-loaded and every sentence earns its place.

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

Completeness4/5

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

Given the tool has 2 parameters, no output schema, and no annotations, the description adequately covers purpose, automatic behavior, and return value. It lacks mention of error conditions or prerequisites (e.g., domain ownership) but is otherwise complete.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds no new meaning beyond the schema's parameter descriptions. The baseline of 3 is appropriate as no extra value is provided.

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

Purpose5/5

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

The description clearly states the action (create a new project), the specific resource (expired domain), and the automatic behavior (fetching archived URLs from Wayback Machine), which distinguishes it from other project-related tools like delete_project or update_project.

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 specifies the context: 'for an expired domain,' implying when to use it. It does not explicitly mention when not to use or alternatives, but the context is clear enough for an experienced agent.

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

delete_projectA

Delete a project and all its pages (cascade). This action is irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject UUID

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description must carry the burden. It explicitly states the irreversible nature and the cascade deletion of all pages. This goes beyond the input schema and provides critical safety information. However, it could mention potential side effects like associated jobs.

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

Conciseness5/5

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

The description is extremely concise with two sentences. Every word adds value: the verb 'Delete', the scope 'project and all its pages', the critical note 'cascade', and the irreversibility warning. 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 is a destructive delete operation with no output schema, the description covers the essential aspects: what is deleted (project + pages cascade) and that it is irreversible. It is complete for a deletion tool, though it could briefly mention permission requirements.

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

Parameters3/5

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

The input schema already describes the project_id field with full coverage (100%). The tool description does not add additional semantics beyond confirming that the parameter identifies a project. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Delete a project') and specifies the cascade effect ('all its pages'). It is distinct from other sibling tools like create_project, update_page, etc. The irreversibility is highlighted, providing a strong sense of purpose.

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

Usage Guidelines3/5

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

The description implies when to use the tool (to permanently remove a project) but lacks explicit guidance on when not to use it or alternatives. The irreversibility warning is helpful but does not constitute full usage guidance.

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

enrich_projectA

Enrich a project with SEO data. BEST PRACTICE: ALWAYS use both sources ["haloscan", "majestic"] together to get the full picture — Haloscan provides traffic estimates and keyword rankings (free), Majestic provides backlink profiles (10 credits). Having both datasets is essential to make informed decisions about which pages are worth resurrecting. Without Majestic, you miss backlink data which is critical for SEO value assessment.

🔴 GOLDEN RULE OF AN AUTONOMOUS RESURRECTION: enrich_project is what makes the rest of the pipeline efficient. Right after this completes, EVERY scrape_bulk and rewrite_bulk call must pass has_data='any' (traffic OR backlinks) or has_data='haloscan' (traffic OR keywords only). Without that filter you'll scrape thousands of zero-value pages and waste the user's credits. A page with 0 traffic, 0 keywords, AND 0 backlinks will never rank in SERP again — there is no point resurrecting it.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject UUID
sourcesNoData sources — RECOMMENDED: ["haloscan", "majestic"] for complete SEO data. Haloscan=free (traffic+keywords), Majestic=10 credits (backlinks)

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Explains data sources (free vs credit cost) and that both datasets are essential. Does not explicitly state if the operation is read-only or modifies state, but 'enrich' implies adding data.

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?

Description is verbose but every sentence adds value for decision-making. Front-loaded with main purpose and best practice. Could be slightly more concise, but not wasteful.

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 (2 params, no output schema, no annotations), the description is very complete. Covers purpose, usage guidelines, parameter semantics, and downstream integration.

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 coverage is 100% with descriptions for both parameters. Description adds significant value by explaining the recommendation to use both sources together, the cost of Majestic, and what each source provides.

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

Purpose5/5

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

Clearly states 'Enrich a project with SEO data', specifying verb and resource. Provides context about two data sources, distinguishing it from other tools on the server. No sibling overlap.

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?

Explicitly recommends using both sources together and explains why. Includes a 'golden rule' that ties this tool to downstream scrape_bulk and rewrite_bulk calls, with explicit filtering advice.

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

export_redirectsA

Export URL mappings (old URLs → new WordPress URLs) for all published pages. In plugin mode, URL mappings are pushed automatically during publish (posts are served at original URLs). This tool is only needed for Basic Auth mode to generate import files for the Redirection plugin (John Godley) or Rank Math. IMPORTANT: Save the output to a file on the user's computer.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject UUID
formatNoExport format: 'redirection' (John Godley plugin JSON, default) or 'rankmath' (Rank Math import format)

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It describes the export operation (read-only) and the output formats for Redirection plugin or Rank Math. The important note about saving to file adds behavioral context. However, it does not explicitly state that it does not modify any data or require specific permissions.

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

Conciseness5/5

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

Three sentences, each serving a distinct purpose: purpose, usage context, and important note. No extraneous information. Front-loaded with the core action.

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?

For a tool with 2 parameters and no output schema, the description provides all necessary context: what is exported, when to use, formats available, and a critical usage instruction. No gaps identified.

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?

Input schema has 2 parameters with 100% coverage. The description adds value by stating the default format ('redirection') and explaining the purpose of each format in context of import files. This exceeds the schema descriptions which are more generic.

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 exports URL mappings from old URLs to new WordPress URLs for all published pages. It distinguishes from sibling tools like 'push_redirects' by explaining that in plugin mode mappings are pushed automatically, so this tool is only for Basic Auth mode to generate import files.

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?

Explicitly states when to use the tool (only for Basic Auth mode to generate import files) and when not needed (plugin mode, where mappings are pushed automatically). Also mentions the output should be saved to a file, giving clear operational guidance.

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

generate_imageA

Generate an AI featured image for a page. Costs 1 credit. The page must be rewritten first. Returns a job_id. IMPORTANT: Always generate a featured image after rewriting — a page without an image looks incomplete and unprofessional when published on WordPress.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesPage UUID (must be rewritten first)

TDQS

A4.3/5.0
Behavior3/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 the tool costs 1 credit and returns a job_id (asynchronous). However, it does not explain what happens if the page already has an image, how to retrieve the generated image (e.g., via get_job), or any potential rate limits. This is adequate but incomplete.

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

Conciseness5/5

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

Three sentences with zero waste. First sentence states purpose, second adds cost and prerequisite, third emphasizes importance. Front-loaded and efficient.

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

Completeness3/5

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

The tool is simple (one parameter, no output schema), but the description omits details about the asynchronous nature: how to poll for completion (via get_job or wait_for_job siblings) and what the final result contains (image URL). Given the low complexity, this is a notable gap.

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

Parameters4/5

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

Schema coverage is 100% and the schema description already says 'Page UUID (must be rewritten first)'. The description reinforces this prerequisite and adds context about cost and job_id. Since schema does most of the work, the description adds moderate extra value.

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

Purpose5/5

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

The description clearly states the verb (generate), resource (AI featured image), and scope (for a page). It also distinguishes from sibling tools like generate_image_bulk by noting this is for a single page, and mentions prerequisite (page must be rewritten first) which differentiates from rewrite_page.

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?

Explicitly states 'Always generate a featured image after rewriting' and explains why ('a page without an image looks incomplete and unprofessional'). The description also gives a clear prerequisite ('The page must be rewritten first'), guiding the AI agent on when to invoke this tool.

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

generate_image_bulkA

Generate AI featured images for multiple pages. Costs 1 credit per page. Max 50 pages. Returns a job_id. IMPORTANT: Always generate images after rewriting — pages without featured images look incomplete on WordPress.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idsYesArray of page UUIDs (must be rewritten first)

TDQS

A4.2/5.0
Behavior4/5

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

Discloses cost (1 credit/page), max 50 pages, return value (job_id), and ordering requirement. No annotations to contradict. Could detail async behavior or side effects, but sufficient for a bulk operation.

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

Conciseness5/5

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

Two concise sentences plus a crucial note. Front-loaded key information without extraneous text.

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?

Covers cost, limit, ordering, return value. Missing reference to monitoring job via get_job or wait_for_job, but overall complete for its complexity.

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

Parameters3/5

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

Schema coverage is 100% and already explains the parameter ('must be rewritten first'). Description adds no additional semantic value beyond the schema.

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

Purpose5/5

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

Clearly states 'Generate AI featured images for multiple pages', specifying verb and resource. Differentiates from sibling 'generate_image' by explicitly targeting multiple pages via the 'page_ids' array parameter.

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

Usage Guidelines4/5

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

Provides explicit condition: 'Always generate images after rewriting'. Also mentions cost and limit. Does not explicitly contrast with 'generate_image' for single-page use, but context makes it clear.

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

get_creditsA

Get current credit balance, email, and account info

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations exist, so the description must convey behavioral traits. It indicates a read operation ('Get') and lists the data returned, but does not disclose authentication requirements, rate limits, or potential side effects. For a simple retrieval, this is minimally adequate.

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

Conciseness5/5

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

The description is a single sentence with no unnecessary words. It is front-loaded with the verb and clearly conveys the purpose without redundancy.

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

Completeness3/5

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

Given no output schema and no parameters, the description lists three types of information returned, but does not specify format, nesting, or any additional behavioral details. For a simple tool, this is adequate but could be enhanced with return type hints or caution about data freshness.

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 zero parameters, so schema coverage is 100%. The description goes beyond the schema by listing the specific information returned (balance, email, account info), providing additional meaning. Baseline for zero-parameter tools is 4.

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?

Description clearly states the tool retrieves 'current credit balance, email, and account info'. It uses a specific verb ('Get') and specifies the resource, distinguishing it from sibling tools like get_job or get_page.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is provided. However, as a simple read operation with no parameters, the usage is fairly self-evident, and there are no obvious alternative tools for this specific information.

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

get_jobA

Get the status, progress, result, and credit usage of an async job

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob UUID

TDQS

A3.8/5.0
Behavior3/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 that the tool retrieves data (status, progress, result, credit usage), which is a read operation. However, it does not mention error handling, authentication needs, or rate limits, leaving 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 a single sentence that is front-loaded with the key action and resource. It is concise with no redundancy, efficiently conveying the tool's purpose and output.

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 simplicity (one parameter, no output schema, no annotations), the description covers the essential purpose and return fields. Minor omission: it does not mention that the job may not exist or that job_id is required (already in schema). Overall, sufficiently complete for the context.

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

Parameters3/5

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

Schema description coverage is 100% (job_id described as 'Job UUID'), so the description adds no new meaning beyond the schema. It does not elaborate on job_id format or behavior (e.g., what happens for invalid IDs). Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'get' and the resource 'async job', listing specific aspects returned (status, progress, result, credit usage). It distinguishes from siblings like 'wait_for_job' by focusing on retrieval without blocking.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives like 'wait_for_job' or 'list_jobs'. Usage is implied from the context (given a job ID, retrieve its details), but no exclusions or prerequisites are mentioned.

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

get_pageA

Get full page details: scrape status, rewrite status, SEO data (traffic, keywords, backlinks), WordPress publish status, and featured image

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesPage UUID

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided. Description lists returned data but does not disclose behavioral traits such as idempotency, error conditions, or authentication requirements. Being a getter, read-only is implied, but not explicitly stated.

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?

Single concise sentence with verb-first structure. Every word adds value, no redundancy. Ideal for quick scanning.

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

Completeness4/5

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

With no output schema, description lists major data groups returned. Sufficient for a simple get operation, though could mention if additional fields exist.

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?

Input schema has 100% coverage on the single parameter (page_id: UUID). Description adds no extra meaning beyond the schema's description, so baseline 3 applies.

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

Purpose5/5

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

Description clearly states 'Get full page details' and enumerates specific data categories (scrape status, rewrite status, SEO data, WordPress status, featured image). This differentiates it from sibling tools like get_page_content or list_pages.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance given. Context implies use when full details are needed, but no alternatives or exclusions are mentioned.

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

get_page_contentA

Fetch the rewritten content (title + HTML + meta) for a page. Returns source='wisewand' or 'openai'. Use this when you need to inspect or export the rewrite before publishing.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesPage UUID (must be rewritten)

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description must carry the behavioral burden. It indicates the tool is a read-only fetch operation (implied by 'fetch') and describes the return structure. It does not disclose any potential side effects or authorization needs, but for a simple fetch tool this is acceptable.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the action and return information. Every sentence provides value with no redundancy or fluff.

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?

The tool is simple with one parameter and no output schema. The description explains what is returned (title, HTML, meta, source) and the use case, making it fully complete for an agent to understand and invoke correctly.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter 'page_id' is fully described in the schema. The description does not add any additional meaning beyond the schema, which is acceptable given the coverage.

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

Purpose5/5

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

The description clearly states the tool fetches rewritten content (title, HTML, meta) and specifies the return includes a source field with possible values 'wisewand' or 'openai'. It distinguishes itself from siblings like 'get_page' (raw content) and 'rewrite_page' (modification).

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 says 'Use this when you need to inspect or export the rewrite before publishing.' This provides clear guidance on appropriate usage and implies alternatives for other scenarios.

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

get_projectA

Get project details including stats (page counts, scrape/rewrite/publish progress)

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject UUID

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses read-only nature and returned stats, but lacks details on potential errors, permissions, or response format.

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?

Single sentence, front-loaded with verb and resource, no wasted words.

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?

Adequate for a simple read tool with one parameter, but lacks usage guidance and behavior details that would improve completeness given sibling tools and no output schema.

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

Parameters3/5

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

Schema covers 100% of parameters with 'Project UUID' description. Description adds no extra meaning for the parameter beyond the schema.

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

Purpose5/5

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

The description clearly states the tool retrieves project details with specific stats like page counts and progress, distinguishing it from siblings like get_page or get_project_overview.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives (e.g., get_project_overview). Usage is implied but not clarified.

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

get_project_overviewA

Single-call pipeline status for a project: counts for pending / scraped / scrape_failed / scrape_empty / rewritten / wisewand_pending / wisewand_completed / wisewand_failed / published pages, plus SEO totals (traffic, keywords, backlinks) and scrape/rewrite/publish progress percentages. Use this at any decision point to know what stage the project is at without making multiple list_pages calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject UUID

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description adds value by detailing the output (counts, SEO totals, percentages). Does not explicitly state it is read-only, but the nature of a 'get' tool implies no side effects.

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

Conciseness5/5

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

Single sentence, front-loaded with purpose, and lists necessary details efficiently without 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?

No output schema exists, but the description sufficiently explains the return values (counts, SEO totals, percentages), making it contextually complete for an agent.

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

Parameters3/5

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

Schema coverage is 100% and the schema already describes project_id adequately. The description does not add semantic value beyond what the schema provides.

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 returns a single-call pipeline status with specific counts and SEO totals, and explicitly distinguishes itself from making multiple list_pages calls.

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

Usage Guidelines4/5

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

Provides explicit guidance to use at any decision point to avoid multiple list_pages calls, but does not mention any situations where this tool should not be used.

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

list_jobsC

List recent jobs with optional status and type filters

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by job status
typeNoFilter by job type (scrape, rewrite, publish, enrich, etc.)
pageNoPage number (default 1)
limitNoItems per page (default 20)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It only says 'List recent jobs' but lacks details on pagination, ordering, side effects, or what 'recent' means.

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?

Single sentence is concise with no redundancy. However, it could be structured with more detail without losing conciseness.

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

Completeness2/5

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

With 4 parameters and no output schema, the description is too brief. It omits return format, pagination details, and error handling, making it incomplete for effective use.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description adds the filter context but no new semantic meaning beyond the schema.

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

Purpose4/5

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

The description clearly states the action ('List') and resource ('jobs') with scope 'recent' and optional filters. However, it does not distinguish from siblings like 'get_job' or 'wait_for_job'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No mention of prerequisites or exclusions.

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

list_pagesA

List pages of a project with optional filters, search, sorting, and pagination. TIP: After enrichment, sort by total_traffic (desc) or backlinks_count (desc) to identify the most valuable pages to resurrect first. Each page carries a source field: 'wayback' (default, scrapeable from the archive) or 'haloscan' (discovered via Haloscan, no Wayback snapshot — Wisewand-rewrite only, cannot be scraped).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject UUID
statusNoFilter by page status. 'empty' = scraped but no content on Wayback Machine. 'failed' = scrape error. 'haloscan' = Haloscan-origin pages awaiting Wisewand rewrite (no Wayback snapshot). 'rewritable_wisewand' = every page eligible for Wisewand rewrite (scraped + Haloscan-origin + scrape-failed + empty — synthetic fallback).
sourceNoFilter by page origin. 'wayback' = discovered via the Wayback Machine CDX API (default, scrapeable). 'haloscan' = discovered via Haloscan with no Wayback snapshot (Wisewand-rewrite only).
has_dataNoOnly pages with SEO data: haloscan (traffic>0), majestic (backlinks>0), any (either)
searchNoSearch by URL or title
sortNoSort field
orderNoSort order (default desc)
pageNoPage number (default 1)
limitNoItems per page (default 50, max 100)
exclude_systemNoExclude legal/info pages — contact, mentions-legales, CGV, CGU, privacy, a-propos, about, sitemap. RECOMMENDED for autonomous flows (scrape/rewrite/publish). These pages are kept in the DB (flag excluded_from_redirects=true) so they stay reachable on the site but shouldn't be resurrected.

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided, so description bears the burden. It details behavioral traits: source field meanings, status semantics (e.g., 'empty' vs 'failed'), and pagination. However, it lacks information on authentication, rate limits, or error handling.

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

Conciseness5/5

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

Two sentences plus a TIP and source explanation—every sentence adds value. No redundancy, well front-loaded with purpose.

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?

Covers filters, sorting, pagination, and source/status meanings. However, no output schema is provided, and the description does not explain the return structure (e.g., fields returned per page). A bit incomplete for a list 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?

Schema description coverage is 100% (baseline 3). The description adds value by explaining source field behaviors, status enum nuances (e.g., 'rewritable_wisewand' includes synthetic fallback), and provides sorting tips that go beyond the schema.

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

Purpose5/5

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

The description clearly states 'List pages of a project with optional filters, search, sorting, and pagination.' It uses a specific verb ('list') and resource ('pages'), and distinguishes from siblings like 'get_page' or 'get_project_overview.'

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

Usage Guidelines4/5

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

Provides a TIP for sorting after enrichment to identify valuable pages, and explains the 'source' field's implications (wayback vs haloscan). Offers context for filter usage, but doesn't explicitly state when not to use this tool versus alternatives.

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

list_projectsB

List all projects with their page counts

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
limitNoItems per page (default 20, max 100)

TDQS

B3.4/5.0
Behavior3/5

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

The description implies a read-only operation, but with no annotations, it does not explicitly state safety, idempotency, or any side effects. It also omits details on pagination or access control, which are partially covered by the input 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 a single, clear sentence with no unnecessary words. It is highly concise and front-loaded, though it could be structured more with additional details.

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

Completeness2/5

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

Given the absence of output schema and annotations, the description is too brief. It does not explain the return format, ordering, or whether the list is exhaustive or paginated (though schema implies pagination). More context is needed for agents to use it effectively.

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

Parameters3/5

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

Schema coverage is 100%, so the parameters are fully described in the schema. The description adds no additional meaning or examples beyond what the schema provides.

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 a specific verb ('List') and resource ('projects') and includes the key output field ('page counts'). It distinguishes from siblings like get_project and get_project_overview by indicating it returns a list of all projects.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., get_project for a single project). The description does not provide any usage context or prerequisites, leaving the agent to infer.

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

push_redirectsA

Push URL redirects to the WordPress plugin. Requires the Web Resurrect plugin (not Basic Auth). Two modes:

  1. WITHOUT urls parameter: pushes ALL project pages at once. Published pages are served at their original URLs. Non-published pages get a 301 redirect (to homepage by default, or to redirect_to if specified). WARNING: This replaces all existing redirects in the plugin. Make sure pages like /contact, /mentions-legales, /politique-de-confidentialite etc. are excluded from the project or already published before running this, otherwise they will be redirected to the homepage too.

  2. WITH urls parameter: only redirects the specified URLs (added individually, does NOT replace existing redirects). Useful to selectively redirect specific old URLs.

Call this after publishing to ensure all old URLs are properly handled.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject UUID
wordpress_domainYesTarget WordPress domain
urlsNoSpecific URLs or paths to redirect (e.g. ["/old-page.html", "/category/sub/"]). If omitted, all non-published pages are redirected.
redirect_toNoCustom redirect target URL (default: homepage). Example: "https://example.com/new-landing/"

TDQS

A4.8/5.0
Behavior5/5

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

Details the two modes, replacement vs additive behavior, default redirect target, and prerequisite plugin requirement. Fully discloses side effects and constraints without 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?

Well-organized with headings, bullet points, and warnings. Every sentence adds value, and the structure makes the modes easy to follow.

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?

Covers all necessary behavioral aspects for a complex tool: prerequisites, side effects of each mode, and recommended usage timing. No output schema, but the description is sufficient for correct invocation.

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?

Adds significant meaning to each parameter: explains the role of urls in mode selection, default behavior for redirect_to, and the project_id/wordpress_domain as identifiers. Schema coverage is 100% but description enriches understanding.

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

Purpose5/5

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

Clearly states it pushes URL redirects to the WordPress plugin, describes two distinct modes, and distinguishes from other tools by specifying its unique action.

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

Usage Guidelines4/5

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

Provides explicit instructions for when to use each mode, warns about replacing existing redirects, and suggests calling after publishing. Lacks explicit comparison to sibling tools like export_redirects, but is otherwise strong.

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

rewrite_bulkA

Rewrite multiple pages in one job. Basic mode (1 credit/page) covers SCRAPED pages only. Wisewand mode (wisewand=true, 5 credits/page or 1 with own key) covers scraped pages + Haloscan-origin + scrape-FAILED/EMPTY pages (automatic synthetic-content fallback from slug + keywords). Max 50 pages per batch. Returns a job_id. Response breakdown: haloscan_count + wayback_count + scrape_failed_count.

🔴 ABSOLUTE RULE: Only rewrite pages that had SEO value before. Always pre-filter with list_pages(has_data='any') (traffic OR backlinks) or has_data='haloscan' (traffic OR keywords) and pass those page_ids here. Rewriting zero-value pages is a credit waste — they will never rank again.

🚨 USER-DECISION RULE for Haloscan-only / scrape-failed / empty pages: these pages cannot be rewritten in basic mode. The ONLY option is Wisewand (5 credits/page shared, 1 with own key, 2-4 HOURS duration). DO NOT auto-include them — surface the count + total credit cost + duration to the user FIRST and ask whether to (a) include them via Wisewand or (b) skip. Find them with list_pages(status='haloscan' OR status='failed' OR status='empty', has_data='any').

TIP: to queue a Wisewand rewrite of every eligible page in a project (after user approval), call list_pages with status='rewritable_wisewand' AND has_data='any' first — that combination keeps the SEO-valuable pages and includes Haloscan-only + scrape-failed ones so no high-traffic page is left behind.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idsYesArray of page UUIDs to rewrite. In basic mode, pages must be scraped. In Wisewand mode, scraped AND Haloscan-origin pages are both accepted.
wisewandNoUse Wisewand for premium SEO-optimized rewrite (5 credits/page, 1 with own key). REQUIRED to include Haloscan-origin pages.
wisewand_api_keyNoYour own Wisewand API key (implies wisewand=true, reduces cost to 1 credit/page)
article_paramsNoDefault Wisewand parameters applied to every page (type, lang, country, etc.). For Haloscan-origin pages, per-page AI prep fills in missing fields like additional_information/target_keyword.

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description fully explains behavior: modes, credit costs, max batch size, response breakdown (job_id, counts), and target page types. It could explicitly mention that rewriting modifies pages, but the detail is high.

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 lengthy but well-structured with headings, bullet points, and clear sections. Every sentence adds value for a complex tool, though minor trimming could improve conciseness.

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 no output schema, it fully explains the return value (job_id and counts). Covers prerequisites, modes, credit costs, edge cases, and provides actionable tips, making it complete for a tool with 4 parameters and diverse modes.

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?

All parameters are described in the schema (100% coverage), and the description adds context: explains wisewand logic (mutual exclusivity with api_key), and article_params as defaults with per-page AI prep. This adds value beyond the schema.

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

Purpose5/5

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

The description explicitly states 'Rewrite multiple pages in one job' and distinguishes between basic and Wisewand modes, clearly differentiating it from sibling tools like rewrite_page (single page) and scrape_bulk (scraping).

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?

Provides explicit rules: pre-filter with list_pages(has_data='any') to avoid waste, decision rule for Haloscan-only/scrape-failed pages requiring user approval for Wisewand mode, and clear conditions for each mode. This is exemplary usage guidance.

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

rewrite_pageA

Rewrite a page. By default uses basic rewriting on a scraped page (1 credit). Add wisewand=true for premium SEO-optimized content (5 credits, 1 credit with your own Wisewand API key). WISEWAND MODE AUTO-FALLS-BACK to synthetic content (slug + ranked keywords) when the page has no scraped content — this covers (a) Haloscan-origin pages with no Wayback snapshot AND (b) Wayback pages where scrape FAILED or returned EMPTY. Basic mode still requires a scraped page. Returns a job_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesPage UUID. Must be scraped first for basic mode. For Wisewand mode, Haloscan-origin pages (not scraped) are also accepted.
wisewandNoUse Wisewand for premium SEO-optimized rewrite (5 credits, 1 with own key). REQUIRED for Haloscan-origin pages.
instructionsNoCustom rewrite instructions (basic mode only)
subjectNoCustom subject / main keyword (Wisewand mode). Overrides AI extraction. For Haloscan-origin pages, skips the OpenAI prep call.
article_paramsNoAdditional Wisewand parameters (type, lang, country, target_keyword, keywords_secondary, additional_information, etc.). For Haloscan pages these fill in after the AI prep.
wisewand_api_keyNoYour own Wisewand API key (implies wisewand=true, reduces cost to 1 credit)

TDQS

A3.9/5.0
Behavior4/5

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

Discloses key behavioral traits: auto-fallback to synthetic content, credit costs, and that it returns a `job_id` indicating async processing. No annotations provided, so description carries full burden but is adequate.

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 informative and front-loaded with the main action. Each sentence adds value, though slightly long. Could be trimmed without losing meaning.

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 (6 params, nested objects, no output schema), the description covers core behavior, fallback, and credit costs. Lacks error conditions or rate limits, but overall complete for usage decisions.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds context about mode interactions and credit costs, but the schema already provides detailed parameter descriptions. Minimal additional value beyond schema.

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

Purpose4/5

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

The description clearly states it rewrites a page and distinguishes between basic and Wisewand modes. However, it could explicitly differentiate from the sibling `rewrite_bulk` for single-page vs bulk use.

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

Usage Guidelines4/5

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

Provides clear guidelines on when to use basic vs Wisewand mode, including credit costs and requirements. Also explains fallback behavior for Haloscan-origin pages. Does not explicitly contrast with alternative tools like `rewrite_bulk`.

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

scrape_bulkA

Scrape multiple pages at once. Costs 1 credit per page. Max 100 pages. Returns a job_id. IMPORTANT: Scraping is the mandatory first step — pages must be scraped before rewriting or generating images. You can either pass page_ids directly, or pass project_id to auto-select pending pages (optionally filtered by has_data).

🔴 ABSOLUTE RULE: NEVER scrape an entire project blindly. AFTER enrich_project completes, ALWAYS pass has_data='any' (traffic OR backlinks, recommended) or has_data='haloscan' (traffic OR keywords only) so you ONLY scrape pages that had real SEO value before the domain expired. A page with 0 traffic, 0 keywords, AND 0 backlinks will never rank again — scraping it is a credit waste.

The right autonomous flow is:

  1. enrich_project(project_id, sources=["haloscan","majestic"])

  2. wait_for_job

  3. scrape_bulk(project_id, has_data='any', limit=100) ← THE FILTER IS NON-OPTIONAL

  4. wait_for_job

  5. Repeat scrape_bulk until no more pending pages with SEO data.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idsNoArray of page UUIDs to scrape
project_idNoProject UUID — auto-selects pending pages (use instead of page_ids)
has_dataNo🔴 ALMOST ALWAYS REQUIRED for autonomous flows. Only scrape pages with SEO data. Requires project_id. haloscan=traffic>0 OR keywords (the user's primary signal), majestic=backlinks>0, any=either. Skipping this filter means scraping pages with 0 SEO value — credit waste.
limitNoMax pages to scrape when using project_id (default 50)
content_typeNoContent extraction type (default: article)
exclude_systemNoSkip legal/info pages (contact, mentions-legales, CGV, privacy, a-propos, ...) when auto-selecting via project_id. Default true — autonomous flows almost never want to scrape those.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries full burden. It discloses credit cost (1 per page), max pages (100), async operation (returns job_id), mandatory status in workflow, and behavior of both input modes. It also warns about credit waste and provides a critical rule for filtering, making the tool's behavior very transparent.

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 detailed and slightly verbose, but every sentence adds value. It is well-structured: first sentence states purpose, then key constraints, then a critical rule, then a step-by-step flow. Could be more concise but remains focused and front-loaded with essential info.

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 (6 params, async, credit costs, workflow dependency) and no output schema, the description covers input parameters, workflow integration, costs, filtering rules, and expected behavior. It even references sibling tools like enrich_project and wait_for_job. All information needed for correct usage is present.

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

Parameters4/5

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

Schema coverage is 100% with descriptions, but the description adds significant value: explains the purpose and default of has_data (almost always required), limit default, exclude_system default and rationale. It also clarifies the relationship between page_ids and project_id. Baseline 3, plus extra context yields 4.

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 scrapes multiple pages at once, notes costs, limits, and return type (job_id). It distinguishes between two usage modes (page_ids vs project_id) and establishes scraping as the mandatory first step in a workflow, differentiating it from sibling tools like scrape_page and rewrite_bulk.

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?

Provides explicit when-to-use guidance: scraping is mandatory before rewriting/image generation. It outlines a complete autonomous flow with steps (enrich_project -> wait -> scrape_bulk with filter). Warns against blind scraping and specifies the has_data filter as non-optional. Also hints at alternative approaches via page_ids vs project_id.

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

scrape_pageA

Scrape a single page from the Wayback Machine archive. Costs 1 credit. Returns a job_id for async tracking. IMPORTANT: Scraping is the mandatory first step before rewriting or generating images — a page must be scraped before any other processing.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesPage UUID to scrape
content_typeNoContent extraction type (default: article)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description discloses important behaviors: costs 1 credit, returns a job_id for async tracking, and is a prerequisite. No contradictions.

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

Conciseness5/5

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

Three sentences with no waste: first states purpose, second gives cost/return, third gives usage context. Well front-loaded.

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

Completeness4/5

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

The description covers cost, async return, and prerequisite, which is sufficient for a simple 2-parameter tool with no output schema.

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

Parameters3/5

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

Schema coverage is 100% with adequate descriptions for both parameters. The description adds no new parameter-specific meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Scrape a single page from the Wayback Machine archive' with a specific verb and resource, and distinguishes from the sibling 'scrape_bulk' for bulk scraping.

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

Usage Guidelines4/5

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

The description explicitly says 'Scraping is the mandatory first step before rewriting or generating images', providing clear context on when to use this tool, though it does not explicitly exclude other scenarios.

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

update_pageA

Update a page's WordPress category, author, or post link. Use this to (a) manually set category/author after categorization, (b) attach a manually-created WordPress post back to the page via wordpress_post_id — essential when the publish pipeline was bypassed but redirects export still needs the mapping. Set any field to null to clear.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesPage UUID
category_idNoWordPress category ID to assign (null to clear)
category_nameNoWordPress category name (set alongside category_id)
author_idNoWordPress author ID to assign (null to clear)
wordpress_post_idNoManually link this WR page to an existing WordPress post ID. Sets posted_to_wordpress=true automatically. Null to clear.
wordpress_post_urlNoWordPress post URL (goes with wordpress_post_id). Null to clear.

TDQS

A4.4/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 that fields can be cleared by setting to null and that setting wordpress_post_id automatically sets posted_to_wordpress=true. It doesn't mention side effects or idempotency, but the key behaviors are covered.

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

Conciseness5/5

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

Three sentences, front-loaded with the main action, followed by use cases and a note about null. Every sentence earns its place with no 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 6 parameters, no output schema, and no annotations, the description covers purpose, usage, parameter behavior, and clearing mechanism. It doesn't describe return values or errors, but for a mutation tool it is adequately complete.

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

Parameters4/5

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

With 100% schema description coverage, baseline is 3. The description adds value beyond schema by explaining null semantics and the auto-setting behavior of wordpress_post_id, which aids agent understanding beyond basic type/format.

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 it updates a page's WordPress category, author, or post link, specifying three distinct use cases. It effectively differentiates from sibling tools like 'categorize_pages' or 'wordpress_publish' by focusing on manual updates after categorization or pipeline bypass.

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

Usage Guidelines4/5

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

The description provides explicit scenarios for using the tool (manual category/author setting, attaching a WP post via wordpress_post_id) and highlights when it's essential (when publish pipeline is bypassed). It lacks explicit when-not-to-use guidance but the positive context is strong.

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

wait_for_jobA

Block until an async job reaches a terminal state (completed / failed / cancelled), polling server-side so you do not have to loop get_job yourself. USE THIS AFTER EVERY ASYNC CALL — it is the single most important tool for autonomous operation.

Typical durations:

  • URL fetching (create_project): 10-60s

  • Haloscan/Majestic enrichment: 30-180s

  • Scrape single page: 10-30s

  • Scrape bulk (50 pages): 2-5 min

  • Basic rewrite: 10-30s

  • Wisewand rewrite: 2-4 HOURS (use a long timeout or poll get_job periodically)

  • Image generation: 20-60s

  • WordPress publish bulk: 1-3 min

If the job is still running when timeout_seconds elapses, the tool returns the current progress with timed_out=true — call wait_for_job again or switch to get_job polling for very long Wisewand jobs.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob UUID to wait for
timeout_secondsNoMax time to wait before returning current progress (default 300 = 5 min, max 3600 = 1 hour). For Wisewand bulk rewrites (2-4h), leave at default and re-call until done.
poll_interval_secondsNoPoll interval (default 5). Use larger values for long jobs to reduce API load.

TDQS

A4.9/5.0
Behavior5/5

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

Without annotations, description fully discloses blocking behavior, polling, timeout handling with timed_out=true, and fallback options. No contradictions.

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

Conciseness4/5

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

Well-structured with bullet points for durations. Front-loaded with key behavior. A few extra words could be trimmed, but overall efficient and informative.

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?

No output schema exists, but description covers behavior, parameters, usage, and timeout handling comprehensively, including error conditions like timed_out=true.

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 coverage is 100%, but description adds value by explaining default values, max timeout, and specific advice for Wisewand jobs on timeout and poll interval.

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

Purpose5/5

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

Clearly states 'Block until an async job reaches a terminal state' and distinguishes from sibling get_job by emphasizing server-side polling. The verb 'Block' and resource 'async job' are specific.

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?

Explicitly instructs 'USE THIS AFTER EVERY ASYNC CALL' and provides typical durations for different operations. Also advises when to re-call or switch to get_job for long Wisewand jobs.

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

wordpress_authorsB

List WordPress authors for a configured domain

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesWordPress domain (e.g. example.com)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as authentication requirements, what 'configured domain' means, or any potential side effects.

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

Conciseness5/5

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

The description is a single concise sentence that clearly states the purpose with no unnecessary words.

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

Completeness3/5

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

The tool is simple with one parameter and no output schema; the description is adequate but lacks behavioral context. It is minimally complete for a basic list operation.

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

Parameters3/5

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

Schema description coverage is 100%, and the description does not add meaning beyond the schema's parameter description. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool lists WordPress authors, a specific verb+resource, and mentions it is for a configured domain. It distinguishes from siblings like wordpress_categories.

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 vs alternatives like wordpress_categories or wordpress_publish. No exclusions or context are given.

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

wordpress_categoriesB

List WordPress categories for a configured domain

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesWordPress domain (e.g. example.com)

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 should disclose read-only behavior, side effects, or limitations. It only says 'List', implying a read operation, but does not confirm no modifications, rate limits, or caching.

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

Conciseness4/5

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

The description is a single concise sentence with no unnecessary words. However, it lacks any structural formatting that could enhance readability.

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

Completeness2/5

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

For a list tool with no output schema, the description fails to mention return format, pagination, or error conditions (e.g., unconfigured domain). It leaves important behavioral aspects unspecified.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds no meaningful extra context beyond the schema's parameter description. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('List'), the resource ('WordPress categories'), and the scope ('for a configured domain'). It effectively distinguishes the tool from siblings like wordpress_authors or wordpress_configure.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description does not mention prerequisites (e.g., domain must be configured via wordpress_configure) or scenarios where this tool is appropriate.

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

wordpress_configureA

Configure WordPress connection. Two modes: Plugin (recommended, set mode='plugin') or Basic Auth (provide username + app_password).

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesWordPress site URL (e.g. https://example.com)
modeNoSet to 'plugin' for plugin mode. Omit for Basic Auth.
usernameNoWordPress username (Basic Auth only)
app_passwordNoWordPress application password (Basic Auth only)
post_as_draftNoPublish as draft by default (default: true)

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description explains the two modes and associated parameters but lacks details on side effects (e.g., persistence of configuration, error handling, or required permissions). It is adequate but could be more transparent.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the purpose, and includes only essential information. No redundancy or unnecessary details.

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 configuration tool with no output schema, the description covers the two modes and key parameters. It does not explain the post_as_draft parameter (though schema covers it) or what happens after configuration, but it is sufficiently complete for an agent to use it correctly.

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

Parameters4/5

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

The schema has 100% coverage, but the description adds value by linking parameters to modes ('set mode='plugin' for plugin mode', 'username+app_password for Basic Auth'). This clarifies conditional requirements beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's purpose: configure a WordPress connection. It distinguishes between two modes (Plugin and Basic Auth), which differentiates it from sibling tools like wordpress_publish or wordpress_validate.

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 specifies when to use each mode: Plugin is recommended, Basic Auth requires username and app_password. It does not explicitly mention when not to use the tool, but it provides clear guidance on configuration scenarios.

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

wordpress_get_mappingA

Get the current category-to-author mapping for a WordPress domain. This mapping determines which author is automatically assigned when publishing a page with a given category.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesWordPress domain (e.g. example.com)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral aspects. It only states it 'gets' the mapping, but does not disclose whether it requires authentication, what happens if the domain is invalid, or if there are rate limits. The description is too terse for a mutation-free but critical read operation.

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

Conciseness5/5

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

Two sentences, no fluff. The first sentence states the core purpose, the second provides context. Every word earns its place.

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

Completeness3/5

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

The tool is simple with one parameter and no output schema. The description explains what the mapping does but does not specify the output format or possible error responses. For a tool that returns a mapping, an agent would benefit from knowing the structure (e.g., is it a key-value map?). However, given the tool's simplicity, it is 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?

The input schema fully describes the single parameter 'domain' with a format example. The description mentions the domain but adds no additional semantic detail (e.g., validation rules, expected patterns). With 100% schema coverage, baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (Get), the resource (category-to-author mapping), and the scope (for a WordPress domain). It distinguishes the tool from siblings like wordpress_set_mapping by focusing on retrieval.

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

Usage Guidelines3/5

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

The description implies the tool is used to retrieve the current mapping, but it does not explicitly state when to use it versus alternatives (e.g., wordpress_set_mapping for setting, wordpress_categories for listing categories). No 'when not to use' guidance is provided.

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

wordpress_plugin_checkB

Check if the Web Resurrect Connector plugin is installed on a WordPress site. Also returns categories and authors if connected.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesWordPress domain to check (e.g. example.com)

TDQS

B3.4/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It mentions the check and returns but doesn't clarify behavior if plugin is not installed (error vs empty), nor any side effects or authentication needs.

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

Conciseness5/5

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

Two sentences, front-loaded with main purpose, no fluff. Every sentence adds value.

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 one parameter, no output schema, and no annotations, the description covers the main purpose and return values. Missing details on error cases, but adequate for a simple check tool.

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

Parameters3/5

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

Schema covers 100% of parameters with description. The tool description doesn't add extra meaning beyond 'WordPress domain' already in schema. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool checks for a specific plugin and returns categories/authors. However, it doesn't differentiate from sibling tools like wordpress_authors and wordpress_categories that also return similar data.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. Does not specify scenarios, prerequisites, or when not to use it.

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

wordpress_publishA

Publish a page to WordPress. Async operation, returns a job_id. Free (no credit cost). When using the Web Resurrect plugin, the original URL is preserved (e.g. /chaussures/basket-rouge.html serves the post directly at that URL, no redirect). URL mappings are pushed automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesPage UUID to publish
wordpress_domainYesTarget WordPress domain
category_idNoWordPress category ID
author_idNoWordPress author ID
post_typeNoWordPress post type (default: post)
statusNoPublish status (default: draft)
use_rewritten_contentNoUse rewritten content if available (default: true)
remove_linksNoRemove links from content (default: false)

TDQS

A4.2/5.0
Behavior4/5

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

No annotations were provided, so the description discloses key behaviors: async operation (returns job_id), zero credit cost, and Web Resurrect plugin specifics (URL preservation, auto-push). This is transparent but could mention potential errors or side effects.

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

Conciseness5/5

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

The description is concise with four sentences covering key aspects: purpose, async nature, cost, plugin behavior, and URL mapping. No unnecessary information.

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

Completeness4/5

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

Given the complexity (8 params, no output schema), the description covers most essential context (async, free, plugin integration). It lacks explanation of return value structure beyond job_id, but that is typical for pattern. Prerequisites like WordPress configuration are assumed via sibling tools.

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

Parameters3/5

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

All parameters are described in the input schema (100% coverage), so the description adds little semantic value beyond the schema. It does not elaborate on parameter usage or constraints.

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 'Publish a page to WordPress', which is a specific verb-resource combination. It distinguishes from sibling tools like wordpress_publish_bulk (bulk publishing) and configuration tools.

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 notes it's async and free, providing context. However, it doesn't explicitly compare to wordpress_publish_bulk or other alternatives, leaving the agent to infer when to use this single-page publish over others.

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

wordpress_publish_bulkA

Publish multiple pages to WordPress at once. Returns a job_id. Free. Supports both plugin mode and Basic Auth mode. In plugin mode, original URLs are preserved and URL mappings are pushed automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idsYesArray of page UUIDs to publish
wordpress_domainYesTarget WordPress domain
category_idNoWordPress category ID
author_idNoWordPress author ID
post_typeNoWordPress post type (default: post)
statusNoPublish status (default: draft)
use_rewritten_contentNoUse rewritten content if available (default: true)
remove_linksNoRemove links from content (default: false)

TDQS

A3.9/5.0
Behavior4/5

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

Describes async behavior (returns job_id), two auth modes, and plugin-mode specifics (URL preservation, auto-push mappings). No annotations provided, so description carries burden; it adds useful traits but omits error handling and idempotency.

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

Conciseness5/5

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

Three sentences, no fluff, front-loaded with the core purpose. Every sentence adds value.

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?

Covers purpose, mode behavior, and output. Lacks prerequisites (e.g., authentication setup via other tools), error handling, and rate limits. With no output schema, agents may need more guidance on job_id usage.

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?

Input schema has 100% description coverage for all 8 parameters. Description adds context about modes but does not enhance individual parameter meanings beyond what schema already provides.

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

Purpose5/5

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

Clearly states the tool publishes multiple pages to WordPress, returns a job_id, and distinguishes from singular wordpress_publish by specifying 'multiple'. Also explains key modes.

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?

Mentions it's free and supports two modes, but does not explicitly say when to use bulk vs singular, nor provide exclusions or alternatives. Implicit from sibling tool names.

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

wordpress_set_mappingA

Configure the category-to-author mapping for a WordPress domain. IMPORTANT: This must be done BEFORE categorizing or publishing pages.

The mapping tells the system which author to assign for each category when publishing. Example: if category "Mode" (ID 5) should be authored by "Élise" (ID 3), set mappings: [{ category_id: 5, author_id: 3 }].

Workflow:

  1. wordpress_categories — list available categories

  2. wordpress_authors — list available authors

  3. wordpress_set_mapping — configure which author writes for which category

  4. categorize_pages — AI-categorize pages (saves category to each page)

  5. wordpress_publish or wordpress_publish_bulk — author is auto-resolved from mapping

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesWordPress domain (e.g. example.com)
mappingsYesArray of category-to-author mappings
default_author_idNoDefault author ID when no mapping matches
default_category_idNoDefault category ID when page has no category assigned

TDQS

A4.4/5.0
Behavior4/5

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

Without annotations, the description carries full burden. It explains the mapping effect and workflow but does not discuss overwriting behavior or permission needs; still adequate for a configuration tool.

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?

Well-structured: purpose first, then importance callout, example, and numbered workflow. Every sentence adds value 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?

No output schema, but the workflow provides context. Missing return value info, but for a setter it is not critical. Overall complete for a configuration tool.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. Description adds an example for mappings but does not significantly enhance beyond the field descriptions already in the schema.

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

Purpose5/5

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

Description states 'Configure the category-to-author mapping for a WordPress domain' with a clear example, distinguishing it from siblings like wordpress_get_mapping and wordpress_publish.

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?

Explicitly states 'This must be done BEFORE categorizing or publishing pages' and provides a numbered workflow showing prerequisite steps and when to use this tool.

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

wordpress_validateA

Validate an existing WordPress connection. Tests that the credentials work and the site is reachable.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesWordPress domain to validate (e.g. example.com)

TDQS

A3.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 of transparency. It discloses that the tool tests credentials and site reachability, implying a read-only check. However, it does not specify behavior on failure (e.g., error vs. false) or whether it uses stored credentials, leaving some ambiguity. The description is clear but lacks some edge-case 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 extremely concise, consisting of two short sentences that quickly convey the purpose and behavior. It is front-loaded with the core action ('validate') and efficiently adds a clarifying second sentence. No unnecessary words or redundancy.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema), the description is minimally adequate but leaves gaps. It does not specify the return value (e.g., success/failure) or prerequisites (e.g., pre-configured credentials via 'wordpress_configure'). For complete guidance, an agent might need additional context about what constitutes 'credentials' and how validation results are reported.

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

Parameters3/5

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

The input schema has 100% description coverage for the single parameter 'domain', which already includes an example ('e.g. example.com'). The tool description adds no further information about the parameter beyond what the schema provides. Thus, it meets the baseline but does not enrich the schema's meaning.

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: 'Validate an existing WordPress connection.' It further explains that it tests credentials and site reachability. The verb 'validate' is specific, and the resource 'existing WordPress connection' is distinct from sibling tools like 'wordpress_configure' or 'wordpress_publish', which handle setup or publishing.

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 does not mention prerequisites, such as ensuring a connection was configured first via 'wordpress_configure', nor does it suggest when validation is appropriate (e.g., after setup or before publishing). There are no explicit when-to-use or when-not-to-use instructions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 33 tool updates
    • First observedcancel_job
    • First observedcategorize_pages
    • First observedcreate_project
    • First observeddelete_project
    • First observedenrich_project
    • First observedexport_redirects
    • First observedgenerate_image
    • First observedgenerate_image_bulk
    • First observedget_credits
    • First observedget_job
    • First observedget_page
    • First observedget_page_content
    • First observedget_project
    • First observedget_project_overview
    • First observedlist_jobs
    • First observedlist_pages
    • First observedlist_projects
    • First observedpush_redirects
    • First observedrewrite_bulk
    • First observedrewrite_page
    • First observedscrape_bulk
    • First observedscrape_page
    • First observedupdate_page
    • First observedwait_for_job
    • First observedwordpress_authors
    • First observedwordpress_categories
    • First observedwordpress_configure
    • First observedwordpress_get_mapping
    • First observedwordpress_plugin_check
    • First observedwordpress_publish
    • First observedwordpress_publish_bulk
    • First observedwordpress_set_mapping
    • First observedwordpress_validate

TDQS

A4/5.0

Scored across 33 tools

Disambiguation5/5

Each tool has a clearly distinct purpose, covering specific actions like scraping, rewriting, publishing, and job management. Despite many tools, overlapping functions are distinguished by single vs. batch operations (e.g., scrape_page vs. scrape_bulk) or different stages (e.g., get_page vs. get_page_content). Descriptions are detailed, preventing confusion.

Naming Consistency5/5

Tool names consistently follow a verb_noun pattern with underscores (e.g., create_project, list_pages, rewrite_bulk). WordPress-related tools share a wordpress_ prefix. The only minor deviation is wait_for_job instead of wait_job, but it remains predictable. Overall, naming is highly uniform.

Tool Count4/5

With 33 tools, the set is large but each tool serves a specific need in the complex resurrection pipeline (scraping, rewriting, SEO enrichment, WordPress integration, job management). The count is slightly high but still well-scoped; no tool feels redundant given the fine-grained control required.

Completeness5/5

The tool set covers the entire lifecycle: project creation, URL discovery, SEO enrichment, scraping, rewriting, image generation, categorization, WordPress connection and mapping, publishing with redirects, job tracking, and credit management. No obvious gaps exist; the pipeline is fully supported from start to finish.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers