{
  "ok": true,
  "resource": {
    "id": "RES_ACA55E77D4F3",
    "resource_type": "mcp_server",
    "canonical_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.com.mcp%2Fcontabo/versions/0.6.0",
    "name": "Contabo (VPS) MCP Server",
    "summary_en": "Contabo API (v1.0.0) as MCP tools for cloud provisioning, and management. Powered by HAPI MCP server",
    "summary_zh": "Contabo API (v1.0.0) 作为 MCP 工具，用于云资源开通和管理。由 HAPI MCP 服务器提供支持。",
    "description_en": "This MCP server exposes the Contabo API (v1.0.0) as MCP tools for cloud provisioning and management. It is powered by the HAPI MCP server. The server is listed in the official MCP registry as 'ai.com.mcp/contabo' version 0.6.0. Runtime verification confirmed a healthy endpoint (HTTP 200) with 124 tools discovered via MCP protocol. The server requires a bearer token for authentication (Authorization header) and supports optional request tracing via x-request-id. The tool catalog includes operations for managing tags, tag assignments, PTR records, and DNS zones, among others. The source repository is https://github.com/la-rebelion/hapimcp.",
    "description_zh": "该 MCP 服务器将 Contabo API (v1.0.0) 作为 MCP 工具暴露，用于云资源开通和管理。它由 HAPI MCP 服务器提供支持。该服务器已在官方 MCP 注册表中以 'ai.com.mcp/contabo' 版本 0.6.0 列出。运行时验证确认端点健康（HTTP 200），并通过 MCP 协议发现了 124 个工具。服务器需要承载令牌进行身份验证（Authorization 头），并支持通过 x-request-id 进行可选的请求跟踪。工具目录包括管理标签、标签分配、PTR 记录和 DNS 区域等操作。源代码仓库为 https://github.com/la-rebelion/hapimcp。",
    "provider_name": "ai.com.mcp",
    "homepage_url": "https://run.mcp.com.ai/",
    "endpoint_url": "https://contabo.run.mcp.com.ai/mcp",
    "source_url": "https://github.com/la-rebelion/hapimcp",
    "icon_url": null,
    "cover_image_url": null,
    "capabilities": [
      "tag.manage",
      "tag.assign",
      "dns.manage",
      "ptr.manage",
      "tool.discover"
    ],
    "categories": [
      "infrastructure"
    ],
    "industries": [
      "software"
    ],
    "protocols": [
      "mcp"
    ],
    "auth": {
      "type": "unknown"
    },
    "pricing": {
      "model": "unknown"
    },
    "input_schema": {},
    "output_schema": {},
    "metadata": {
      "content_language": "en",
      "translation_status": "original-only",
      "official_registry": {
        "version": "0.6.0",
        "packages": [],
        "remotes": []
      },
      "review_gate": {
        "passed": true,
        "reasons": [],
        "policy_version": "review-gate-v1",
        "evaluated_at": "2026-09-03T06:03:27.602Z"
      }
    },
    "latest_version": "0.6.0",
    "status": "listed",
    "health_status": "healthy",
    "source_kind": "imported",
    "source_agent": "registry.modelcontextprotocol.io",
    "trust": {
      "signal": "none",
      "reason": "No suspicious or malicious evidence found.",
      "signals": {
        "yellow": 0,
        "red": 0
      }
    },
    "review_summary": {
      "method_version": "capability-evidence-v2",
      "capability_definition": "partial",
      "contract_completeness": "partial",
      "access_friction": "high",
      "operational_transparency": "partial",
      "evidence_strength": "protocol_inspected",
      "use_readiness": "conditional",
      "reviewed_at": "2026-09-03T06:03:28.612Z"
    },
    "experience_count": 0,
    "verified_experience_count": 0,
    "usage_count": 0,
    "success_rate": null,
    "first_seen_at": "2026-09-03T02:50:14.307Z",
    "last_seen_at": "2026-09-03T06:03:27.890Z",
    "published_at": "2026-09-03T06:03:27.890Z",
    "created_at": "2026-09-03T02:50:14.307Z",
    "updated_at": "2026-09-03T06:03:28.612Z",
    "api_url": "https://aiworkshub.io/api/v1/resources/RES_ACA55E77D4F3",
    "reviews_url": "https://aiworkshub.io/api/v1/resources/RES_ACA55E77D4F3/reviews",
    "public_url": "https://aiworkshub.io/resources/RES_ACA55E77D4F3",
    "distribution": {
      "canonical_identity": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.com.mcp%2Fcontabo/versions/0.6.0",
      "syndicatable": true,
      "origins": [
        {
          "registry_url": "https://registry.modelcontextprotocol.io/",
          "upstream_resource_id": "ai.com.mcp/contabo@0.6.0",
          "upstream_record_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.com.mcp%2Fcontabo/versions/0.6.0",
          "relation": "syndicated",
          "metadata": {
            "source": "official-mcp-registry"
          },
          "first_seen_at": "2026-09-03T02:50:14.307Z",
          "last_seen_at": "2026-09-03T06:03:27.890Z"
        }
      ]
    },
    "tools": [
      {
        "name": "createAssignment",
        "title_en": "Create a new assignment for the tag",
        "title_zh": "为标签创建新分配",
        "description_en": "Create a new assignment for the tag - Create a new tag assignment. This marks the specified resource with the specified tag for organizing purposes or to restrict access to that resource.",
        "description_zh": "为标签创建新分配 - 创建新的标签分配。这将为指定资源标记指定标签，用于组织目的或限制对该资源的访问。",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "tagId": {
              "type": "integer",
              "format": "int64"
            },
            "resourceType": {
              "type": "string"
            },
            "resourceId": {
              "type": "string"
            }
          },
          "required": [
            "x-request-id",
            "tagId",
            "resourceType",
            "resourceId"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "irreversible",
        "open_world": false,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "createDnsZone",
        "title_en": "Create DNS zone",
        "title_zh": "创建 DNS 区域",
        "description_en": "Create DNS zone - Creates a new DNS zone for a customer",
        "description_zh": "创建 DNS 区域 - 为客户创建新的 DNS 区域",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "createDnsZoneBody": {
              "type": "object",
              "properties": {
                "zoneName": {
                  "type": "string",
                  "description": "Zone name"
                }
              },
              "required": [
                "zoneName"
              ]
            }
          },
          "required": [
            "x-request-id",
            "createDnsZoneBody"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "irreversible",
        "open_world": false,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "createPtrRecord",
        "title_en": "Create a new PTR Record using ip address",
        "title_zh": "使用 IP 地址创建新的 PTR 记录",
        "description_en": "Create a new PTR Record using ip address - Create a new PTR Record using ip address. Only IPv6 can be created",
        "description_zh": "使用 IP 地址创建新的 PTR 记录 - 使用 IP 地址创建新的 PTR 记录。只能创建 IPv6",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "createPtrRecordBody": {
              "type": "object",
              "properties": {
                "ptr": {
                  "type": "string",
                  "description": "PTR Record name"
                },
                "ip": {
                  "type": "string",
                  "description": "IP Address"
                },
                "ttl": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Time to live for the PTR record in seconds"
                }
              },
              "required": [
                "ptr",
                "ip",
                "ttl"
              ]
            }
          },
          "required": [
            "x-request-id",
            "createPtrRecordBody"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "irreversible",
        "open_world": false,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "createTag",
        "title_en": "Create a new tag",
        "title_zh": "创建新标签",
        "description_en": "Create a new tag - Create a new tag in your account with attribute name and optional attribute color.",
        "description_zh": "创建新标签 - 在您的账户中创建一个新标签，包含名称属性和可选的颜色属性。",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "createTagBody": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "description": "The name of the tag. Tags may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per tag."
                },
                "color": {
                  "type": "string",
                  "minLength": 4,
                  "maxLength": 7,
                  "description": "The color of the tag. Color can be specified using hexadecimal value. Default color is #0A78C3"
                },
                "description": {
                  "type": "string",
                  "description": "The description of the Tag name. "
                }
              },
              "required": [
                "name",
                "color"
              ]
            }
          },
          "required": [
            "x-request-id",
            "createTagBody"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "irreversible",
        "open_world": false,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "deleteAssignment",
        "title_en": "Delete existing tag assignment",
        "title_zh": "删除现有标签分配",
        "description_en": "Delete existing tag assignment - Tag assignment will be removed from the specified resource. If this tag is being used for access restrictions the affected users will no longer be able to access that resource.",
        "description_zh": "删除现有标签分配 - 将从指定资源中移除标签分配。如果此标签用于访问限制，受影响的用户将无法再访问该资源。",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "tagId": {
              "type": "integer",
              "format": "int64"
            },
            "resourceType": {
              "type": "string"
            },
            "resourceId": {
              "type": "string"
            }
          },
          "required": [
            "x-request-id",
            "tagId",
            "resourceType",
            "resourceId"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "irreversible",
        "open_world": false,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "deletePtrRecord",
        "title_en": "Delete a PTR Record using ip address",
        "title_zh": "使用 IP 地址删除 PTR 记录",
        "description_en": "Delete a PTR Record using ip address - Delete a PTR Record using ip address. Only IPv6 can be deleted",
        "description_zh": "使用 IP 地址删除 PTR 记录 - 使用 IP 地址删除 PTR 记录。只能删除 IPv6",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "ipAddress": {
              "type": "string"
            }
          },
          "required": [
            "x-request-id",
            "ipAddress"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "irreversible",
        "open_world": false,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "deleteTag",
        "title_en": "Delete existing tag by id",
        "title_zh": "按 ID 删除现有标签",
        "description_en": "Delete existing tag by id - Your tag can be deleted if it is not assigned to any resource on your account. Check tag assigments before deleting tag.",
        "description_zh": "按 ID 删除现有标签 - 如果您的标签未分配给账户中的任何资源，则可以删除。删除标签前请检查标签分配。",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "tagId": {
              "type": "integer",
              "format": "int64"
            }
          },
          "required": [
            "x-request-id",
            "tagId"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "irreversible",
        "open_world": false,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "retrieveAssignment",
        "title_en": "Get specific assignment for the tag",
        "title_zh": "获取标签的特定分配",
        "description_en": "Get specific assignment for the tag - Get attributes for a specific tag assignment in your account. For this the resource type and resource id is required.",
        "description_zh": "获取标签的特定分配 - 获取您账户中特定标签分配的属性。为此需要资源类型和资源 ID。",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "tagId": {
              "type": "integer",
              "format": "int64"
            },
            "resourceType": {
              "type": "string"
            },
            "resourceId": {
              "type": "string"
            }
          },
          "required": [
            "x-request-id",
            "tagId",
            "resourceType",
            "resourceId"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "safe_to_retry",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "retrieveAssignmentList",
        "title_en": "List tag assignments",
        "title_zh": "列出标签分配",
        "description_en": "List tag assignments - List and filter all existing assignments for a tag in your account",
        "description_zh": "列出标签分配 - 列出并筛选您账户中某个标签的所有现有分配",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "tagId": {
              "type": "integer",
              "format": "int64"
            },
            "page": {
              "type": "integer",
              "format": "int64"
            },
            "size": {
              "type": "integer",
              "format": "int64"
            },
            "orderBy": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "resourceType": {
              "type": "string"
            }
          },
          "required": [
            "x-request-id",
            "tagId"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "safe_to_retry",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "retrieveAssignmentsAuditsList",
        "title_en": "List history about your assignments (audit)",
        "title_zh": "列出您的分配历史（审计）",
        "description_en": "List history about your assignments (audit) - List and filters the history about your assignments.",
        "description_zh": "列出您的分配历史（审计） - 列出并筛选您的分配历史。",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "page": {
              "type": "integer",
              "format": "int64"
            },
            "size": {
              "type": "integer",
              "format": "int64"
            },
            "orderBy": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "tagId": {
              "type": "integer",
              "format": "int64"
            },
            "resourceId": {
              "type": "string"
            },
            "requestId": {
              "type": "string"
            },
            "changedBy": {
              "type": "string"
            },
            "startDate": {
              "type": "string",
              "format": "date"
            },
            "endDate": {
              "type": "string",
              "format": "date"
            }
          },
          "required": [
            "x-request-id"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "safe_to_retry",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "retrieveDnsZone",
        "title_en": "Retrieve a DNS Zone by zone name",
        "title_zh": "按区域名称检索 DNS 区域",
        "description_en": "Retrieve a DNS Zone by zone name - Get all attributes for a specific DNS Zone",
        "description_zh": "按区域名称检索 DNS 区域 - 获取特定 DNS 区域的所有属性",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "zoneName": {
              "type": "string"
            }
          },
          "required": [
            "x-request-id",
            "zoneName"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "safe_to_retry",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "retrieveDnsZonesList",
        "title_en": "List DNS zones",
        "title_zh": "列出 DNS 区域",
        "description_en": "List DNS zones - Get a list of all zones",
        "description_zh": "列出 DNS 区域 - 获取所有区域的列表",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "page": {
              "type": "integer",
              "format": "int64"
            },
            "size": {
              "type": "integer",
              "format": "int64"
            },
            "orderBy": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "customerId": {
              "type": "string"
            },
            "tenantId": {
              "type": "string",
              "enum": [
                "DE",
                "INT"
              ]
            },
            "zoneName": {
              "type": "string"
            }
          },
          "required": [
            "x-request-id"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "safe_to_retry",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "retrievePtrRecord",
        "title_en": "Retrieve a PTR Record by ip address",
        "title_zh": "按 IP 地址检索 PTR 记录",
        "description_en": "Retrieve a PTR Record by ip address - Get all attributes for a specific PTR Record",
        "description_zh": "按 IP 地址检索 PTR 记录 - 获取特定 PTR 记录的所有属性",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "ipAddress": {
              "type": "string"
            }
          },
          "required": [
            "x-request-id",
            "ipAddress"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "safe_to_retry",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "retrievePtrRecordsList",
        "title_en": "List PTR records",
        "title_zh": "列出 PTR 记录",
        "description_en": "List PTR records - Get a list of all PTR records, either customer or a list of IPs is required",
        "description_zh": "列出 PTR 记录 - 获取所有 PTR 记录的列表，需要客户或 IP 列表",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "page": {
              "type": "integer",
              "format": "int64"
            },
            "size": {
              "type": "integer",
              "format": "int64"
            },
            "orderBy": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "customerId": {
              "type": "string"
            },
            "tenantId": {
              "type": "string",
              "enum": [
                "DE",
                "INT"
              ]
            },
            "ips": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "search": {
              "type": "string"
            }
          },
          "required": [
            "x-request-id"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "safe_to_retry",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "retrieveTag",
        "title_en": "Get specific tag by id",
        "title_zh": "按 ID 获取特定标签",
        "description_en": "Get specific tag by id - Get attributes values to a specific tag on your account.",
        "description_zh": "按 ID 获取特定标签 - 获取您账户上特定标签的属性值。",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "tagId": {
              "type": "integer",
              "format": "int64"
            }
          },
          "required": [
            "x-request-id",
            "tagId"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "safe_to_retry",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "retrieveTagAuditsList",
        "title_en": "List history about your assignments (audit)",
        "title_zh": "列出您的分配历史（审计）",
        "description_en": "List history about your assignments (audit) - List and filters the history about your assignments.",
        "description_zh": "列出您的分配历史（审计） - 列出并筛选您的分配历史。",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "page": {
              "type": "integer",
              "format": "int64"
            },
            "size": {
              "type": "integer",
              "format": "int64"
            },
            "orderBy": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "tagId": {
              "type": "integer",
              "format": "int64"
            },
            "requestId": {
              "type": "string"
            },
            "changedBy": {
              "type": "string"
            },
            "startDate": {
              "type": "string",
              "format": "date"
            },
            "endDate": {
              "type": "string",
              "format": "date"
            }
          },
          "required": [
            "x-request-id"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "safe_to_retry",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "retrieveTagList",
        "title_en": "List tags",
        "title_zh": "列出标签",
        "description_en": "List tags - List and filter all tags in your account",
        "description_zh": "列出标签 - 列出并筛选您账户中的所有标签",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "page": {
              "type": "integer",
              "format": "int64"
            },
            "size": {
              "type": "integer",
              "format": "int64"
            },
            "orderBy": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "name": {
              "type": "string"
            }
          },
          "required": [
            "x-request-id"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "safe_to_retry",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "tool_search",
        "title_en": "Tool Search",
        "title_zh": "工具搜索",
        "description_en": "Search the available tool catalog to discover tools by name, description, or arguments. Use a regex pattern or natural language query to find relevant tools. Returns tool references that are automatically expanded into full tool definitions.",
        "description_zh": "搜索可用工具目录，通过名称、描述或参数发现工具。使用正则表达式模式或自然语言查询来查找相关工具。返回工具引用，这些引用会自动扩展为完整的工具定义。",
        "input_schema": {
          "type": "object",
          "properties": {
            "query": {
              "type": "string",
              "description": "A regex pattern or natural-language query to search tool names, descriptions, and argument names. Maximum 200 characters."
            },
            "mode": {
              "type": "string",
              "enum": [
                "regex",
                "bm25"
              ],
              "description": "Search mode: \"regex\" for pattern matching, \"bm25\" for natural language. Defaults to \"bm25\"."
            }
          },
          "required": [
            "query"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "safe_to_retry",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "updatePtrRecord",
        "title_en": "Edit a PTR Record by ip address",
        "title_zh": "按 IP 地址编辑 PTR 记录",
        "description_en": "Edit a PTR Record by ip address - Edit attributes for a specific PTR Record",
        "description_zh": "按 IP 地址编辑 PTR 记录 - 编辑特定 PTR 记录的属性",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "ipAddress": {
              "type": "string"
            },
            "updatePtrRecordBody": {
              "type": "object",
              "properties": {
                "ptr": {
                  "type": "string",
                  "description": "PTR Record name"
                }
              },
              "required": [
                "ptr"
              ]
            }
          },
          "required": [
            "x-request-id",
            "ipAddress",
            "updatePtrRecordBody"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "irreversible",
        "open_world": false,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "updateTag",
        "title_en": "Update specific tag by id",
        "title_zh": "按 ID 更新特定标签",
        "description_en": "Update specific tag by id - Update attributes to your tag. Attributes are optional. If not set, the attributes will retain their original values.",
        "description_zh": "按 ID 更新特定标签 - 更新您的标签属性。属性是可选的。如果未设置，属性将保留其原始值。",
        "input_schema": {
          "type": "object",
          "properties": {
            "x-request-id": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "x-trace-id": {
              "type": "string"
            },
            "tagId": {
              "type": "integer",
              "format": "int64"
            },
            "updateTagBody": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "description": "The name of the tag. Tags may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per tag."
                },
                "color": {
                  "type": "string",
                  "minLength": 4,
                  "maxLength": 7,
                  "description": "The color of the tag. Color can be specified using hexadecimal value. Default color is #0A78C3"
                },
                "description": {
                  "type": "string",
                  "description": "The description of the Tag name. "
                }
              }
            }
          },
          "required": [
            "x-request-id",
            "tagId",
            "updateTagBody"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "irreversible",
        "open_world": false,
        "idempotency": "unknown",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      }
    ],
    "review_profile": {
      "schema_version": "aiworkshub.resource-review/0.2",
      "method_version": "capability-evidence-v2",
      "review_state": {
        "identity": "verified",
        "source": "verified",
        "connectivity": "verified",
        "contract": "partial",
        "safe_use": "untested",
        "real_use": "unobserved"
      },
      "assessment": {
        "capability_definition": "partial",
        "contract_completeness": "partial",
        "access_friction": "high",
        "operational_transparency": "partial",
        "evidence_strength": "protocol_inspected",
        "use_readiness": "conditional"
      },
      "profile": {
        "capabilities": [
          {
            "id": "tag.manage",
            "weight": 80,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "tag.assign",
            "weight": 80,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "dns.manage",
            "weight": 70,
            "confidence": 80,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "ptr.manage",
            "weight": 70,
            "confidence": 80,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "tool.discover",
            "weight": 50,
            "confidence": 100,
            "evidence_ids": [
              "protocol-tools"
            ]
          }
        ],
        "domains": [
          {
            "id": "cloud-infrastructure",
            "weight": 90,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "dns-management",
            "weight": 70,
            "confidence": 80,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          }
        ],
        "workflow_roles": [
          "execute",
          "monitor",
          "retrieve"
        ]
      },
      "capability_units": [
        {
          "id": "tool:tool_search",
          "kind": "mcp_tool",
          "capability_id": "tool.discover",
          "effect": "read",
          "open_world": false,
          "idempotency": "safe_to_retry",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "string"
          ],
          "produces": [
            "tool_reference"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:retrieveTagList",
          "kind": "mcp_tool",
          "capability_id": "tag.manage",
          "effect": "read",
          "open_world": false,
          "idempotency": "safe_to_retry",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "string",
            "integer",
            "array"
          ],
          "produces": [
            "tag_list"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:createTag",
          "kind": "mcp_tool",
          "capability_id": "tag.manage",
          "effect": "irreversible",
          "open_world": false,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "string",
            "object"
          ],
          "produces": [
            "tag"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:retrieveTag",
          "kind": "mcp_tool",
          "capability_id": "tag.manage",
          "effect": "read",
          "open_world": false,
          "idempotency": "safe_to_retry",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "integer"
          ],
          "produces": [
            "tag"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:updateTag",
          "kind": "mcp_tool",
          "capability_id": "tag.manage",
          "effect": "irreversible",
          "open_world": false,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "integer",
            "object"
          ],
          "produces": [
            "tag"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:deleteTag",
          "kind": "mcp_tool",
          "capability_id": "tag.manage",
          "effect": "irreversible",
          "open_world": false,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "integer"
          ],
          "produces": [
            "empty"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:retrieveAssignmentList",
          "kind": "mcp_tool",
          "capability_id": "tag.assign",
          "effect": "read",
          "open_world": false,
          "idempotency": "safe_to_retry",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "integer",
            "string",
            "array"
          ],
          "produces": [
            "assignment_list"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:retrieveAssignment",
          "kind": "mcp_tool",
          "capability_id": "tag.assign",
          "effect": "read",
          "open_world": false,
          "idempotency": "safe_to_retry",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "integer",
            "string"
          ],
          "produces": [
            "assignment"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:createAssignment",
          "kind": "mcp_tool",
          "capability_id": "tag.assign",
          "effect": "irreversible",
          "open_world": false,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "integer",
            "string"
          ],
          "produces": [
            "assignment"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:deleteAssignment",
          "kind": "mcp_tool",
          "capability_id": "tag.assign",
          "effect": "irreversible",
          "open_world": false,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "integer",
            "string"
          ],
          "produces": [
            "empty"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:retrieveTagAuditsList",
          "kind": "mcp_tool",
          "capability_id": "tag.manage",
          "effect": "read",
          "open_world": false,
          "idempotency": "safe_to_retry",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "string",
            "integer",
            "array"
          ],
          "produces": [
            "audit_list"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:retrieveAssignmentsAuditsList",
          "kind": "mcp_tool",
          "capability_id": "tag.assign",
          "effect": "read",
          "open_world": false,
          "idempotency": "safe_to_retry",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "string",
            "integer",
            "array"
          ],
          "produces": [
            "audit_list"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:retrievePtrRecord",
          "kind": "mcp_tool",
          "capability_id": "ptr.manage",
          "effect": "read",
          "open_world": false,
          "idempotency": "safe_to_retry",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "string"
          ],
          "produces": [
            "ptr_record"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:updatePtrRecord",
          "kind": "mcp_tool",
          "capability_id": "ptr.manage",
          "effect": "irreversible",
          "open_world": false,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "string",
            "object"
          ],
          "produces": [
            "ptr_record"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:deletePtrRecord",
          "kind": "mcp_tool",
          "capability_id": "ptr.manage",
          "effect": "irreversible",
          "open_world": false,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "string"
          ],
          "produces": [
            "empty"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:createPtrRecord",
          "kind": "mcp_tool",
          "capability_id": "ptr.manage",
          "effect": "irreversible",
          "open_world": false,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "object"
          ],
          "produces": [
            "ptr_record"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:retrievePtrRecordsList",
          "kind": "mcp_tool",
          "capability_id": "ptr.manage",
          "effect": "read",
          "open_world": false,
          "idempotency": "safe_to_retry",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "string",
            "integer",
            "array"
          ],
          "produces": [
            "ptr_record_list"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:retrieveDnsZonesList",
          "kind": "mcp_tool",
          "capability_id": "dns.manage",
          "effect": "read",
          "open_world": false,
          "idempotency": "safe_to_retry",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "string",
            "integer",
            "array"
          ],
          "produces": [
            "dns_zone_list"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:createDnsZone",
          "kind": "mcp_tool",
          "capability_id": "dns.manage",
          "effect": "irreversible",
          "open_world": false,
          "idempotency": "unknown",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "object"
          ],
          "produces": [
            "dns_zone"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:retrieveDnsZone",
          "kind": "mcp_tool",
          "capability_id": "dns.manage",
          "effect": "read",
          "open_world": false,
          "idempotency": "safe_to_retry",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "string"
          ],
          "produces": [
            "dns_zone"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        }
      ],
      "access": {
        "distribution_license": {},
        "runtime_auth": {
          "type": "bearer",
          "description": "Bearer token for authenticating with the Contabo API. Obtain via the documented token endpoint.",
          "required": true
        },
        "runtime_pricing": {},
        "dependencies": []
      },
      "operational_flags": [],
      "trust": {
        "signal": "none",
        "evidence_ids": [],
        "reason": "No suspicious or malicious evidence found."
      },
      "fit": {
        "good_for": [
          "Managing Contabo cloud resources such as tags, DNS zones, and PTR records",
          "Automating infrastructure provisioning and management tasks"
        ],
        "not_for": [
          "Use cases requiring no authentication or anonymous access",
          "Operations beyond the exposed Contabo API capabilities"
        ]
      },
      "evidence": [
        {
          "id": "source-record",
          "type": "registry_record",
          "source": "https://github.com/la-rebelion/hapimcp",
          "observation": "MCP source record for Contabo (VPS) MCP Server; version 0.6.0.",
          "observed_at": null,
          "payload": {}
        },
        {
          "id": "protocol-tools",
          "type": "protocol_observation",
          "source": "https://contabo.run.mcp.com.ai/mcp#tools/list",
          "observation": "124 tools were returned by MCP discovery; 20 were retained for review.",
          "observed_at": "2026-09-03T06:02:58.508Z",
          "payload": {}
        }
      ],
      "unknowns": [
        "Exact pricing model for the underlying Contabo API",
        "Full list of 124 tools; only 20 were reviewed",
        "Authentication details beyond bearer token requirement",
        "Whether all tools are operational in practice (only connectivity verified)"
      ],
      "id": "REV_6FD184681AF5",
      "resource_id": "RES_ACA55E77D4F3",
      "evaluator_type": "platform_ai",
      "provider": "deepseek",
      "model": "deepseek-v4-flash",
      "review_scope": "protocol-inspected-mcp",
      "created_at": "2026-09-03T06:03:28.612Z"
    }
  }
}