{"componentChunkName":"component---src-templates-docs-js","path":"/guides/mcp","result":{"data":{"site":{"siteMetadata":{"title":"Documentation | LoadFocus","docsLocation":""}},"mdx":{"fields":{"id":"e23758d3-184c-50ad-8f16-12fa0de1dc72","title":"AI Assistants (MCP)","slug":"/guides/mcp","locale":"en-GB"},"body":"var _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"AI Assistants (MCP)\",\n  \"metaTitle\": \"LoadFocus MCP Server: Connect Claude and AI Assistants | Guides | LoadFocus\",\n  \"metaDescription\": \"Connect Claude and other AI assistants to LoadFocus with the Model Context Protocol (MCP). Setup, the full tool catalog for load testing, page speed and API monitoring, plus example workflows.\",\n  \"order\": 8\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"Run LoadFocus from your AI assistant (MCP)\"), mdx(\"p\", null, \"The LoadFocus MCP server lets an AI assistant such as Claude operate your LoadFocus account directly. You ask in plain language (\\\"load test my checkout page from Europe\\\", \\\"set up an API monitor for this endpoint\\\", \\\"how did my Core Web Vitals trend this week?\\\") and the assistant uses LoadFocus tools to create tests, run them, read results, and report back.\"), mdx(\"p\", null, \"It works across every LoadFocus service through a single connection:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Cloud, k6 and JMeter load testing\"), \" (\", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"loadfocus.com/load-testing\"), \")\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Page Speed monitoring\"), \" with Lighthouse and Core Web Vitals (\", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"loadfocus.com/page-speed-monitoring\"), \")\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"API monitoring\"), \" with scheduled checks, assertions and alerts (\", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"loadfocus.com/api-monitoring\"), \")\")), mdx(\"p\", null, \"Everything runs inside your account and your active team, with your plan limits enforced by the LoadFocus backend exactly as they are in the dashboard. The assistant cannot do anything you could not do yourself in the UI.\"), mdx(\"h2\", null, \"What is MCP?\"), mdx(\"p\", null, \"The Model Context Protocol (MCP) is an open standard that lets AI assistants connect to external tools and data. LoadFocus exposes its platform as an MCP server, so any MCP-capable client (Claude Desktop, the Claude web connectors, and other MCP clients) can call LoadFocus tools on your behalf once you authorize it.\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Server URL:\"), \" \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"https://mcp.loadfocus.com/api\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Sign-in:\"), \" your normal LoadFocus account (OAuth)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Scope of access:\"), \" the team you are currently working in\")), mdx(\"h2\", null, \"Connect your assistant\"), mdx(\"p\", null, mdx(\"span\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"720px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/docs/static/4f2504fc3d18b6ede7e50b3e77388b46/37523/connect-to-claude.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"43%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAIAAAC9o5sfAAAACXBIWXMAAAsTAAALEwEAmpwYAAACDklEQVQoz2OQUHSQVLHiFNFl5FFl4FQGIQ4lEOJUYuBSgXIh4lyqDJwKIjIeVnaT9E0b2QX1GPgkLQSlLTmEjMUVHbRNArVNAw2twvQtQvTMQ1T0fPQtQoysQzWN/fQsArVMfSVVrLnFbeQ1UqSUo1kF9Rm4xWx5xR14xJzU9aN8Q6pcvEsdPUp8g6t9g6s9/Mvs3XPd/QucvHKcfbJtXBPMHSOY+LQYeJQZ+NRZhAwZhGR8hWX8ROWChKWD+CWChKQi+CUCVbWmWloeN7PYbWa+X0NnPoeQE5uAHYuABYuAIYugHquQPquQAUizpFKctEqyjGq6vFq2oma+kmaRgkaef/CKjMzzSclH09JOhUWtk1CKFJELEpDx4pZwYBM2YQHpBGtW0ChS0ipT0a5S1alV02tQ12tS020OCOuLS+6Liu+KjG8NjKiXUU0RlY8Skg3glXLjELWEaTZg0NBv1TLs0jGaoGs8Wc9kqr7pNH3Tqep6k5Q0exU02mRUaiQVi2TUciRVkkUVIgVkfLnE7VmFjaCaDcxmGVksMLVaZm6z2sJmnbnNWjPr1WbWy02sFhiYz9Ax7lXXb1LUKpdRyxFXjBOUDeSRcGETMWUR0gc528J2nbX9NjunfQ4uRxxdjzm6HLF33m/jsMPSboOJ1TJ90+maht0qOrVyGgWSyknCciG8Uu7sohYsQoZAzQBwKHo43rbXwQAAAABJRU5ErkJggg==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Connect to Claude from the LoadFocus MCP page at loadfocus.com/mcp\",\n    \"title\": \"Connect to Claude from the LoadFocus MCP page at loadfocus.com/mcp\",\n    \"src\": \"/docs/static/4f2504fc3d18b6ede7e50b3e77388b46/37523/connect-to-claude.png\",\n    \"srcSet\": [\"/docs/static/4f2504fc3d18b6ede7e50b3e77388b46/772e8/connect-to-claude.png 200w\", \"/docs/static/4f2504fc3d18b6ede7e50b3e77388b46/e17e5/connect-to-claude.png 400w\", \"/docs/static/4f2504fc3d18b6ede7e50b3e77388b46/37523/connect-to-claude.png 720w\"],\n    \"sizes\": \"(max-width: 720px) 100vw, 720px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"You can connect in two ways: an interactive OAuth sign-in (best for Claude), or an API key (best for scripts).\"), mdx(\"h3\", null, \"Option A: OAuth (recommended, for Claude and interactive clients)\"), mdx(\"p\", null, \"This is the easiest path and never exposes a long-lived key.\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"In your MCP client, add a custom connector / MCP server with the URL:\"), mdx(\"pre\", {\n    parentName: \"li\"\n  }, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"https://mcp.loadfocus.com/api\\n\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"The client opens a LoadFocus sign-in page. Log in with your normal LoadFocus account.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Review and approve the access request. LoadFocus asks for:\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Read access\"), \" (\", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"mcp:read\"), \") so the assistant can list and read your tests, monitors and results.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Write access\"), \" (\", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"mcp:write\"), \") so it can create and run tests and monitors when you ask.\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"You are returned to your client and the LoadFocus tools become available.\"))), mdx(\"p\", null, \"The connection uses standard OAuth 2.0 with PKCE. Access tokens last 30 days and refresh automatically, so you only sign in occasionally. You can revoke a connection at any time from your LoadFocus account.\"), mdx(\"h3\", null, \"Option B: API key (for scripts and non-interactive clients)\"), mdx(\"p\", null, \"If your MCP client supports a bearer token instead of an interactive login, you can authenticate with a LoadFocus API key.\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Create or copy an API key from \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"loadfocus.com/account/api-keys\"), \".\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Configure your client to send the header:\"), mdx(\"pre\", {\n    parentName: \"li\"\n  }, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"Authorization: Bearer YOUR_LOADFOCUS_API_KEY\\n\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"To target a specific team, also send a \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Team-Id\"), \" header with the team id. Without it, your default team is used.\"))), mdx(\"p\", null, \"An API key grants full read and write access, so treat it like a password.\"), mdx(\"h2\", null, \"Plans: what is free and what needs an upgrade\"), mdx(\"p\", null, \"The MCP server respects the same plan rules as the dashboard:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Free plans\"), \" can create and run \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"cloud URL load tests\"), \", browse results, and use the read tools, Page Speed and API monitoring features within their normal limits.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"k6 and JMeter\"), \" test creation and execution require a \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"paid plan\"), \".\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"AI test analysis\"), \" consumes AI credits from your plan.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Page Speed checks and other usage are capped per plan. Ask the assistant to \\\"check my plan limits\\\" at any time.\")), mdx(\"p\", null, \"When a tool needs a higher plan, it returns a clear \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"upgrade_required\"), \" message rather than failing silently.\"), mdx(\"h2\", null, \"Tools available\"), mdx(\"p\", null, \"Tools are grouped by service below. Read tools are safe to call anytime. Write tools change your account (create, run, delete), and a few are marked \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"costs money\"), \" (they start a real test or check) or \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"destructive\"), \" (they delete data permanently).\"), mdx(\"h3\", null, \"Account and discovery\"), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tool\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"What it does\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"search_tools\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Search the tool catalog by keyword, category or intent. Useful for finding the right tool.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"list_teams\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"List the teams you belong to, with the active one marked.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"set_current_team\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Switch the active team for following actions.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"get_plan\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Show your plan and account status.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"get_plan_limits\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Show current usage and remaining quota (Page Speed usage and AI credits).\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"get_ai_credits\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Show your AI analysis credit balance.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"list_test_locations\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"List the AWS regions available for tests and monitors.\")))), mdx(\"h3\", null, \"Load testing (cloud, k6, JMeter)\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Read\")), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tool\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"What it does\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"list_load_tests\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"List saved load tests for a type (cloud, k6 or jmeter), optionally filtered by name.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"get_test_config\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Read a saved test's configuration (clients, duration, regions, scripts).\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"get_test_run_status\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Current state of a run (pending, running, finished, aborted).\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"get_test_results_summary\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Aggregate result for a finished run (response times, throughput, error rate).\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"get_test_results_timeseries\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Time-series metrics over a window, for charts and trends.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"get_test_labels\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"The per-request labels (samplers) recorded for a run.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"get_test_baseline\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"A stored baseline so you can compare \\\"is this run faster than before?\\\".\")))), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Write\")), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tool\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"What it does\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"create_cloud_load_test\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Create a cloud test that hits a URL with N clients for a duration, from one or more regions. Runs on any plan.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"create_k6_test\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Create a k6 test from an inline script (paid plan).\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"create_jmeter_test\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Create a JMeter test from an inline \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \".jmx\"), \" script (paid plan).\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"run_load_test\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Start a saved test. \", mdx(\"strong\", {\n    parentName: \"td\"\n  }, \"Costs money.\"))), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"stop_load_test\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Stop a running k6 or JMeter test.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"analyze_test_results\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Run AI analysis on a finished run and explain bottlenecks. \", mdx(\"strong\", {\n    parentName: \"td\"\n  }, \"Uses AI credits.\"))))), mdx(\"h3\", null, \"Page Speed monitoring (Lighthouse and Core Web Vitals)\"), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tool\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"What it does\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"list_pagespeed_monitors\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"List your Page Speed monitors.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"create_pagespeed_monitor\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Create a monitor for a URL (mobile or desktop, region, schedule, custom headers).\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"run_pagespeed_check\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Run a check now and wait for the result (up to about two minutes). \", mdx(\"strong\", {\n    parentName: \"td\"\n  }, \"Costs money.\"))), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"get_pagespeed_results\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Latest scores and Core Web Vitals for a monitor.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"get_pagespeed_trends\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Average score and pass/fail trend over a window (for example the last 7 days).\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"set_pagespeed_schedule\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Turn scheduled checks on or off for a monitor.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"create_pagespeed_alert\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Alert when a category score (performance, accessibility, best practices, SEO, PWA) drops below a threshold.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"delete_pagespeed_monitor\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Delete a monitor and its results. \", mdx(\"strong\", {\n    parentName: \"td\"\n  }, \"Destructive.\"))))), mdx(\"h3\", null, \"API monitoring\"), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tool\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"What it does\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"check_api_endpoint\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Run a one-off check against any endpoint right now (method, headers, body, basic auth, assertions, regions). No saved monitor needed. \", mdx(\"strong\", {\n    parentName: \"td\"\n  }, \"Costs money.\"))), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"list_api_monitors\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"List your saved API monitors.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"create_api_monitor\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Create a scheduled monitor (request plus assertions plus schedule).\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"run_api_monitor\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Run a saved monitor now. \", mdx(\"strong\", {\n    parentName: \"td\"\n  }, \"Costs money.\"))), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"set_api_monitor_schedule\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Turn scheduled checks on or off.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"get_api_monitor_results\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Latest results, or the current run state.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"create_api_alert\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Alert on a threshold, for example response time over N milliseconds or a status code condition.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"get_alert_history\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"List a monitor's alerts, or the firing history of one alert.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"delete_api_monitor\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Delete a monitor, its results and its schedule together. \", mdx(\"strong\", {\n    parentName: \"td\"\n  }, \"Destructive.\"))))), mdx(\"h2\", null, \"Resources and prompts\"), mdx(\"p\", null, \"Beyond tools, the server publishes \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"resources\"), \" (read-only context the assistant can pull in automatically) and \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"prompts\"), \" (ready-made multi-step workflows you can trigger by name).\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Resources\")), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"account-summary\"), \": your identity, plan, status and active team.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"current-team\"), \": the team this connection is scoped to.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"locations\"), \": the regions available for tests and monitors.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"recent-tests\"), \": your most recent tests and monitors across all services, in one list.\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Prompts\")), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"run-load-test\"), \": create and run a load test against a URL, recommend a config within your plan, run it, poll to completion, and summarize the results. Confirms before spending.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"analyze-last-run\"), \": find your most recent finished load test, pull results, run AI analysis, and explain bottlenecks and next steps.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"setup-api-monitor\"), \": turn an endpoint or a curl command into a scheduled monitor: test it once, propose assertions, then create it with a schedule and optional alert.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"weekly-performance-report\"), \": a cross-service weekly summary of load tests, Core Web Vitals trends and API uptime, with regressions called out.\")), mdx(\"h2\", null, \"Example conversations\"), mdx(\"p\", null, \"You do not need to know tool names. Just describe what you want. Here are typical flows.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Run a cloud load test\")), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\\"Load test \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://example.com/checkout\"\n  }, \"https://example.com/checkout\"), \" with 200 users for 5 minutes from US East and Frankfurt, then tell me the p95 and error rate.\\\"\")), mdx(\"p\", null, \"The assistant checks your plan and locations, proposes a config and asks you to confirm (running a test costs money), creates the test, runs it, polls until it finishes, and reports the summary. You can then say \\\"analyze this run\\\" for an AI breakdown of bottlenecks.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Set up an API monitor from a curl command\")), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\\"Here is a curl command for my API. Test it once, then set up a monitor every 5 minutes that alerts me if it is slower than 800 ms or returns a non-200.\\\"\")), mdx(\"p\", null, \"The assistant parses the request, runs a one-off \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"check_api_endpoint\"), \", proposes assertions, and after you confirm creates the monitor, schedule and alert.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Track Core Web Vitals\")), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\\"Create a mobile Page Speed monitor for my homepage, run it now, and alert me if performance drops below 80.\\\"\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Weekly health check\")), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\\"Give me this week's performance report across all my tests and monitors, and call out anything that regressed.\\\"\")), mdx(\"h2\", null, \"Permissions, safety and limits\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Read vs write.\"), \" Read tools never change anything. Write tools require the \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"mcp:write\"), \" permission you granted at sign-in. If you connect with read-only access, the assistant can browse but not create or run.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Spending is explicit.\"), \" Tools that start a real test or check are marked as costing money, and the built-in prompts confirm with you before spending.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Destructive actions.\"), \" Deleting a monitor removes its results permanently. The assistant should confirm before deleting.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Team scoping.\"), \" Every action runs inside your active team. Use \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"list_teams\"), \" and \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"set_current_team\"), \" (or just ask \\\"switch to team X\\\") to change it.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Your plan is the boundary.\"), \" Plan limits are enforced server-side. A free account asking to run a JMeter test gets a clear upgrade message, not a broken result.\")), mdx(\"h2\", null, \"Troubleshooting\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"The assistant says it needs to sign in again.\"), \" Tokens refresh automatically, but if a connection is revoked or expires you simply re-authorize through the same connector flow.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"A tool says \\\"upgrade required\\\".\"), \" That feature needs a paid plan. Ask \\\"what plan am I on?\\\" and upgrade at \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"loadfocus.com/pricing\"), \".\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"A tool says \\\"insufficient scope\\\".\"), \" You connected with read-only access. Reconnect and approve write access to create or run tests.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Wrong account or team.\"), \" Ask the assistant to \\\"list my teams\\\" and \\\"switch to team X\\\", or check the \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"account-summary\"), \" resource.\")), mdx(\"h2\", null, \"Related LoadFocus services\"), mdx(\"p\", null, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://loadfocus.com/\"\n  }, \"LoadFocus\"), \" is a cloud testing platform that offers:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://loadfocus.com/load-testing\"\n  }, \"Load Testing\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://loadfocus.com/jmeter-load-testing\"\n  }, \"JMeter Load Testing\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://loadfocus.com/page-speed-monitoring\"\n  }, \"Website Performance Monitoring\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://loadfocus.com/api-monitoring\"\n  }, \"API Monitoring\"))));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#run-loadfocus-from-your-ai-assistant-mcp","title":"Run LoadFocus from your AI assistant (MCP)","items":[{"url":"#what-is-mcp","title":"What is MCP?"},{"url":"#connect-your-assistant","title":"Connect your assistant","items":[{"url":"#option-a-oauth-recommended-for-claude-and-interactive-clients","title":"Option A: OAuth (recommended, for Claude and interactive clients)"},{"url":"#option-b-api-key-for-scripts-and-non-interactive-clients","title":"Option B: API key (for scripts and non-interactive clients)"}]},{"url":"#plans-what-is-free-and-what-needs-an-upgrade","title":"Plans: what is free and what needs an upgrade"},{"url":"#tools-available","title":"Tools available","items":[{"url":"#account-and-discovery","title":"Account and discovery"},{"url":"#load-testing-cloud-k6-jmeter","title":"Load testing (cloud, k6, JMeter)"},{"url":"#page-speed-monitoring-lighthouse-and-core-web-vitals","title":"Page Speed monitoring (Lighthouse and Core Web Vitals)"},{"url":"#api-monitoring","title":"API monitoring"}]},{"url":"#resources-and-prompts","title":"Resources and prompts"},{"url":"#example-conversations","title":"Example conversations"},{"url":"#permissions-safety-and-limits","title":"Permissions, safety and limits"},{"url":"#troubleshooting","title":"Troubleshooting"},{"url":"#related-loadfocus-services","title":"Related LoadFocus services"}]}]},"parent":{"__typename":"File","relativePath":"en/guides/mcp.md"},"frontmatter":{"metaTitle":"LoadFocus MCP Server: Connect Claude and AI Assistants | Guides | LoadFocus","metaDescription":"Connect Claude and other AI assistants to LoadFocus with the Model Context Protocol (MCP). Setup, the full tool catalog for load testing, page speed and API monitoring, plus example workflows.","order":8}},"allMdx":{"edges":[{"node":{"fields":{"slug":"/","title":"Welcome to the New LoadFocus Documentation"}}},{"node":{"fields":{"slug":"/guides","title":"How-To Guides"}}},{"node":{"fields":{"slug":"/knowledge-base","title":"Knowledge Base"}}},{"node":{"fields":{"slug":"/pricing","title":"Pricing FAQs"}}},{"node":{"fields":{"slug":"/knowledge-base/how-to-update-card-details","title":"How to Update Card Details for Failed Payments"}}},{"node":{"fields":{"slug":"/knowledge-base/understanding-declined-card-payments","title":"Why has my card payment been declined?"}}},{"node":{"fields":{"slug":"/guides/api-monitoring","title":"API Monitoring"}}},{"node":{"fields":{"slug":"/knowledge-base/understanding-differences-between-http-and-https","title":"Differences between HTTP and HTTPS"}}},{"node":{"fields":{"slug":"/knowledge-base/using-3rd-party-tools-to-load-test-website-locally","title":"How to load testing locally hosted website or API"}}},{"node":{"fields":{"slug":"/guides/external-reports","title":"External Reporting"}}},{"node":{"fields":{"slug":"/knowledge-base/using-google-analytics-and-no-requests-while-load-testing","title":"No traffic in Google Analytics while load testing"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing","title":"Load Testing with Apache JMeter"}}},{"node":{"fields":{"slug":"/knowledge-base/what-is-an-http-method","title":"What is an HTTP request method"}}},{"node":{"fields":{"slug":"/knowledge-base/using-query-parameters","title":"How to Use URL Query Parameters"}}},{"node":{"fields":{"slug":"/guides/k6-load-testing","title":"k6 Load Testing"}}},{"node":{"fields":{"slug":"/guides/mcp","title":"AI Assistants (MCP)"}}},{"node":{"fields":{"slug":"/guides/monitor-website-performance","title":"Monitor Website Performance"}}},{"node":{"fields":{"slug":"/guides/onboarding","title":"LoadFocus Onboarding"}}},{"node":{"fields":{"slug":"/guides/teams","title":"Teams Management"}}},{"node":{"fields":{"slug":"/knowledge-base/using-valid-url-endpoints","title":"What is a Valid URL for a Load Test"}}},{"node":{"fields":{"slug":"/guides/load-testing","title":"Load Testing"}}},{"node":{"fields":{"slug":"/guides/external-reports/azure-app-insights-integration","title":"Azure App Insights Integration"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/downloading-jmx-csv-files","title":"Downloading .JMX and .CSV Files in LoadFocus"}}},{"node":{"fields":{"slug":"/guides/monitor-website-performance/alert-configuration","title":"Alert Configuration"}}},{"node":{"fields":{"slug":"/guides/load-testing/ai-credits","title":"AI Credits"}}},{"node":{"fields":{"slug":"/guides/k6-load-testing/analyzing-k6-test-results","title":"Analyzing k6 Load Test Results"}}},{"node":{"fields":{"slug":"/guides/external-reports/datadog-integration","title":"Datadog Integration"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/how-to-run-new-apache-jmeter-load-test","title":"How to Run a New Apache JMeter Load Test"}}},{"node":{"fields":{"slug":"/guides/k6-load-testing/how-to-run-k6-load-test","title":"How to Run a New k6 Load Test"}}},{"node":{"fields":{"slug":"/guides/monitor-website-performance/alert-metrics","title":"Alert Metrics"}}},{"node":{"fields":{"slug":"/guides/load-testing/authorization-code-grant-type-oauth-2-0","title":"Authorization Code Grant Type in OAuth 2.0"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/api-check-results","title":"Understanding API Check Results"}}},{"node":{"fields":{"slug":"/guides/monitor-website-performance/core-web-vitals-metrics","title":"What are the Core Web Vitals?"}}},{"node":{"fields":{"slug":"/guides/load-testing/analyzing-load-test-results","title":"How to Check Load Test Results"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/new-api-check","title":"How to Create a New API Check"}}},{"node":{"fields":{"slug":"/guides/load-testing/baseline-comparison-between-load-tests","title":"Baseline Comparison Between Load Tests"}}},{"node":{"fields":{"slug":"/guides/monitor-website-performance/getting-started","title":"Getting Started"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/jmeter-integration-ci-cd","title":"Load Testing API Integration"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/load-generators-hardware-infrastructure-jmeter","title":"What are the hardware resources allocated to my account for load generators?"}}},{"node":{"fields":{"slug":"/guides/load-testing/client-credentials-grant-type-oauth-2-0","title":"Client Credentials Grant Type in OAuth 2.0"}}},{"node":{"fields":{"slug":"/guides/monitor-website-performance/how-to-create-new-alert","title":"Create a New Alert"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/load-testing-anomalies","title":"Load Testing Anomalies"}}},{"node":{"fields":{"slug":"/guides/load-testing/common-http-error-codes","title":"Common HTTP Error status codes"}}},{"node":{"fields":{"slug":"/guides/monitor-website-performance/http-authentication","title":"HTTP Authentication"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/load-testing-engine-health-monitoring","title":"Engine Health Monitoring"}}},{"node":{"fields":{"slug":"/guides/monitor-website-performance/how-to-run-new-website-performance-test","title":"Create New Website Performance Test"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/load-testing-error-analysis","title":"Error Analysis"}}},{"node":{"fields":{"slug":"/guides/load-testing/crafting-perfect-test-names","title":"Crafting Perfect Test Names"}}},{"node":{"fields":{"slug":"/guides/load-testing/decoding-average-response-times","title":"Decoding Average Response Time"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/load-testing-insights","title":"Load Testing Insights"}}},{"node":{"fields":{"slug":"/guides/monitor-website-performance/sitemap-import","title":"Sitemap Import"}}},{"node":{"fields":{"slug":"/guides/load-testing/demo","title":"Demo"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/load-testing-jtl-file-analysis","title":"Logs & JTL File Analysis"}}},{"node":{"fields":{"slug":"/guides/load-testing/deep-dive-samples-in-load-testing","title":"What are Samples in Load Testing?"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/load-testing-jtl-jmeter-log-file-analysis","title":"JMeter Log File Analysis"}}},{"node":{"fields":{"slug":"/guides/load-testing/end-time-in-load-testing","title":"Understanding the Significance of 'End Time' in Load Testing"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/load-testing-timeline-analysis","title":"Timeline View"}}},{"node":{"fields":{"slug":"/guides/load-testing/erros-and-reponse-codes","title":"Errors and Response Codes"}}},{"node":{"fields":{"slug":"/guides/load-testing/geographical-test-location-in-load-testing","title":"Geographical Test Location in Load Testing"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/uploading-jmeter-files-step-by-step-guide","title":"Uploading JMeter Files to LoadFocus: A Step-by-Step Guide"}}},{"node":{"fields":{"slug":"/guides/load-testing/getting-started","title":"Getting Started"}}},{"node":{"fields":{"slug":"/guides/load-testing/headers-and-manage-presets","title":"Headers and Header Presets"}}},{"node":{"fields":{"slug":"/guides/load-testing/how-to-url-query-parameters","title":"Query Parameters"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/using-multiple-csv-files-with-jmeter-engines","title":"Using Multiple CSV Files with JMeter Engines in LoadFocus"}}},{"node":{"fields":{"slug":"/guides/load-testing/granularity-in-load-test-results-and-charts","title":"Granularity in Load Test Results and Chart Display"}}},{"node":{"fields":{"slug":"/guides/load-testing/how-to-run-new-load-test","title":"How to Run a New Load Test"}}},{"node":{"fields":{"slug":"/guides/load-testing/http-methods-overview-load-testing","title":"HTTP Methods: An Overview"}}},{"node":{"fields":{"slug":"/guides/load-testing/implicit-grant-type-oauth-2-0","title":"Implicit Grant Type in OAuth 2.0"}}},{"node":{"fields":{"slug":"/guides/load-testing/load-test-result-ai-analysis","title":"Load Testing Results AI Analysis"}}},{"node":{"fields":{"slug":"/guides/load-testing/load-generators-hardware-infrastructure","title":"What are the hardware resources allocated to my account for load generators?"}}},{"node":{"fields":{"slug":"/guides/load-testing/password-credentials-grant-type-oauth-2-0","title":"Password Credentials Grant Type in OAuth 2.0"}}},{"node":{"fields":{"slug":"/guides/load-testing/refresh-token-grant-type-oauth-2-0","title":"Refresh Token Grant Type in OAuth 2.0"}}},{"node":{"fields":{"slug":"/guides/load-testing/start-time-in-load-testing","title":"Understanding the Significance of Start Time in Load Testing"}}},{"node":{"fields":{"slug":"/guides/load-testing/using-cookies","title":"Using Cookies"}}},{"node":{"fields":{"slug":"/guides/load-testing/what-are-iterations-load-testing","title":"Mastering Iterations in Load Testing: A Deep Dive"}}},{"node":{"fields":{"slug":"/guides/load-testing/use-cases","title":"Use Cases"}}},{"node":{"fields":{"slug":"/guides/load-testing/what-are-virtual-users-load-testing","title":"What are Virtual Users in Load Testing"}}},{"node":{"fields":{"slug":"/guides/load-testing/what-is-delay-when-running-a-load-test","title":"What is Delay when running a Load Test?"}}},{"node":{"fields":{"slug":"/guides/load-testing/what-is-duration-in-load-testing","title":"What is Duration in Load Testing"}}},{"node":{"fields":{"slug":"/guides/load-testing/what-is-grant-type","title":"What is a Grant Type?"}}},{"node":{"fields":{"slug":"/guides/load-testing/what-is-ramp-up-steps-in-load-testing","title":"What is Ramp Up Steps in Load Testing"}}},{"node":{"fields":{"slug":"/guides/load-testing/what-is-oauth-2-0-authorization","title":"OAuth 2.0 Authorization"}}},{"node":{"fields":{"slug":"/guides/load-testing/what-is-test-run-id","title":"What is a Test Run Id?"}}},{"node":{"fields":{"slug":"/guides/load-testing/what-is-ramp-up-time-in-load-testing","title":"What is Ramp Up Time in Load Testing"}}},{"node":{"fields":{"slug":"/guides/monitor-website-performance/largest-contentful-paint","title":"Largest Contentful Paint (LCP)"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/jmeter-integration-ci-cd/azure-devops","title":"Azure DevOps"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/new-api-check/activate-deactivate","title":"Activate/Deactivate"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/new-api-check/alert-channels","title":"Alert Channels"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/jmeter-integration-ci-cd/circleci","title":"CircleCI"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/new-api-check/frequency","title":"Frequency"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/new-api-check/assertions","title":"Assertions"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/jmeter-integration-ci-cd/github-actions","title":"GitHub Actions"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/new-api-check/locations","title":"Locations"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/jmeter-integration-ci-cd/overview","title":"Integrating JMeter API Client with CI/CD Pipelines"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/new-api-check/mute-unmute","title":"Mute/Unmute"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/jmeter-integration-ci-cd/gitlab-ci-cd","title":"GitLab CI/CD"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/new-api-check/save-run","title":"Save and Run"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/new-api-check/webhook-channels","title":"Webhook Channel"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/new-api-check/friendly-check-name","title":"Friendly Check Name"}}},{"node":{"fields":{"slug":"/guides/jmeter-load-testing/jmeter-integration-ci-cd/jenkins","title":"Jenkins"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/new-api-check/response-time-limits","title":"Response Time Limits"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/new-api-check/request-preview","title":"Request Preview"}}},{"node":{"fields":{"slug":"/guides/api-monitoring/new-api-check/request-configuration","title":"Request Configuration"}}}]}},"pageContext":{"id":"e23758d3-184c-50ad-8f16-12fa0de1dc72","locale":"en-GB"}},"staticQueryHashes":["361965504","361965504","417421954","417421954","445494767","445494767"]}