The WebData Tools tab exposes a request builder and a response viewer for three API styles, REST, GraphQL, and MCP HTTP. Use it to validate endpoints, inspect payloads, and export a working request into the solution as a ReportsWebData entry.
Choose where the request points at the top of the tab.
Mode | Description |
|---|---|
Local | Load a request from an existing ReportsWebData entry in the solution. Use this mode to replay a configured request. |
Remote | Enter a URL and request parameters directly. The request is not tied to a solution object. |
In Local mode, credentials and headers come from the selected ReportsWebData row, not from the Remote-mode Authorization and Headers fields. This matters for MCP execution: the session handshake uses the row's Authorization and Headers, so a token typed into the Remote-mode UI while a Local row is selected does not apply to the executed request.
Select the API style in the API drop-down.
Value | Body editor |
|---|---|
REST | Raw request body. The Method drop-down controls the HTTP verb. |
GraphQL | GraphQL query text. Variables go in the body as JSON. The Operation Name field selects a named operation when the query document declares more than one. |
McpHttp | MCP tool arguments as JSON. The tool name is set through Select Tool. |
For REST, choose a verb, GET, POST, PUT, PATCH, or DELETE. GraphQL and McpHttp ignore the Method field.
Enter the full endpoint URL. Tag substitution is supported. Write {{Tag.Name}} to inject a tag value. In the Designer tester, tokens resolve to the tag's InitialValue at design time. At runtime, the same tokens resolve against the live RTDB value.
The Authorization field is multi-line. The first line selects the scheme, following lines supply the credentials.
Scheme | Lines |
|---|---|
NoAuth | Single line, |
BearerToken | Line 1, |
BasicAuth | Line 1, |
Enter custom headers as key=value;key=value on a single line. Use a semicolon between pairs inside the field.
The body editor label reflects the selected API, REST body, GraphQL query, or MCP arguments. Tag substitution is supported in all three editors.
Button | Description |
|---|---|
Execute | Send the request and populate the Response viewer. |
Stop | Cancel an in-progress request. |
Refresh Tools | McpHttp mode. Initializes an MCP session at the current URL and lists the available tools. |
Select Tool | McpHttp mode. Pick a tool from the discovered list. The input schema is shown below the selector. |
Export | Open the export dialog. Creates a new ReportsWebData row with the current API, URL, method, authorization, headers, and body. |
MCP servers that follow the streamable-HTTP spec (2025-03-26) require a session before any tools/list or tools/call. The tester performs the full handshake automatically:
initialize to the endpoint.Mcp-Session-Id from the response headers.notifications/initialized.Only then does the tester send the actual request. All three execution paths, Refresh Tools, Remote Execute, and Local Execute, run the handshake. Strict MCP servers would otherwise reject a cold tools/call.
The session ID and the initialized flag are keyed on the endpoint URL and shared across the three execution paths. A handshake performed by Refresh Tools benefits a subsequent Execute against the same URL. Changing the URL triggers a fresh handshake against the new endpoint.
The tester mirrors runtime McpHttpSession behavior. An idle session is closed after five minutes. A server returning HTTP 404 on a tool call triggers automatic session re-init and one retry. Any other HTTP error surfaces in the Response viewer as received.
When Local Execute runs against a ReportsWebData row configured as McpHttp, the handshake and the tool call both use the row's Authorization and Headers. The Remote-mode Authorization and Headers fields on the tab are ignored for that execution. Change credentials by editing the row, not the tab.
Responses appear in three tabs.
Click Export to open the Export WebData dialog. Choose a name, confirm, and a new entry is added under Reports → WebData. The solution-side runtime, Reports WebData Reference, handles execution at runtime.
The exported entry carries the API, URL, method, authorization, headers, and body from the tab. Edit the entry in the WebData grid to refine it afterwards.
The export derives the Encoding column on the new row from the response Content-Type header, not from a hardcoded value.
Response Content-Type | Exported Encoding |
|---|---|
application/json, +json variants | JSON |
application/xml, text/xml | XML |
text/html | HTML |
text/plain, other text/* | Text |
Empty or missing | JSON (default) |
When the tab is in GraphQL mode, the Operation Name field persists to the row's OperationName column, which is new in 10.1.5. It is not packed into ToolName. See the GraphQL OperationName section of Reports WebData - GraphQL and MCP Client for runtime semantics.
The WebData Tools tab exposes designer_action controls for MCP clients. Each action drives the same tab state as the UI controls.
Action | Description |
|---|---|
| Switch between Local and Remote. |
| Set REST, GraphQL, or McpHttp. Invalid values return an error with the accepted list. |
| Set the URL field. |
| Set the REST verb. |
| Set the multi-line Authorization field. The action hint shows the per-line format. |
| Set headers as |
| Set the body editor. The response echoes the target editor name, REST body, GraphQL query, or MCP arguments. |
| GraphQL mode. Set the Operation Name field. Persists to the row's |
| Send the request. |
| Cancel a pending request. |
| Return status, headers, and body, with up to 8000 characters of response text. |
| Return the full tab state, including authorization, headers, body editor, and MCP input schema. |
| List the ReportsWebData entries in the solution. |
| Load a saved entry into the tab. Invalid names return a warning with the available list. |
| McpHttp mode. Initialize the session and list tools. |
| McpHttp mode. Select a tool by name. Invalid names return a warning with the available list. |
| Run the export. Returns a success or failure message, including a duplicate-name error. |