{
  "markdown": "# Qlane agent plugin\n\nInstalls [Qlane MCP](https://qlane.ai) into your AI coding editor, so your agent can reach\nyour Qlane projects, test targets and test-case counts without leaving the editor.\n\n## Which region?\n\nQlane runs two independent regional stacks. The plugin registers **one server for each**, and\nyou connect the one hosting your organization:\n\n| Server     | Endpoint                          |\n| ---------- | --------------------------------- |\n| `qlane-eu` | `https://mcp-eu.qlane.ai/api/mcp` |\n| `qlane-us` | `https://mcp-us.qlane.ai/api/mcp` |\n\nAuthenticate that one and leave the other alone. An unconnected server contributes none of\nits own tools — your editor shows it with two sign-in helpers and nothing else — so it costs\nyou nothing and is not an error state. If you connect the wrong one, every call returns\na 403 naming the correct host — nothing is lost, and the fix is to connect the other server.\n\nBoth are plain static URLs, so this works identically on every editor. Nothing is configured,\nsubstituted, or typed.\n\n## Install\n\nQlane MCP requires a Qlane account. Your editor prompts you to sign in the first time it calls\nthe server.\n\n### Claude Code\n\n```bash\nclaude plugin marketplace add qlaneai/agent-plugin\nclaude plugin install qlane@qlane-plugin\n```\n\nThen run `/mcp` and authenticate `qlane-eu` **or** `qlane-us` — whichever hosts your\norganization. There is no configuration step and nothing to type.\n\n### VS Code and GitHub Copilot\n\nAdd this repo to `chat.plugins.marketplaces`:\n\n```json\n{\n  \"chat.plugins.marketplaces\": [\"qlaneai/agent-plugin\"]\n}\n```\n\nIf nothing appears after adding it, check that `chat.plugins.enabled` is `true`.\n\n### Cursor\n\nCursor reads the root `plugin.json` and loads this plugin without changes. Add the repository\nas a marketplace, install `qlane`, then authenticate the server for your region.\n\n### Kiro\n\nSame as Cursor — add the repository, install, authenticate your region's server.\n\n### Codex\n\nCodex splits this across two places: you register the marketplace on the CLI, but you install\nfrom it in the ChatGPT desktop app. There is no CLI install command.\n\n```bash\ncodex plugin marketplace add qlaneai/agent-plugin\n```\n\nThen open the **Plugins Directory** in the ChatGPT desktop app and install `qlane` from it.\nCodex prompts you to sign in the first time it calls the server.\n\n## Opening this repository in Claude Code\n\nYou will see `qlane-eu` and `qlane-us` listed as **Pending approval**. That is expected and\nharmless: Claude Code reads a `.mcp.json` at a repository root as _project-scoped_ MCP\nconfiguration, so this repo's `.mcp.json` — the plugin's own manifest — is being read as if it\nwere yours. Decline it, and install the plugin with the commands above instead.\n\n## Without the plugin\n\nAny MCP client can point at the endpoint directly. For Claude Code:\n\n```bash\nclaude mcp add --transport http --scope user qlane https://mcp-eu.qlane.ai/api/mcp\n```\n\nSwap the host for `mcp-us.qlane.ai` if your organization is US-hosted.\n\n## What it can do\n\nRead your projects, test targets and test-case counts, and plan tests for a local diff before\na pull request exists. Planning a test consumes Qlane credits.\n\n## Development\n\n```bash\nnpm ci\nnpm run check\n```\n\n`check` runs Prettier, markdownlint, JSON Schema validation of the portable manifests, and the\nunit tests. It makes no network calls, so it works offline and in a sandboxed CI runner.\n\n```bash\nnpm run format      # apply Prettier\nnpm run lint:md:fix # apply markdownlint's safe fixes\n```\n\nTwo checks need the Claude Code CLI and so are not part of `check`, which has to run on a\nrunner that does not have it:\n\n```bash\nclaude plugin validate --strict .   # manifest shapes; --strict makes warnings fatal\nclaude plugin tag --dry-run         # what the next release tag would be\n```\n\nThe version lives in `plugin.json` only. The marketplace entry deliberately declares no\n`version` of its own: `plugin.json` wins at install time, so a second copy could only ever\nagree or be silently ignored.\n\n**No manifest may contain a placeholder.** Both regional URLs are literal strings in every\nmanifest. `${user_config.*}` resolves only in the Claude Code CLI — the portable Agent Plugins\nschema cannot even express `userConfig` (`additionalProperties: false`), and claude.ai treats\nan MCP `url` as an opaque connector identity, so a templated host reaches registration verbatim\nand fails to resolve. A test enforces this.\n\n## License\n\n[MIT](LICENSE).\n",
  "bytes": 4475,
  "sha": "5125fa0ded7ac07d885c0c535977b8b42f13dc69b1cc71638e103639bb588fea",
  "repo_slug": "qlaneai/agent-plugin",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_ai_qlane_qlane_6fc640f8/readme"
}