Web Resurrect MCP Server
Provides tools to configure WordPress site credentials, manage categories and authors, and publish scraped or rewritten content directly to a WordPress instance.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Web Resurrect MCP Servercreate a project for the domain vintage-cars.net and list its most popular archived pages"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@web-resurrect/mcp
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-skillOnce 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/mcpLocal development
cd packages/mcp
npm install
npm run build
WEB_RESURRECT_API_KEY=wr_live_xxx node dist/index.jsEnvironment variables
Variable | Required | Default | Description |
| Yes | — | API key ( |
| No |
| 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
sourcefield:wayback(default, scrapeable from archive) orhaloscan(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=truefor 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_pageswithstatus='rewritable_wisewand'to fetch everything rewritable in one call, orstatus='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
create_projectwith a domain -> getjob_idget_jobto wait for URL fetching to completeenrich_projectwith Haloscan for SEO datalist_pagessorted bytotal_trafficto find best pagesscrape_bulkthe top pagesrewrite_bulkthe scraped pagesgenerate_image_bulkfor rewritten pageswordpress_configureyour WordPress sitewordpress_publish_bulkto publish everything (original URLs preserved in plugin mode, URL mappings pushed automatically)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 toolscancel_jobA
Cancel a pending or processing job. Credits reserved but not yet used will be refunded.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job UUID to cancel |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_ids | Yes | Page UUIDs (1 to 50) | |
| wordpress_domain | Yes | WordPress domain (e.g. example.com) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Expired domain to analyze (e.g. example.fr) | |
| name | No | Project name (defaults to domain) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project UUID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project UUID | |
| sources | No | Data sources — RECOMMENDED: ["haloscan", "majestic"] for complete SEO data. Haloscan=free (traffic+keywords), Majestic=10 credits (backlinks) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project UUID | |
| format | No | Export format: 'redirection' (John Godley plugin JSON, default) or 'rankmath' (Rank Math import format) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | Page UUID (must be rewritten first) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_ids | Yes | Array of page UUIDs (must be rewritten first) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job UUID |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | Page UUID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | Page UUID (must be rewritten) |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project UUID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project UUID |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by job status | |
| type | No | Filter by job type (scrape, rewrite, publish, enrich, etc.) | |
| page | No | Page number (default 1) | |
| limit | No | Items per page (default 20) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project UUID | |
| status | No | Filter 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). | |
| source | No | Filter 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_data | No | Only pages with SEO data: haloscan (traffic>0), majestic (backlinks>0), any (either) | |
| search | No | Search by URL or title | |
| sort | No | Sort field | |
| order | No | Sort order (default desc) | |
| page | No | Page number (default 1) | |
| limit | No | Items per page (default 50, max 100) | |
| exclude_system | No | Exclude 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
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| limit | No | Items per page (default 20, max 100) |
TDQS
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.
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.
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.
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.
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.
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:
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project UUID | |
| wordpress_domain | Yes | Target WordPress domain | |
| urls | No | Specific URLs or paths to redirect (e.g. ["/old-page.html", "/category/sub/"]). If omitted, all non-published pages are redirected. | |
| redirect_to | No | Custom redirect target URL (default: homepage). Example: "https://example.com/new-landing/" |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_ids | Yes | Array of page UUIDs to rewrite. In basic mode, pages must be scraped. In Wisewand mode, scraped AND Haloscan-origin pages are both accepted. | |
| wisewand | No | Use Wisewand for premium SEO-optimized rewrite (5 credits/page, 1 with own key). REQUIRED to include Haloscan-origin pages. | |
| wisewand_api_key | No | Your own Wisewand API key (implies wisewand=true, reduces cost to 1 credit/page) | |
| article_params | No | Default 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | Page UUID. Must be scraped first for basic mode. For Wisewand mode, Haloscan-origin pages (not scraped) are also accepted. | |
| wisewand | No | Use Wisewand for premium SEO-optimized rewrite (5 credits, 1 with own key). REQUIRED for Haloscan-origin pages. | |
| instructions | No | Custom rewrite instructions (basic mode only) | |
| subject | No | Custom subject / main keyword (Wisewand mode). Overrides AI extraction. For Haloscan-origin pages, skips the OpenAI prep call. | |
| article_params | No | Additional Wisewand parameters (type, lang, country, target_keyword, keywords_secondary, additional_information, etc.). For Haloscan pages these fill in after the AI prep. | |
| wisewand_api_key | No | Your own Wisewand API key (implies wisewand=true, reduces cost to 1 credit) |
TDQS
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.
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.
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.
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.
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.
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:
enrich_project(project_id, sources=["haloscan","majestic"])
wait_for_job
scrape_bulk(project_id, has_data='any', limit=100) ← THE FILTER IS NON-OPTIONAL
wait_for_job
Repeat scrape_bulk until no more pending pages with SEO data.
| Name | Required | Description | Default |
|---|---|---|---|
| page_ids | No | Array of page UUIDs to scrape | |
| project_id | No | Project UUID — auto-selects pending pages (use instead of page_ids) | |
| has_data | No | 🔴 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. | |
| limit | No | Max pages to scrape when using project_id (default 50) | |
| content_type | No | Content extraction type (default: article) | |
| exclude_system | No | Skip 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | Page UUID to scrape | |
| content_type | No | Content extraction type (default: article) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | Page UUID | |
| category_id | No | WordPress category ID to assign (null to clear) | |
| category_name | No | WordPress category name (set alongside category_id) | |
| author_id | No | WordPress author ID to assign (null to clear) | |
| wordpress_post_id | No | Manually link this WR page to an existing WordPress post ID. Sets posted_to_wordpress=true automatically. Null to clear. | |
| wordpress_post_url | No | WordPress post URL (goes with wordpress_post_id). Null to clear. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job UUID to wait for | |
| timeout_seconds | No | Max 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_seconds | No | Poll interval (default 5). Use larger values for long jobs to reduce API load. |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | WordPress domain (e.g. example.com) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | WordPress domain (e.g. example.com) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | WordPress site URL (e.g. https://example.com) | |
| mode | No | Set to 'plugin' for plugin mode. Omit for Basic Auth. | |
| username | No | WordPress username (Basic Auth only) | |
| app_password | No | WordPress application password (Basic Auth only) | |
| post_as_draft | No | Publish as draft by default (default: true) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | WordPress domain (e.g. example.com) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | WordPress domain to check (e.g. example.com) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | Page UUID to publish | |
| wordpress_domain | Yes | Target WordPress domain | |
| category_id | No | WordPress category ID | |
| author_id | No | WordPress author ID | |
| post_type | No | WordPress post type (default: post) | |
| status | No | Publish status (default: draft) | |
| use_rewritten_content | No | Use rewritten content if available (default: true) | |
| remove_links | No | Remove links from content (default: false) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_ids | Yes | Array of page UUIDs to publish | |
| wordpress_domain | Yes | Target WordPress domain | |
| category_id | No | WordPress category ID | |
| author_id | No | WordPress author ID | |
| post_type | No | WordPress post type (default: post) | |
| status | No | Publish status (default: draft) | |
| use_rewritten_content | No | Use rewritten content if available (default: true) | |
| remove_links | No | Remove links from content (default: false) |
TDQS
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.
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.
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.
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.
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.
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:
wordpress_categories — list available categories
wordpress_authors — list available authors
wordpress_set_mapping — configure which author writes for which category
categorize_pages — AI-categorize pages (saves category to each page)
wordpress_publish or wordpress_publish_bulk — author is auto-resolved from mapping
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | WordPress domain (e.g. example.com) | |
| mappings | Yes | Array of category-to-author mappings | |
| default_author_id | No | Default author ID when no mapping matches | |
| default_category_id | No | Default category ID when page has no category assigned |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | WordPress domain to validate (e.g. example.com) |
TDQS
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.
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.
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.
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.
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.
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.
33 tool updates
- First observed
cancel_job - First observed
categorize_pages - First observed
create_project - First observed
delete_project - First observed
enrich_project - First observed
export_redirects - First observed
generate_image - First observed
generate_image_bulk - First observed
get_credits - First observed
get_job - First observed
get_page - First observed
get_page_content - First observed
get_project - First observed
get_project_overview - First observed
list_jobs - First observed
list_pages - First observed
list_projects - First observed
push_redirects - First observed
rewrite_bulk - First observed
rewrite_page - First observed
scrape_bulk - First observed
scrape_page - First observed
update_page - First observed
wait_for_job - First observed
wordpress_authors - First observed
wordpress_categories - First observed
wordpress_configure - First observed
wordpress_get_mapping - First observed
wordpress_plugin_check - First observed
wordpress_publish - First observed
wordpress_publish_bulk - First observed
wordpress_set_mapping - First observed
wordpress_validate
This server cannot be deployed
TDQS
Scored across 33 tools
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.
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.
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.
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
Related MCP Connectors
Real SEO data for AI assistants: page audits, Keyword Planner volumes, Search Console history.
Publish to self-hosted WordPress from AI agents: markdown, images, SEO, and Notion sync.
AI-powered design and management for Webflow Sites
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Related MCP Servers
- AlicenseCqualityCmaintenanceEnables AI agents to manage WordPress sites with 190+ tools for content management, theme/plugin customization, file system operations, WooCommerce, and complete site control through natural language.10036 npm56MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage WordPress sites through natural conversation, supporting post creation, content updates, site queries, and draft-to-publish workflows via the WordPress REST API.9MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to capture website screenshots, automate browser interactions, and manage recurring screenshot configurations across 150+ global locations. It also supports AI-powered domain research and visual change monitoring for any web page.6 npmMIT
- AlicenseCqualityDmaintenanceEnables AI to manage WordPress sites with 190+ tools for complete control over content, themes, plugins, files, and more.10036 npmMIT