redirx
Map old site URLs to new ones during a migration, review proposals and export approved redirects.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"redirx": {
"url": "https://redirx-mcp-server.onrender.com/mcp"
}
}
}遠端端點
https://redirx-mcp-server.onrender.com/mcpstreamable-http它能做什麼
工具清單
工具(9)
🟡plan_migration(old_site, new_site, name, site_aliases, idempotency_key, ...)
Create an owned old-site/new-site plan. Next call import_inventory for the old and new URL lists; planning does not crawl or run the model.
輸入結構描述
{
"type": "object",
"properties": {
"old_site": {
"type": "string",
"minLength": 1,
"maxLength": 8192,
"description": "Origin of existing source pages, e.g. https://old.example; no page path, query, fragment or credentials."
},
"new_site": {
"type": "string",
"minLength": 1,
"maxLength": 8192,
"description": "Origin of available destination pages, e.g. https://new.example; no page path, query, fragment or credentials."
},
"name": {
"type": "string",
"maxLength": 200
},
"site_aliases": {
"description": "Additional explicitly allowed origins per side. Declare www or staging origins here before importing; aliases are not inferred.",
"type": "object",
"properties": {
"old": {
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"maxLength": 8192
}
},
"new": {
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"maxLength": 8192
}
}
}
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[^\\x00-\\x1f\\x7f]+$"
},
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
}
},
"required": [
"old_site",
"new_site",
"idempotency_key",
"context"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"contract_version": {
"type": "string",
"minLength": 1
},
"migration_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"operation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"minLength": 1
},
"next_action": {
"type": "string",
"minLength": 1
},
"retry_after_seconds": {
"type": "number",
"minimum": 0
},
"progress": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"anyOf": [
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"code",
"message",
"retryable",
"next_action"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"contract_version",
"status",
"next_action",
"data",
"error"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}⚪import_inventory(migration_id, side, urls, idempotency_key, context)
Import explicit HTTP(S) URL strings into an owned immutable old or new inventory. No crawl or page scraping. Use data.inventory.id only when data.inventory.status is complete for run_migration; partial imports need corrected input and a new key. The free trial allows 500 old / 2000 new URLs and 2 MiB total URL text. When paid billing is enabled, paid runs allow 15000 old / 20000 new URLs and 16 MiB total. Importing never authorizes a charge.
輸入結構描述
{
"type": "object",
"properties": {
"migration_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"side": {
"type": "string",
"enum": [
"old",
"new"
],
"description": "old = existing source pages; new = available destination pages."
},
"urls": {
"minItems": 1,
"maxItems": 20000,
"type": "array",
"items": {
"type": "string",
"maxLength": 8192,
"pattern": "^https?:\\/\\/"
},
"description": "Actual absolute page URLs, not a sitemap file URL. Preserve path case, escapes and query strings. Complete validates this supplied list, not full site coverage or reachability."
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[^\\x00-\\x1f\\x7f]+$"
},
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
}
},
"required": [
"migration_id",
"side",
"urls",
"idempotency_key",
"context"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"contract_version": {
"type": "string",
"minLength": 1
},
"migration_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"operation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"minLength": 1
},
"next_action": {
"type": "string",
"minLength": 1
},
"retry_after_seconds": {
"type": "number",
"minimum": 0
},
"progress": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"anyOf": [
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"code",
"message",
"retryable",
"next_action"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"contract_version",
"status",
"next_action",
"data",
"error"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢run_migration(migration_id, old_inventory_id, new_inventory_id, quote_id, checkout_id, ...)
Run URL matching from immutable inventories. When current billing is enabled, the separate free trial allows 500 old URLs; paid purchases or monthly allowances support 15000 old / 20000 new URLs. Payment-required responses provide a browser billing link. Only a human completes checkout. Pass its verified checkout_id for a one-time purchase or select a subscription_id. Never approve extra URLs without explicit user consent to max_extra_amount_cents, the TOTAL extra-usage charge for this month after this run, not an incremental charge. Included retries and refinements do not buy URLs again. confirmed_pairs must be explicitly verified examples, never guesses.
輸入結構描述
{
"type": "object",
"properties": {
"migration_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"old_inventory_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"new_inventory_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"quote_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"checkout_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"subscription_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"approve_extra_urls": {
"type": "boolean"
},
"max_extra_amount_cents": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"confirmed_pairs": {
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"old_url": {
"type": "string",
"maxLength": 8192,
"format": "uri"
},
"new_url": {
"type": "string",
"maxLength": 8192,
"format": "uri"
}
},
"required": [
"old_url",
"new_url"
]
}
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[^\\x00-\\x1f\\x7f]+$"
},
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
}
},
"required": [
"migration_id",
"old_inventory_id",
"new_inventory_id",
"idempotency_key",
"context"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"contract_version": {
"type": "string",
"minLength": 1
},
"migration_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"operation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"minLength": 1
},
"next_action": {
"type": "string",
"minLength": 1
},
"retry_after_seconds": {
"type": "number",
"minimum": 0
},
"progress": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"anyOf": [
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"code",
"message",
"retryable",
"next_action"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"contract_version",
"status",
"next_action",
"data",
"error"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢refine_matches(migration_id, run_id, expected_seed_revision, idempotency_key, context)
Resume a paused matching pass, or improve unresolved URL mappings with explicitly confirmed examples. Up to three total passes; does not consume another free migration. Read data.jev.seed_revision from get_migration first. If paused, honor retry_after_seconds and resolve the reported pause reason before resuming.
輸入結構描述
{
"type": "object",
"properties": {
"migration_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"run_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expected_seed_revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[^\\x00-\\x1f\\x7f]+$"
},
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
}
},
"required": [
"migration_id",
"run_id",
"expected_seed_revision",
"idempotency_key",
"context"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"contract_version": {
"type": "string",
"minLength": 1
},
"migration_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"operation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"minLength": 1
},
"next_action": {
"type": "string",
"minLength": 1
},
"retry_after_seconds": {
"type": "number",
"minimum": 0
},
"progress": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"anyOf": [
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"code",
"message",
"retryable",
"next_action"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"contract_version",
"status",
"next_action",
"data",
"error"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_migration(migration_id, run_id, operation_id, context)
Read an owned migration summary and its next recoverable action. Retain migration_id and run_id across reconnects. Poll only after retry_after_seconds; a completed run still requires explicit review before export.
輸入結構描述
{
"type": "object",
"properties": {
"migration_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"run_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"operation_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
}
},
"required": [
"migration_id",
"context"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"contract_version": {
"type": "string",
"minLength": 1
},
"migration_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"operation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"minLength": 1
},
"next_action": {
"type": "string",
"minLength": 1
},
"retry_after_seconds": {
"type": "number",
"minimum": 0
},
"progress": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"anyOf": [
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"code",
"message",
"retryable",
"next_action"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"contract_version",
"status",
"next_action",
"data",
"error"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢list_matches(migration_id, run_id, filter, cursor, limit, ...)
Read owned match exceptions in stable traffic order. Follow data.next_cursor until null using the same run and filter; one page is not the whole run. Retain each mapping revision and data.selection_revision for review/export. Traffic absence is distinct from observed zero. Confidence is an uncalibrated model estimate, never approval.
輸入結構描述
{
"type": "object",
"properties": {
"migration_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"run_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"filter": {
"default": "all",
"type": "string",
"enum": [
"all",
"needs_review",
"unmatched",
"approved",
"rejected"
]
},
"cursor": {
"type": "string",
"maxLength": 4096
},
"limit": {
"default": 100,
"type": "integer",
"minimum": 1,
"maximum": 500
},
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
}
},
"required": [
"migration_id",
"run_id",
"context"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"contract_version": {
"type": "string",
"minLength": 1
},
"migration_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"operation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"minLength": 1
},
"next_action": {
"type": "string",
"minLength": 1
},
"retry_after_seconds": {
"type": "number",
"minimum": 0
},
"progress": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"anyOf": [
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"code",
"message",
"retryable",
"next_action"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"contract_version",
"status",
"next_action",
"data",
"error"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟡resolve_matches(migration_id, run_id, idempotency_key, decisions, context)
Apply audited, optimistic-concurrency decisions. To confirm a model-proposed target, use set_target with target_url, mapping_id and expected_revision after explicit user approval. Inspect every returned outcome: a batch can partially fail. On revision conflicts, reread matches and reassess the decision. Model predictions are never automatically verified examples.
輸入結構描述
{
"type": "object",
"properties": {
"migration_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"run_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[^\\x00-\\x1f\\x7f]+$"
},
"decisions": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"mapping_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expected_revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"action": {
"type": "string",
"enum": [
"accept_repair",
"set_target",
"approve",
"reject",
"defer",
"intentional_removal"
]
},
"target_url": {
"type": "string",
"minLength": 1,
"maxLength": 8192
},
"rationale": {
"type": "string",
"maxLength": 2000
}
},
"required": [
"mapping_id",
"expected_revision",
"action"
]
}
},
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
}
},
"required": [
"migration_id",
"run_id",
"idempotency_key",
"decisions",
"context"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"contract_version": {
"type": "string",
"minLength": 1
},
"migration_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"operation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"minLength": 1
},
"next_action": {
"type": "string",
"minLength": 1
},
"retry_after_seconds": {
"type": "number",
"minimum": 0
},
"progress": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"anyOf": [
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"code",
"message",
"retryable",
"next_action"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"contract_version",
"status",
"next_action",
"data",
"error"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟡export_redirects(migration_id, run_id, format, revision, allow_partial, ...)
Create an immutable artifact from explicitly approved decisions. Use data.selection_revision from the latest review response as revision. allow_partial requires explicit agreement to exclusions. Export does not install redirects. Large downloads are returned only as backend-authorized artifact resources; this gateway never follows arbitrary URLs.
輸入結構描述
{
"type": "object",
"properties": {
"migration_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"run_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"format": {
"type": "string",
"enum": [
"apache",
"nginx",
"wordpress",
"vercel",
"cloudflare",
"shopify",
"csv",
"json"
],
"description": "wordpress is Redirection plugin CSV; cloudflare is Pages _redirects, not Bulk Redirects CSV. csv and json are generic review mappings that need adaptation before installation."
},
"revision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"allow_partial": {
"default": false,
"type": "boolean"
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[^\\x00-\\x1f\\x7f]+$"
},
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
}
},
"required": [
"migration_id",
"run_id",
"format",
"revision",
"idempotency_key",
"context"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"contract_version": {
"type": "string",
"minLength": 1
},
"migration_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"operation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"minLength": 1
},
"next_action": {
"type": "string",
"minLength": 1
},
"retry_after_seconds": {
"type": "number",
"minimum": 0
},
"progress": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"anyOf": [
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"code",
"message",
"retryable",
"next_action"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"contract_version",
"status",
"next_action",
"data",
"error"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢verify_redirects(migration_id, artifact_id, deployment_id, deployment_confirmation, live_origin, ...)
Start or resume an owned artifact HTTP check. Supply an existing deployment_id, or explicitly confirm installation with live_origin and origin_rewrites ({} preserves artifact destinations). This does not install rules or establish Google indexing, page canonicals, robots permissions, or sitemap correctness. Inspect incomplete and unchecked results before claiming success.
輸入結構描述
{
"type": "object",
"properties": {
"migration_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"artifact_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"deployment_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"deployment_confirmation": {
"type": "boolean",
"const": true
},
"live_origin": {
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"origin_rewrites": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"additionalProperties": {
"type": "string",
"minLength": 1,
"maxLength": 2048
}
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[^\\x00-\\x1f\\x7f]+$"
},
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
}
},
"required": [
"migration_id",
"artifact_id",
"idempotency_key",
"context"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"contract_version": {
"type": "string",
"minLength": 1
},
"migration_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"operation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"minLength": 1
},
"next_action": {
"type": "string",
"minLength": 1
},
"retry_after_seconds": {
"type": "number",
"minimum": 0
},
"progress": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"anyOf": [
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"next_action": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"code",
"message",
"retryable",
"next_action"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"contract_version",
"status",
"next_action",
"data",
"error"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}社群
證據