CXT Software MCP by usefulapi

Track and search CXT courier orders, check drivers, propose and save order and route plans.

¿Debería usar esto?

Calidad y seguridad

B
Calidad de la descripción
97%
Integridad del esquema
93%
Calidad de los nombres
80%
Riesgo de envenenamiento
40%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (5)

  • HIGHTool description contains system tag or markeren cxt_get_planning_limits
  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'cxt_get_planning_limits' description contains placeholder texten cxt_get_planning_limits
  • MEDIUMTool description contains suspicious base64-like encoded stringen cxt_validate_drivers
  • INFOTool description contains placeholder or incomplete texten cxt_get_planning_limits

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~4,955Tokens (definiciones de herramientas)
~2.5 KBTamaño de respuesta típico
Impacto significativo en la atención (3.87% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "cxt-software": {
      "url": "https://cxt-software.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://cxt-software.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (14)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢cxt_track_shipments(tracking_numbers, include_partial_match, begin_date, end_date, page_num, ...)

Track orders and route stops by tracking number: matches a parcel reference, a parcel item barcode, or Reference1/Reference2 of an order or route stop. Returns shipment summaries with status events and proof of delivery as far as the caller's permissions allow: an INET login sees the most detail; with an Operations App login this endpoint is called without credentials (CXT lists only internet users and anonymous callers for it), which returns the limited public tracking view. Costs 1 API credit with the vendor. POST /v2/Shipments/Summaries.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "tracking_numbers": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "description": "Tracking numbers, references or barcodes (1-50)."
    },
    "include_partial_match": {
      "description": "Also return partial matches (default false).",
      "type": "boolean"
    },
    "begin_date": {
      "type": "string",
      "description": "A date (2026-10-01) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T08:00:00Z."
    },
    "end_date": {
      "type": "string",
      "description": "A date (2026-10-01) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T08:00:00Z."
    },
    "page_num": {
      "description": "CXT's pageNum, documented as 'the offset for the records to return' (default 0). When has_more is true, ask for the next records and check the new page does not repeat the previous one (if it does, pageNum counts records: use a multiple of page_size).",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    },
    "page_size": {
      "description": "Results per page, 1-1000 (default 50).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "tracking_numbers"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢cxt_search_shipments(tracking_type, search_criteria, include_partial_match, begin_date, end_date, ...)

Search orders and route stops by place, address, city, state, postal code, order template, or only by date range. tracking_type says which field search_criteria is matched against: Location (origin/destination or stop name), Address, City, State, Postal (zip or zip+4), Template (order template name), Tracking (references/barcodes) or DateOnly (no criteria: everything between begin_date and end_date). Returns shipment summaries, up to 1000 per page. An INET login sees the most detail; with an Operations App login this endpoint is called without credentials (CXT lists only internet users and anonymous callers for it), so the view is limited. Costs 1 API credit with the vendor. POST /v2/Shipments/Summaries.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "tracking_type": {
      "type": "string",
      "enum": [
        "Location",
        "Address",
        "City",
        "State",
        "Postal",
        "Template",
        "Tracking",
        "DateOnly"
      ],
      "description": "Which field search_criteria matches."
    },
    "search_criteria": {
      "description": "Values to match (omit for DateOnly).",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200
      }
    },
    "include_partial_match": {
      "description": "Also return partial matches (default false).",
      "type": "boolean"
    },
    "begin_date": {
      "type": "string",
      "description": "A date (2026-10-01) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T08:00:00Z."
    },
    "end_date": {
      "type": "string",
      "description": "A date (2026-10-01) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T08:00:00Z."
    },
    "page_num": {
      "description": "CXT's pageNum, documented as 'the offset for the records to return' (default 0). When has_more is true, ask for the next records and check the new page does not repeat the previous one (if it does, pageNum counts records: use a multiple of page_size).",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    },
    "page_size": {
      "description": "Results per page, 1-1000 (default 50).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "tracking_type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢cxt_list_recent_orders(count)

The most recent orders of the signed-in INTERNET user (user type INET; the orders of their account). Costs 1 API credit with the vendor. POST /v2/Shipments/Summaries with numRecentOrders.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "count": {
      "description": "How many recent orders, 1-1000 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢cxt_get_order(order_id, include_itemized_charges)

One on-demand order with its status, confirmation, pickup, delivery and proof-of-delivery details, as an INTERNET user sees it (sign in with user type INET). Optionally with the itemized charges. Operations App users should use cxt_get_dispatch_order. Costs 1 API credit with the vendor. GET /v2/Orders/{orderId}/{includeItemizedCharges}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "CXT order id."
    },
    "include_itemized_charges": {
      "description": "Include the itemized charges (default false).",
      "type": "boolean"
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢cxt_get_dispatch_order(order_id)

One on-demand order with itemized charges, as an OPERATIONS APP (X Dispatch) user sees it (sign in with user type XDISPATCH): addresses, times, driver, status events, proof of delivery. Costs 1 API credit with the vendor. GET /v2/Dispatch/Orders/{onDemandOrderId}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "CXT on-demand order id."
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢cxt_get_planning_limits

The itinerary planning limits of this X Dispatch system: maxAllowedStops (shipments x 2), maxAllowedLocations and maxAllowedPlaceholders. Needs an Operations App user with the ITINERARY_PLANNING_ACCESS permission. GET /v3/ItineraryPlanning/Settings.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢cxt_validate_drivers(driver_ids)

Check whether drivers are available to be planned: for each driver id, vehicle violations (for example an expired inspection) and HR violations (for example not scheduled), each with isBypassable. Changes nothing. Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Orders/Drivers/Validate.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "driver_ids": {
      "minItems": 1,
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      },
      "description": "Driver ids to check."
    }
  },
  "required": [
    "driver_ids"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢cxt_validate_driver_for_orders(driver_id, order_ids)

Check one driver against specific orders: vehicle violations, HR violations and capability violations (for example Hazmat or Lift Gate that the driver lacks). Changes nothing. Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Orders/Drivers/{driverId}/Validate.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "driver_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Driver id."
    },
    "order_ids": {
      "minItems": 1,
      "maxItems": 3000,
      "type": "array",
      "items": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      },
      "description": "Order ids to check the driver against."
    }
  },
  "required": [
    "driver_id",
    "order_ids"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢cxt_plan_orders(order_ids, driver_ids, start_time, end_time, num_placeholders, ...)

Generate a proposed itinerary that assigns on-demand orders to drivers (pickup and delivery stops in sequence, with times, distance and unassigned stops). This only PROPOSES a plan: nothing is dispatched until cxt_save_order_plan is called. Needs ITINERARY_PLANNING_ACCESS. Check the limits with cxt_get_planning_limits first. POST /v3/ItineraryPlanning/Orders.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "order_ids": {
      "minItems": 1,
      "maxItems": 1500,
      "type": "array",
      "items": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      },
      "description": "Order ids to plan."
    },
    "driver_ids": {
      "minItems": 1,
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      },
      "description": "Driver ids to plan onto."
    },
    "start_time": {
      "type": "string",
      "description": "Planning window start, local time, e.g. 2026-10-01T08:00:00."
    },
    "end_time": {
      "type": "string",
      "description": "Planning window end, local time, e.g. 2026-10-01T18:00:00."
    },
    "num_placeholders": {
      "description": "Virtual placeholder drivers (0-1000).",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000
    },
    "max_orders_per_driver": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000
    },
    "goal": {
      "description": "Optimization goal (default QUICKEST_ROUTE).",
      "type": "string",
      "enum": [
        "QUICKEST_ROUTE",
        "SHORTEST_DISTANCE"
      ]
    },
    "enhanced_routing": {
      "description": "Enhanced routing (default OFF).",
      "type": "string",
      "enum": [
        "OFF",
        "ON"
      ]
    }
  },
  "required": [
    "order_ids",
    "driver_ids",
    "start_time",
    "end_time"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢cxt_optimize_order_plan(driver_id, is_placeholder, plan_order_ids, all_input_order_ids, start_time, ...)

Re-optimize a single driver's plan after manual changes (proposal only: nothing is dispatched until cxt_save_order_plan). Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Orders/Optimize.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "driver_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Driver id (or the placeholder's id when is_placeholder)."
    },
    "is_placeholder": {
      "description": "The driver is a placeholder.",
      "type": "boolean"
    },
    "plan_order_ids": {
      "maxItems": 3000,
      "type": "array",
      "items": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      },
      "description": "Orders currently in this driver's plan."
    },
    "all_input_order_ids": {
      "maxItems": 3000,
      "type": "array",
      "items": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      },
      "description": "All orders in the planning run."
    },
    "start_time": {
      "type": "string",
      "description": "Local date-time without timezone, e.g. 2026-10-01T08:00:00."
    },
    "end_time": {
      "type": "string",
      "description": "Local date-time without timezone, e.g. 2026-10-01T08:00:00."
    },
    "goal": {
      "description": "Optimization goal (default QUICKEST_ROUTE).",
      "type": "string",
      "enum": [
        "QUICKEST_ROUTE",
        "SHORTEST_DISTANCE"
      ]
    },
    "enhanced_routing": {
      "description": "Enhanced routing (default OFF).",
      "type": "string",
      "enum": [
        "OFF",
        "ON"
      ]
    }
  },
  "required": [
    "driver_id",
    "plan_order_ids",
    "all_input_order_ids",
    "start_time",
    "end_time"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢cxt_plan_routes(post_date, input_route_ids, output_route_ids, start_time, end_time, ...)

Generate a proposed re-sequencing of the stops of existing routes for one route date (stops move between the output routes, with times, distance and unassigned stops). Proposal only: nothing changes until cxt_save_route_plan is called. Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Routes/{postDate}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "post_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "Route date, yyyy-mm-dd."
    },
    "input_route_ids": {
      "minItems": 1,
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "description": "Route ids to take stops from."
    },
    "output_route_ids": {
      "minItems": 1,
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "description": "Route ids to assign stops to."
    },
    "start_time": {
      "type": "string",
      "description": "Local date-time without timezone, e.g. 2026-10-01T08:00:00."
    },
    "end_time": {
      "type": "string",
      "description": "Local date-time without timezone, e.g. 2026-10-01T08:00:00."
    },
    "num_placeholders": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000
    },
    "max_stops_per_route": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10000
    },
    "excluded_stop_ids": {
      "description": "Stop ids to leave out of planning.",
      "maxItems": 5000,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "service_time_per_stop": {
      "description": "Service time per stop, minutes.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1440
    },
    "grace_period_per_stop": {
      "description": "Grace period per stop, minutes.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1440
    },
    "goal": {
      "description": "Optimization goal (default QUICKEST_ROUTE).",
      "type": "string",
      "enum": [
        "QUICKEST_ROUTE",
        "SHORTEST_DISTANCE"
      ]
    },
    "enhanced_routing": {
      "description": "Enhanced routing (default OFF).",
      "type": "string",
      "enum": [
        "OFF",
        "ON"
      ]
    }
  },
  "required": [
    "post_date",
    "input_route_ids",
    "output_route_ids",
    "start_time",
    "end_time"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢cxt_optimize_route_plan(post_date, route_id, is_placeholder, plan_stop_ids, input_route_ids, ...)

Re-optimize a single route after manual changes (proposal only: nothing changes until cxt_save_route_plan). Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Routes/{postDate}/Optimize.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "post_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "Route date, yyyy-mm-dd."
    },
    "route_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Route to optimize."
    },
    "is_placeholder": {
      "type": "boolean"
    },
    "plan_stop_ids": {
      "description": "Stops currently assigned to this route.",
      "maxItems": 5000,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "input_route_ids": {
      "description": "Source routes for stops.",
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "excluded_stop_ids": {
      "maxItems": 5000,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "start_time": {
      "type": "string",
      "description": "Local date-time without timezone, e.g. 2026-10-01T08:00:00."
    },
    "end_time": {
      "type": "string",
      "description": "Local date-time without timezone, e.g. 2026-10-01T08:00:00."
    },
    "is_batch_call": {
      "description": "Batch optimization (default false).",
      "type": "boolean"
    },
    "goal": {
      "description": "Optimization goal (default QUICKEST_ROUTE).",
      "type": "string",
      "enum": [
        "QUICKEST_ROUTE",
        "SHORTEST_DISTANCE"
      ]
    },
    "enhanced_routing": {
      "description": "Enhanced routing (default OFF).",
      "type": "string",
      "enum": [
        "OFF",
        "ON"
      ]
    }
  },
  "required": [
    "post_date",
    "route_id",
    "start_time",
    "end_time"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴cxt_save_order_plan(plans, driver_pay_locked_status, confirm)

COMMIT an order plan: assigns the orders to the drivers and DISPATCHES them (drivers receive the work in the driver app; customers may be notified by the system's own status rules). Use only after the user has seen and approved the plan from cxt_plan_orders / cxt_optimize_order_plan. Pass each driver's stops from the plan reply: id, type (PICKUP or DELIVERY), sequence and from (the scheduled time). Response is empty on success (204). Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Orders/Save.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "plans": {
      "minItems": 1,
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "driverId": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "stops": {
            "minItems": 1,
            "maxItems": 6000,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "number",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991,
                  "description": "Order id."
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "PICKUP",
                    "DELIVERY"
                  ]
                },
                "sequence": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 100000
                },
                "from": {
                  "type": "object",
                  "properties": {
                    "timeStamp": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 64
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "timeStamp"
                  ],
                  "additionalProperties": {},
                  "description": "Scheduled arrival: copy `from` from the plan reply, or {timeStamp: '2026-10-01T08:30:00'}."
                },
                "isNew": {
                  "description": "Whether this is a new assignment.",
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "type",
                "sequence",
                "from"
              ]
            }
          }
        },
        "required": [
          "driverId",
          "stops"
        ]
      }
    },
    "driver_pay_locked_status": {
      "description": "What to do with already locked driver pay: KEEP_LOCKED_AND_DISPATCH or UNLOCK_AND_DISPATCH.",
      "type": "string",
      "enum": [
        "KEEP_LOCKED_AND_DISPATCH",
        "UNLOCK_AND_DISPATCH"
      ]
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Must be true: the user approved this plan and wants it dispatched to the drivers now."
    }
  },
  "required": [
    "plans",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴cxt_save_route_plan(post_date, plans, driver_pay_locked_status, confirm)

COMMIT a route plan for one route date: moves and re-sequences route stops as in the plan and DISPATCHES the changed routes to drivers. Use only after the user has seen and approved the plan from cxt_plan_routes / cxt_optimize_route_plan. Pass each route's stops from the plan reply: id, sequence and from (the scheduled time). Response is empty on success (204). Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Routes/{postDate}/Save.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "post_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "Route date, yyyy-mm-dd."
    },
    "plans": {
      "minItems": 1,
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "routeId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "stops": {
            "minItems": 1,
            "maxItems": 6000,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991,
                  "description": "Route stop id."
                },
                "sequence": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 100000
                },
                "from": {
                  "type": "object",
                  "properties": {
                    "timeStamp": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 64
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "timeStamp"
                  ],
                  "additionalProperties": {},
                  "description": "Scheduled arrival: copy `from` from the plan reply, or {timeStamp: '2026-10-01T08:30:00'}."
                },
                "isNew": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "sequence",
                "from"
              ]
            }
          }
        },
        "required": [
          "routeId",
          "stops"
        ]
      }
    },
    "driver_pay_locked_status": {
      "description": "What to do with already locked driver pay: KEEP_LOCKED_AND_DISPATCH or UNLOCK_AND_DISPATCH.",
      "type": "string",
      "enum": [
        "KEEP_LOCKED_AND_DISPATCH",
        "UNLOCK_AND_DISPATCH"
      ]
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Must be true: the user approved this plan and wants it dispatched to the drivers now."
    }
  },
  "required": [
    "post_date",
    "plans",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada14 herramientas