@robotyxx/robotyx-mcp 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +27 -0
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -228,6 +228,19 @@ const TOOLS = [
228
228
  additionalProperties: false,
229
229
  },
230
230
  },
231
+ {
232
+ name: "get_test_case",
233
+ description: "Fetch a single TestCase with its TestSteps (name, priority, status, description, expectedResult, testData, workflowId, tags + ordered steps). Use this instead of get_testsuite when you only need one case — it returns just that case, not the whole suite. Get the ids from list_testsuites → get_testsuite (or the case list).",
234
+ inputSchema: {
235
+ type: "object",
236
+ properties: {
237
+ testsuite_id: { type: "string", description: "Owning TestSuite id." },
238
+ test_case_id: { type: "string", description: "The TestCase id to fetch." },
239
+ },
240
+ required: ["testsuite_id", "test_case_id"],
241
+ additionalProperties: false,
242
+ },
243
+ },
231
244
  {
232
245
  name: "create_testsuite",
233
246
  description: "Create a new TestSuite (cases-collection for a release/sprint/run). project_id is required for tenancy — the suite and every case added to it inherit it.",
@@ -867,6 +880,20 @@ async function callTool(name, args) {
867
880
  case "get_testsuite": {
868
881
  return await robotyx("GET", `/api/testsuites/${args.testsuite_id}`);
869
882
  }
883
+ case "get_test_case": {
884
+ // The suite endpoint embeds each case's steps, so one GET + filter gives
885
+ // the full case without dumping the whole suite into the model's context.
886
+ const suite = await robotyx("GET", `/api/testsuites/${args.testsuite_id}`);
887
+ const cases = suite?.cases ?? [];
888
+ const tc = cases.find((c) => c.id === args.test_case_id);
889
+ if (!tc) {
890
+ return {
891
+ error: `TestCase ${args.test_case_id} not found in suite ${args.testsuite_id}`,
892
+ available_case_ids: cases.map((c) => c.id),
893
+ };
894
+ }
895
+ return tc;
896
+ }
870
897
  case "create_testsuite": {
871
898
  const body = { name: args.name, projectId: args.project_id };
872
899
  if (args.category)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robotyxx/robotyx-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "type": "module",
5
5
  "description": "MCP server for Robotyx — read your test plans (TestSuites, TestCases, functional TestSteps) and recorded Workflows into Claude Code or any MCP client, e.g. to generate WebDriverIO/Playwright tests in your own repo. Bring your own rx_ API key.",
6
6
  "keywords": [