{
  "schema_version": 1,
  "tools": [
    {
      "server_name": "codex_apps",
      "tool_name": "_get_outstanding",
      "tool_namespace": "mcp__codex_apps__dewa",
      "tool": {
        "name": "dewa_get_outstanding",
        "title": "get_outstanding",
        "description": "Fetches the outstanding balance for ONE DEWA account number at a time.\n\nCRITICAL CONSTRAINTS:\n- ONLY call this tool ONCE per conversation turn\n- NEVER call this tool in parallel with itself\n- Extract the account number VERBATIM from the user's LATEST message only\n- DO NOT infer, reformat, pad, truncate, or modify the account number in any way\n- DO NOT reuse account numbers from previous turns\n- DO NOT fabricate, estimate, or simulate any balance information\n- NEVER return a balance unless it comes directly from the tool response\n\nANTI-HALLUCINATION RULES:\n- If the tool does not return a valid response, clearly inform the user that the balance could not be retrieved\n- Do NOT guess the outstanding amount under any circumstances\n- Do NOT generate example balances or placeholder values\n- Only present information explicitly returned by the tool\n- If required information is missing, ask the user instead of assuming\n\nBEHAVIOR RULES:\n1. If NO account number is provided → Ask: 'Please provide your DEWA account number so I can check the outstanding balance.'\n2. If MULTIPLE account numbers are provided → Ask: 'I can check the outstanding balance for one account at a time. Which account number would you like me to check first?'\n3. If account number is incomplete, unclear, or ambiguous → Ask: 'Please provide the full DEWA account number so I can check the outstanding balance.'\n4. If exactly ONE account number is provided → Call this tool with that exact number\n\nAlways extract the account number strictly from the user's most recent message before calling the tool.",
        "inputSchema": {
          "$schema": "http://json-schema.org/draft-07/schema#",
          "type": "object",
          "properties": {
            "account_number": {
              "description": "Exact DEWA account number from user's latest message. Must be exactly 10 numeric digits. Extract verbatim - do not infer, pad, truncate, or reuse from previous messages.",
              "type": "string",
              "minLength": 10,
              "maxLength": 10,
              "pattern": "^\\d{10}$"
            }
          },
          "required": [
            "account_number"
          ],
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "openai/outputTemplate": "ui://widget/dewa-balance-v1.html",
          "openai/widgetAccessible": true,
          "openai/toolInvocation/invoking": "Fetching balance",
          "openai/toolInvocation/invoked": "Balance fetched",
          "resource_name": "DEWA_get_outstanding",
          "_codex_apps": {
            "resource_uri": "/asdk_app_6979a17a49a481919e64da0a47a7c005/link_6982df2f65e48191b80a347b3046457c/get_outstanding",
            "contains_mcp_source": true
          },
          "connector_id": "asdk_app_6979a17a49a481919e64da0a47a7c005",
          "connector_name": "DEWA",
          "connector_description": "View bills, services and more.",
          "link_id": "link_6982df2f65e48191b80a347b3046457c"
        }
      },
      "connector_id": "asdk_app_6979a17a49a481919e64da0a47a7c005",
      "connector_name": "DEWA",
      "plugin_display_names": [],
      "connector_description": "View bills, services and more."
    },
    {
      "server_name": "codex_apps",
      "tool_name": "_get_happiness_centers",
      "tool_namespace": "mcp__codex_apps__dewa",
      "tool": {
        "name": "dewa_get_happiness_centers",
        "title": "get_happiness_centers",
        "description": "Fetches the list of DEWA customer happiness centers and their locations. IMPORTANT: Only ask for user location (userLatitude and userLongitude) when the user explicitly requests proximity-based information using phrases like 'near me', 'nearby', 'near current location', 'closest', or 'nearest'. For general queries like 'Find customer happiness centers' or 'Show happiness centers', call this tool WITHOUT location parameters to return all centers. When location parameters are provided, centers will be sorted by distance (nearest first) and distance information will be included.",
        "inputSchema": {
          "$schema": "http://json-schema.org/draft-07/schema#",
          "type": "object",
          "properties": {
            "userLatitude": {
              "type": "number"
            },
            "userLongitude": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "openai/outputTemplate": "ui://widget/dewa-happiness-centers-v2.html",
          "openai/widgetAccessible": true,
          "openai/toolInvocation/invoking": "Loading centers",
          "openai/toolInvocation/invoked": "Centers loaded",
          "resource_name": "DEWA_get_happiness_centers",
          "_codex_apps": {
            "resource_uri": "/asdk_app_6979a17a49a481919e64da0a47a7c005/link_6982df2f65e48191b80a347b3046457c/get_happiness_centers",
            "contains_mcp_source": true
          },
          "connector_id": "asdk_app_6979a17a49a481919e64da0a47a7c005",
          "connector_name": "DEWA",
          "connector_description": "View bills, services and more.",
          "link_id": "link_6982df2f65e48191b80a347b3046457c"
        }
      },
      "connector_id": "asdk_app_6979a17a49a481919e64da0a47a7c005",
      "connector_name": "DEWA",
      "plugin_display_names": [],
      "connector_description": "View bills, services and more."
    },
    {
      "server_name": "codex_apps",
      "tool_name": "_get_ev_chargers",
      "tool_namespace": "mcp__codex_apps__dewa",
      "tool": {
        "name": "dewa_get_ev_chargers",
        "title": "get_ev_chargers",
        "description": "Fetches the list of available DEWA EV charging locations and their details. If userLatitude and userLongitude are provided, chargers will be sorted by distance (nearest first) and distance information will be included.",
        "inputSchema": {
          "$schema": "http://json-schema.org/draft-07/schema#",
          "type": "object",
          "properties": {
            "userLatitude": {
              "type": "number"
            },
            "userLongitude": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "openai/outputTemplate": "ui://widget/dewa-ev-chargers-v1.html",
          "openai/widgetAccessible": true,
          "openai/toolInvocation/invoking": "Loading chargers",
          "openai/toolInvocation/invoked": "Chargers loaded",
          "resource_name": "DEWA_get_ev_chargers",
          "_codex_apps": {
            "resource_uri": "/asdk_app_6979a17a49a481919e64da0a47a7c005/link_6982df2f65e48191b80a347b3046457c/get_ev_chargers",
            "contains_mcp_source": true
          },
          "connector_id": "asdk_app_6979a17a49a481919e64da0a47a7c005",
          "connector_name": "DEWA",
          "connector_description": "View bills, services and more.",
          "link_id": "link_6982df2f65e48191b80a347b3046457c"
        }
      },
      "connector_id": "asdk_app_6979a17a49a481919e64da0a47a7c005",
      "connector_name": "DEWA",
      "plugin_display_names": [],
      "connector_description": "View bills, services and more."
    },
    {
      "server_name": "codex_apps",
      "tool_name": "_get_dewa_services",
      "tool_namespace": "mcp__codex_apps__dewa",
      "tool": {
        "name": "dewa_get_dewa_services",
        "title": "get_dewa_services",
        "description": "Returns a curated list of DEWA services and a link to open each service.",
        "inputSchema": {
          "$schema": "http://json-schema.org/draft-07/schema#",
          "type": "object",
          "properties": {},
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false
        },
        "_meta": {
          "openai/outputTemplate": "ui://widget/dewa-services-v1.html",
          "openai/widgetAccessible": true,
          "openai/toolInvocation/invoking": "Loading DEWA services",
          "openai/toolInvocation/invoked": "DEWA services ready",
          "resource_name": "DEWA_get_dewa_services",
          "_codex_apps": {
            "resource_uri": "/asdk_app_6979a17a49a481919e64da0a47a7c005/link_6982df2f65e48191b80a347b3046457c/get_dewa_services",
            "contains_mcp_source": true
          },
          "connector_id": "asdk_app_6979a17a49a481919e64da0a47a7c005",
          "connector_name": "DEWA",
          "connector_description": "View bills, services and more.",
          "link_id": "link_6982df2f65e48191b80a347b3046457c"
        }
      },
      "connector_id": "asdk_app_6979a17a49a481919e64da0a47a7c005",
      "connector_name": "DEWA",
      "plugin_display_names": [],
      "connector_description": "View bills, services and more."
    },
    {
      "server_name": "codex_apps",
      "tool_name": "_geocode_location",
      "tool_namespace": "mcp__codex_apps__dewa",
      "tool": {
        "name": "dewa_geocode_location",
        "title": "geocode_location",
        "description": "Converts a location name, address, or place name to geographic coordinates (latitude and longitude). Use this when the user provides a location name like 'Dubai Marina', 'Downtown Dubai', or any address in UAE. The coordinates can then be used with get_happiness_centers or get_ev_chargers to find nearest locations.",
        "inputSchema": {
          "$schema": "http://json-schema.org/draft-07/schema#",
          "type": "object",
          "properties": {
            "location": {
              "description": "Location name, address, or place (e.g., 'Dubai Marina', 'Downtown Dubai', 'Deira')",
              "type": "string",
              "minLength": 1
            }
          },
          "required": [
            "location"
          ],
          "additionalProperties": false
        },
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": true
        },
        "_meta": {
          "openai/toolInvocation/invoking": "Finding location coordinates",
          "openai/toolInvocation/invoked": "Location found",
          "resource_name": "DEWA_geocode_location",
          "_codex_apps": {
            "resource_uri": "/asdk_app_6979a17a49a481919e64da0a47a7c005/link_6982df2f65e48191b80a347b3046457c/geocode_location",
            "contains_mcp_source": true
          },
          "connector_id": "asdk_app_6979a17a49a481919e64da0a47a7c005",
          "connector_name": "DEWA",
          "connector_description": "View bills, services and more.",
          "link_id": "link_6982df2f65e48191b80a347b3046457c"
        }
      },
      "connector_id": "asdk_app_6979a17a49a481919e64da0a47a7c005",
      "connector_name": "DEWA",
      "plugin_display_names": [],
      "connector_description": "View bills, services and more."
    },
    {
      "server_name": "codex_apps",
      "tool_name": "_create_slide",
      "tool_namespace": "mcp__codex_apps__genspark_ai_slides",
      "tool": {
        "name": "genspark ai slides_create_slide",
        "title": "create_slide",
        "description": "Create or update a presentation slide deck based on natural language requirements. The tool uses AI to generate professional HTML/CSS-based slides. Returns immediately with project_id and URLs while slide generation continues in the background. Use the Widget to track progress.",
        "inputSchema": {
          "properties": {
            "project_id": {
              "description": "Optional. If provided, updates an existing slide project.",
              "type": "string"
            },
            "requirements": {
              "description": "Natural language description of the slides to create. Be specific about topic, number of slides, content, design style, and structure.",
              "type": "string"
            }
          },
          "required": [
            "requirements"
          ],
          "type": "object"
        },
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": true,
          "openWorldHint": true
        },
        "_meta": {
          "openai/outputTemplate": "ui://genspark/slide-progress-widget.html",
          "resource_name": "Genspark AI Slides_create_slide",
          "_codex_apps": {
            "resource_uri": "/asdk_app_694d313cc67c8191804aee33eeb7dfec/link_69af7397277081919521211bdc3aeff2/create_slide",
            "contains_mcp_source": true
          },
          "connector_id": "asdk_app_694d313cc67c8191804aee33eeb7dfec",
          "connector_name": "Genspark AI Slides",
          "connector_description": "professional presentations",
          "link_id": "link_69af7397277081919521211bdc3aeff2"
        }
      },
      "connector_id": "asdk_app_694d313cc67c8191804aee33eeb7dfec",
      "connector_name": "Genspark AI Slides",
      "plugin_display_names": [],
      "connector_description": "professional presentations"
    }
  ]
}