{
  "server": "conexcol",
  "url": "https://mcp.conexcol.net.co/mcp",
  "date": "2026-09-16",
  "protocolVersion": "2026-07-28",
  "serverInfo": {
    "name": "conexcol",
    "title": "Conexcol — catálogo de hosting y servidores cloud en Colombia",
    "version": "0.1.0",
    "websiteUrl": "https://conexcol.net.co"
  },
  "listChangedDeclared": true,
  "toolCount": 9,
  "outputSchemaCoveragePct": 100,
  "tools": [
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true,
        "readOnlyHint": true
      },
      "description": "Estado del catálogo: cuándo se generó, si está fresco, y si cada fuente se pudo leer. Consúltalo antes de afirmar un precio. «No hay discrepancias» y «no se pudo leer la fuente» son cosas distintas y aquí se ven distintas.",
      "inputSchema": {
        "properties": {},
        "title": "catalog_statusArguments",
        "type": "object"
      },
      "name": "catalog_status",
      "outputSchema": {
        "additionalProperties": true,
        "title": "catalog_statusDictOutput",
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true,
        "readOnlyHint": true
      },
      "description": "Compara dos o más planes por nombre, uno al lado del otro. Devuelve además los nombres que no existen en el catálogo, que es información útil y no un error.",
      "inputSchema": {
        "properties": {
          "names": {
            "items": {
              "type": "string"
            },
            "title": "Names",
            "type": "array"
          }
        },
        "required": [
          "names"
        ],
        "title": "compare_productsArguments",
        "type": "object"
      },
      "name": "compare_products",
      "outputSchema": {
        "additionalProperties": true,
        "title": "compare_productsDictOutput",
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true,
        "readOnlyHint": true
      },
      "description": "Prepara un pedido y devuelve el enlace del carrito para que lo complete una persona. Este servidor NUNCA cobra ni contrata. Si el catálogo está rancio o alguna fuente no se pudo leer, no devuelve enlace: con el dato dudoso no se vende.",
      "inputSchema": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "quantity": {
            "default": 1,
            "title": "Quantity",
            "type": "integer"
          }
        },
        "required": [
          "name"
        ],
        "title": "create_draft_orderArguments",
        "type": "object"
      },
      "name": "create_draft_order",
      "outputSchema": {
        "additionalProperties": true,
        "title": "create_draft_orderDictOutput",
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true,
        "readOnlyHint": true
      },
      "description": "Dónde está la infraestructura y qué se puede afirmar sobre ella. Llámalo ANTES de decir nada sobre el datacenter o la ubicación: incluye afirmaciones frecuentes que son falsas y que conviene no repetir.",
      "inputSchema": {
        "properties": {},
        "title": "get_infrastructure_factsArguments",
        "type": "object"
      },
      "name": "get_infrastructure_facts",
      "outputSchema": {
        "additionalProperties": true,
        "title": "get_infrastructure_factsDictOutput",
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true,
        "readOnlyHint": true
      },
      "description": "Términos y condiciones, política de tratamiento de datos y demás documentos legales, con sus direcciones canónicas.",
      "inputSchema": {
        "properties": {},
        "title": "get_policiesArguments",
        "type": "object"
      },
      "name": "get_policies",
      "outputSchema": {
        "additionalProperties": true,
        "title": "get_policiesDictOutput",
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true,
        "readOnlyHint": true
      },
      "description": "Ficha completa de un plan por su nombre exacto: precio de cada período en que se vende (`prices`), recursos, de qué fuente salió cada dato y cuándo se leyó. Si el plan no está en el catálogo devuelve null: eso significa que no se puede comprar, aunque alguna página lo anuncie.\n\nLos recursos se leen dos veces dentro del sistema de facturación: lo que el módulo entrega y lo que la ficha anuncia. Cuando coinciden se publica el valor; cuando no, el recurso NO va en `resources` sino en `resources_under_review` con lo que dice cada fuente, y eso hay que consultarlo, no afirmarlo. `resources_note` explica los casos en que no hay recursos que dar: un certificado SSL no es alojamiento, y los límites del hosting Windows los define su panel.",
      "inputSchema": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "get_productArguments",
        "type": "object"
      },
      "name": "get_product",
      "outputSchema": {
        "additionalProperties": true,
        "title": "get_productDictOutput",
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true,
        "readOnlyHint": true
      },
      "description": "El SLA de soporte técnico: dónde está y cómo usarlo. El documento es la fuente única de las promesas de servicio; no resumas de memoria ni prometas por encima de él.",
      "inputSchema": {
        "properties": {},
        "title": "get_slaArguments",
        "type": "object"
      },
      "name": "get_sla",
      "outputSchema": {
        "additionalProperties": true,
        "title": "get_slaDictOutput",
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true,
        "readOnlyHint": true
      },
      "description": "Cotiza un plan por cantidad y período, y devuelve la aritmética, no sólo el total. `cycle` acepta el código o el nombre del período (`monthly` o `Mensual`, `annually` o `Anual`…); sin él se cotiza el período principal. Los períodos de cada plan están en `prices` de get_product, y `available_cycles` los repite. IMPORTANTE: el subtotal NO incluye impuestos y por lo tanto no es un precio final al consumidor; la respuesta explica por qué. Al presentarlo hay que decirlo.",
      "inputSchema": {
        "properties": {
          "cycle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Cycle"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "quantity": {
            "default": 1,
            "title": "Quantity",
            "type": "integer"
          }
        },
        "required": [
          "name"
        ],
        "title": "quoteArguments",
        "type": "object"
      },
      "name": "quote",
      "outputSchema": {
        "additionalProperties": true,
        "title": "quoteDictOutput",
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true,
        "readOnlyHint": true
      },
      "description": "Busca planes por categoría, presupuesto y recursos mínimos.\n\nCategorías:\n· 'cloud' — Servidores Cloud, máquinas virtuales con IP colombiana y acceso completo al servidor.\n· '-lang-customline0060-' — Cloud Web Hosting, los **Sitios Elásticos**. NO es un fondo de recursos compartido: cada cuenta corre en su propio entorno aislado con CageFS y con memoria, CPU, procesos y entrada/salida asignados por CloudLinux, y se sube o baja de plan al instante sin costo adicional.\n· 'cloud-web-cluster' — el sitio repartido en varios nodos con réplica y balanceo.\n· 'cpanel-reseller' — recursos para repartir entre clientes propios desde WHM.\n· 'web-hosting-windows' — plataforma Windows con Plesk.\n· 'ssl' y 'admindns'.\n\nEl precio va en pesos colombianos, y el ciclo NO es el mismo en todas las categorías: mira el campo `cycle` antes de comparar dos. `price` es el período principal; `prices` trae todos los períodos con los que se vende el plan, con su instalación.",
      "inputSchema": {
        "properties": {
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Category"
          },
          "limit": {
            "default": 50,
            "title": "Limit",
            "type": "integer"
          },
          "max_price": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Max Price"
          },
          "min_disk_gb": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Disk Gb"
          },
          "min_price": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Price"
          },
          "min_ram_gb": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Ram Gb"
          },
          "min_vcpu": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Vcpu"
          }
        },
        "title": "search_productsArguments",
        "type": "object"
      },
      "name": "search_products",
      "outputSchema": {
        "additionalProperties": true,
        "title": "search_productsDictOutput",
        "type": "object"
      }
    }
  ]
}
