Skip to main content
Glama
PaddleHQ

Paddle MCP Server

Official
by PaddleHQ

list_simulation_run_events

Read-only

Retrieve and analyze simulation run events from Paddle to monitor delivery status, debug issues, and verify webhook responses.

Instructions

This tool will list simulation run events in Paddle.

Use the maximum perPage by default (200) to ensure comprehensive results. Filter simulationRunEvents by id as needed. Results are paginated - use the 'after' parameter with the last ID from previous results to get the next page. Sort and order results using the orderBy parameter.

Check the following details to understand the success or failure of the event according to Paddle and debug issues:

  • status: Status of the event according to Paddle.

    • pending: No attempt has been made to deliver the event yet.

    • success: The event was delivered successfully.

    • failure: Paddle tried to deliver the simulated event, but it failed. If response object is null, no response received from the server. Check the notification setting endpoint configuration.

    • aborted: Paddle couldn't attempt delivery of the simulated event.

  • payload: Payload sent by Paddle for this event within the simulation.

  • request.body: Request body sent by Paddle.

  • response.body: Response body sent by the responding server. May be empty for success responses.

  • response.statusCode: HTTP status code sent by the responding server.

If the destination URL is using a tunnel or proxy service, the response may be from the tunnel or proxy service, not the original server. Don't assume success or failure based on the status and response alone. Check the logs of the tunnel/proxy service and the destination server.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
simulationIdYesPaddle ID of the simulation entity associated with the run.
simulationRunIdYesPaddle ID of the simulation run entity.
afterNoReturn entities after the specified Paddle ID when working with paginated endpoints.
orderByNoOrder returned entities by the specified field and direction.
perPageNoSet how many entities are returned per page. Returns the maximum number of results if a number greater than the maximum is requested.
idNoReturn only the IDs specified. Use a comma-separated list to get multiple entities.

Implementation Reference

  • The handler function that executes the tool logic. It destructures simulationId and simulationRunId from params, lists simulation run events using the Paddle SDK, fetches the next page of events, computes pagination data, and returns both.
    export const listSimulationRunEvents = async (
      paddle: Paddle,
      params: z.infer<typeof Parameters.listSimulationRunEventsParameters>,
    ) => {
      try {
        const { simulationId, simulationRunId, ...queryParams } = params;
        const collection = paddle.simulationRunEvents.list(simulationId, simulationRunId, queryParams);
        const simulationRunEvents = await collection.next();
        const pagination = paginationData(collection);
        return { pagination, simulationRunEvents };
      } catch (error) {
        return error;
      }
    };
  • src/tools.ts:890-899 (registration)
    Tool registration defining the method name, human-readable name, description prompt, input parameters schema reference, and required actions (read/list simulationRunEvents).
    method: "list_simulation_run_events",
    name: "List events for a simulation run",
    description: prompts.listSimulationRunEventsPrompt,
    parameters: params.listSimulationRunEventsParameters,
    actions: {
      simulationRunEvents: {
        read: true,
        list: true,
      },
    },
  • src/api.ts:62-62 (registration)
    Maps the tool method constant (LIST_SIMULATION_RUN_EVENTS) to the handler function (funcs.listSimulationRunEvents) in the tool execution map.
    [TOOL_METHODS.LIST_SIMULATION_RUN_EVENTS]: funcs.listSimulationRunEvents,
  • Constant defining the tool method string identifier used in registrations and mappings.
    LIST_SIMULATION_RUN_EVENTS: "list_simulation_run_events",
  • Prompt string providing guidance and documentation for using the list_simulation_run_events tool.
    If the destination URL is using a tunnel or proxy service, the response may be from the tunnel or proxy service, not the original server. Don't assume success or failure based on the status and response alone. Check the logs of the tunnel/proxy service and the destination server.
    `;
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, which the description aligns with by describing a listing operation. The description adds valuable behavioral context beyond annotations: it explains pagination mechanics, default perPage usage, status interpretations, and caveats about tunnel/proxy services. This enhances transparency without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose but becomes verbose with debugging details and caveats. While informative, some sentences could be more streamlined, and the structure mixes usage instructions with debugging advice, reducing overall efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, pagination, debugging needs) and lack of output schema, the description does a good job covering key aspects: purpose, usage, behavioral traits, and parameter hints. It compensates for missing output schema by explaining response fields, though it could be more organized.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds some semantic context, such as recommending maximum perPage and explaining pagination with 'after,' but does not provide significant additional meaning beyond the schema. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'list simulation run events in Paddle.' It specifies the resource (simulation run events) and verb (list), but does not explicitly differentiate it from sibling tools like 'list_simulation_runs' or 'get_simulation_run_event,' which reduces the score from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage guidance by detailing pagination, filtering, and sorting parameters, and it mentions debugging with status and response details. However, it lacks explicit when-to-use instructions compared to alternatives like 'get_simulation_run_event' or 'list_simulation_runs,' leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/PaddleHQ/paddle-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server