Tester MCP Client avatar

Tester MCP Client

Try for free

No credit card required

Go to Store
Tester MCP Client

Tester MCP Client

jiri.spilka/tester-mcp-client
Try for free

No credit card required

A model context protocol (MCP) client that connects to any MCP server using Server-Sent Events (SSE) and displays the conversation in a chat-like UI. It is a standalone Actor server designed for testing MCP servers over SSE.

Do you want to learn more about this Actor?

Get a demo

You can access the Tester MCP Client programmatically from your own applications by using the Apify API. You can choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in Integrations settings in Apify Console.

1{
2  "openapi": "3.0.1",
3  "info": {
4    "version": "0.1",
5    "x-build-id": "1zGSxhqxkxPfhoIrl"
6  },
7  "servers": [
8    {
9      "url": "https://api.apify.com/v2"
10    }
11  ],
12  "paths": {
13    "/acts/jiri.spilka~tester-mcp-client/run-sync-get-dataset-items": {
14      "post": {
15        "operationId": "run-sync-get-dataset-items-jiri.spilka-tester-mcp-client",
16        "x-openai-isConsequential": false,
17        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
18        "tags": [
19          "Run Actor"
20        ],
21        "requestBody": {
22          "required": true,
23          "content": {
24            "application/json": {
25              "schema": {
26                "$ref": "#/components/schemas/inputSchema"
27              }
28            }
29          }
30        },
31        "parameters": [
32          {
33            "name": "token",
34            "in": "query",
35            "required": true,
36            "schema": {
37              "type": "string"
38            },
39            "description": "Enter your Apify token here"
40          }
41        ],
42        "responses": {
43          "200": {
44            "description": "OK"
45          }
46        }
47      }
48    },
49    "/acts/jiri.spilka~tester-mcp-client/runs": {
50      "post": {
51        "operationId": "runs-sync-jiri.spilka-tester-mcp-client",
52        "x-openai-isConsequential": false,
53        "summary": "Executes an Actor and returns information about the initiated run in response.",
54        "tags": [
55          "Run Actor"
56        ],
57        "requestBody": {
58          "required": true,
59          "content": {
60            "application/json": {
61              "schema": {
62                "$ref": "#/components/schemas/inputSchema"
63              }
64            }
65          }
66        },
67        "parameters": [
68          {
69            "name": "token",
70            "in": "query",
71            "required": true,
72            "schema": {
73              "type": "string"
74            },
75            "description": "Enter your Apify token here"
76          }
77        ],
78        "responses": {
79          "200": {
80            "description": "OK",
81            "content": {
82              "application/json": {
83                "schema": {
84                  "$ref": "#/components/schemas/runsResponseSchema"
85                }
86              }
87            }
88          }
89        }
90      }
91    },
92    "/acts/jiri.spilka~tester-mcp-client/run-sync": {
93      "post": {
94        "operationId": "run-sync-jiri.spilka-tester-mcp-client",
95        "x-openai-isConsequential": false,
96        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
97        "tags": [
98          "Run Actor"
99        ],
100        "requestBody": {
101          "required": true,
102          "content": {
103            "application/json": {
104              "schema": {
105                "$ref": "#/components/schemas/inputSchema"
106              }
107            }
108          }
109        },
110        "parameters": [
111          {
112            "name": "token",
113            "in": "query",
114            "required": true,
115            "schema": {
116              "type": "string"
117            },
118            "description": "Enter your Apify token here"
119          }
120        ],
121        "responses": {
122          "200": {
123            "description": "OK"
124          }
125        }
126      }
127    }
128  },
129  "components": {
130    "schemas": {
131      "inputSchema": {
132        "type": "object",
133        "required": [
134          "mcpSseUrl",
135          "modelName",
136          "llmProviderApiKey"
137        ],
138        "properties": {
139          "mcpSseUrl": {
140            "title": "MCP Server Sent Events (SSE) URL",
141            "type": "string",
142            "description": "MCP Server Sent Events (SSE) URL for receiving updates from the server.\n\nMake sure that URL path ends with `/sse`",
143            "default": "https://actors-mcp-server.apify.actor/sse?enableActorAutoLoading=true"
144          },
145          "headers": {
146            "title": "HTTP headers",
147            "type": "object",
148            "description": "HTTP headers to be sent with the request to the MCP server. If you are using Apify's MCP server, headers are NOT required"
149          },
150          "systemPrompt": {
151            "title": "System prompt",
152            "type": "string",
153            "description": "System prompt for the Claude model",
154            "default": "You are a helpful Apify assistant with to tools called Actors.\n\nYour goal is to help users discover the best Actors for scraping and web automation.\nYou have access to a list of tools that can help you to discover Actors, find details and include them among tools for later execution.\n\nChoose the appropriate Actor based on the conversation context. If no Actor is needed, reply directly.\n\nPrefer Actors with more users, stars, and runs\nWhen you need to use an Actor, explain how it used and with which parameters.\nNever call an Actor unless it is required by user!\nAfter receiving a Actors' response:\n1. Transform the raw data into a natural, conversational response\n2. Keep responses concise but informative\n3. Focus on the most relevant information\n4. Use appropriate context from the user's question\n5. Avoid simply repeating the raw data\nAlways use Actor not actor. Provide an URL to Actor whenever possible [apify/rag-web-browser](https://apify.com/apify/rag-web-browser).\nREMEMBER Always limit number of results returned from Actors.\nThere is always parameter such as maxResults=1, maxPage=1, maxCrawledPlacesPerSearch=1, keep it to minimal value. \nOtherwise Actor execution takes long and result is huge!Always inform user that calling Actor might take some time.\n"
155          },
156          "modelName": {
157            "title": "Anthropic Claude model (Anthropic is only supported provider now)",
158            "enum": [
159              "claude-3-5-sonnet-20241022",
160              "claude-3-5-haiku-20241022",
161              "claude-3-haiku-20240307"
162            ],
163            "type": "string",
164            "description": "Select a model to be used for selecting tools and generating text.\n\n- Claude 3.5 Sonnet (2024-10-22) - the most intelligent model\n- Claude 3.5 Haiku (2024-10-22) - a fastest model\n- Claude 3 Haiku (2024-03-07) - a fastest and most compact model for near-instant responsiveness",
165            "default": "claude-3-5-sonnet-20241022"
166          },
167          "llmProviderApiKey": {
168            "title": "LLM Provider API key (Anthropic is only supported provider now)",
169            "type": "string",
170            "description": "API key for accessing a Large Language Model"
171          },
172          "modelMaxOutputTokens": {
173            "title": "Maximum tokens for Claude response",
174            "maximum": 10000,
175            "type": "integer",
176            "description": "Maximum number of tokens in the Claude response. The higher the number, the longer the response time",
177            "default": 2048
178          },
179          "maxNumberOfToolCalls": {
180            "title": "Maximum number of tool calls",
181            "type": "integer",
182            "description": "Maximum number of times a tool can be called in a single request. Keep this number low for simple flows",
183            "default": 5
184          },
185          "toolCallTimeoutSec": {
186            "title": "Tool call timeout",
187            "type": "integer",
188            "description": "Timeout for a single tool call in seconds",
189            "default": 120
190          }
191        }
192      },
193      "runsResponseSchema": {
194        "type": "object",
195        "properties": {
196          "data": {
197            "type": "object",
198            "properties": {
199              "id": {
200                "type": "string"
201              },
202              "actId": {
203                "type": "string"
204              },
205              "userId": {
206                "type": "string"
207              },
208              "startedAt": {
209                "type": "string",
210                "format": "date-time",
211                "example": "2025-01-08T00:00:00.000Z"
212              },
213              "finishedAt": {
214                "type": "string",
215                "format": "date-time",
216                "example": "2025-01-08T00:00:00.000Z"
217              },
218              "status": {
219                "type": "string",
220                "example": "READY"
221              },
222              "meta": {
223                "type": "object",
224                "properties": {
225                  "origin": {
226                    "type": "string",
227                    "example": "API"
228                  },
229                  "userAgent": {
230                    "type": "string"
231                  }
232                }
233              },
234              "stats": {
235                "type": "object",
236                "properties": {
237                  "inputBodyLen": {
238                    "type": "integer",
239                    "example": 2000
240                  },
241                  "rebootCount": {
242                    "type": "integer",
243                    "example": 0
244                  },
245                  "restartCount": {
246                    "type": "integer",
247                    "example": 0
248                  },
249                  "resurrectCount": {
250                    "type": "integer",
251                    "example": 0
252                  },
253                  "computeUnits": {
254                    "type": "integer",
255                    "example": 0
256                  }
257                }
258              },
259              "options": {
260                "type": "object",
261                "properties": {
262                  "build": {
263                    "type": "string",
264                    "example": "latest"
265                  },
266                  "timeoutSecs": {
267                    "type": "integer",
268                    "example": 300
269                  },
270                  "memoryMbytes": {
271                    "type": "integer",
272                    "example": 1024
273                  },
274                  "diskMbytes": {
275                    "type": "integer",
276                    "example": 2048
277                  }
278                }
279              },
280              "buildId": {
281                "type": "string"
282              },
283              "defaultKeyValueStoreId": {
284                "type": "string"
285              },
286              "defaultDatasetId": {
287                "type": "string"
288              },
289              "defaultRequestQueueId": {
290                "type": "string"
291              },
292              "buildNumber": {
293                "type": "string",
294                "example": "1.0.0"
295              },
296              "containerUrl": {
297                "type": "string"
298              },
299              "usage": {
300                "type": "object",
301                "properties": {
302                  "ACTOR_COMPUTE_UNITS": {
303                    "type": "integer",
304                    "example": 0
305                  },
306                  "DATASET_READS": {
307                    "type": "integer",
308                    "example": 0
309                  },
310                  "DATASET_WRITES": {
311                    "type": "integer",
312                    "example": 0
313                  },
314                  "KEY_VALUE_STORE_READS": {
315                    "type": "integer",
316                    "example": 0
317                  },
318                  "KEY_VALUE_STORE_WRITES": {
319                    "type": "integer",
320                    "example": 1
321                  },
322                  "KEY_VALUE_STORE_LISTS": {
323                    "type": "integer",
324                    "example": 0
325                  },
326                  "REQUEST_QUEUE_READS": {
327                    "type": "integer",
328                    "example": 0
329                  },
330                  "REQUEST_QUEUE_WRITES": {
331                    "type": "integer",
332                    "example": 0
333                  },
334                  "DATA_TRANSFER_INTERNAL_GBYTES": {
335                    "type": "integer",
336                    "example": 0
337                  },
338                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
339                    "type": "integer",
340                    "example": 0
341                  },
342                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
343                    "type": "integer",
344                    "example": 0
345                  },
346                  "PROXY_SERPS": {
347                    "type": "integer",
348                    "example": 0
349                  }
350                }
351              },
352              "usageTotalUsd": {
353                "type": "number",
354                "example": 0.00005
355              },
356              "usageUsd": {
357                "type": "object",
358                "properties": {
359                  "ACTOR_COMPUTE_UNITS": {
360                    "type": "integer",
361                    "example": 0
362                  },
363                  "DATASET_READS": {
364                    "type": "integer",
365                    "example": 0
366                  },
367                  "DATASET_WRITES": {
368                    "type": "integer",
369                    "example": 0
370                  },
371                  "KEY_VALUE_STORE_READS": {
372                    "type": "integer",
373                    "example": 0
374                  },
375                  "KEY_VALUE_STORE_WRITES": {
376                    "type": "number",
377                    "example": 0.00005
378                  },
379                  "KEY_VALUE_STORE_LISTS": {
380                    "type": "integer",
381                    "example": 0
382                  },
383                  "REQUEST_QUEUE_READS": {
384                    "type": "integer",
385                    "example": 0
386                  },
387                  "REQUEST_QUEUE_WRITES": {
388                    "type": "integer",
389                    "example": 0
390                  },
391                  "DATA_TRANSFER_INTERNAL_GBYTES": {
392                    "type": "integer",
393                    "example": 0
394                  },
395                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
396                    "type": "integer",
397                    "example": 0
398                  },
399                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
400                    "type": "integer",
401                    "example": 0
402                  },
403                  "PROXY_SERPS": {
404                    "type": "integer",
405                    "example": 0
406                  }
407                }
408              }
409            }
410          }
411        }
412      }
413    }
414  }
415}

Tester MCP Client OpenAPI definition

OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.

OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.

By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.

You can download the OpenAPI definitions for Tester MCP Client from the options below:

If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.

You can also check out our other API clients:

Developer
Maintained by Apify

Actor Metrics

  • 4 monthly users

  • 1 star

  • Created in Jan 2025

  • Modified a day ago