From b5be59b94023208e38167fd38c2fc8f43e822d15 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 27 Jun 2026 04:49:50 +0000 Subject: [PATCH] Add Cursor CLI Astro MCP config Co-authored-by: mberman84 --- README.md | 7 ++++++- adapters/cursor/.cursor/mcp.astro.json | 12 ++++++++++++ tests/test_skill.py | 21 +++++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 adapters/cursor/.cursor/mcp.astro.json diff --git a/README.md b/README.md index 40251a4..68a9731 100644 --- a/README.md +++ b/README.md @@ -345,10 +345,15 @@ commit SHA so an older score can never authorize a replacement head. start an MCP subprocess. - Claude Code: install the plugin under `adapters/claude-code`. - Cursor: copy the files under `adapters/cursor` or use its MCP configuration. + Cursor CLI can power an Astro source checkout by copying + `adapters/cursor/.cursor/mcp.astro.json` to `.cursor/mcp.json`; that config + launches the local `./packages/agent-merge-queue[mcp]` package instead of the + public release. - Other clients: connect `deploybot-mcp` over stdio or call the CLI directly. The Claude Code and Cursor MCP configurations launch the pinned public release -with `uvx`. +with `uvx`; the Astro Cursor CLI variant uses the same command against the +source tree package. The `mergeq` and `mergeq-mcp` command aliases remain for compatibility. ## Command overview diff --git a/adapters/cursor/.cursor/mcp.astro.json b/adapters/cursor/.cursor/mcp.astro.json new file mode 100644 index 0000000..d23eaf3 --- /dev/null +++ b/adapters/cursor/.cursor/mcp.astro.json @@ -0,0 +1,12 @@ +{ + "mcpServers": { + "deploybot": { + "command": "uvx", + "args": [ + "--from", + "./packages/agent-merge-queue[mcp]", + "deploybot-mcp" + ] + } + } +} diff --git a/tests/test_skill.py b/tests/test_skill.py index 53acb29..0fe2fd6 100644 --- a/tests/test_skill.py +++ b/tests/test_skill.py @@ -179,6 +179,27 @@ def test_cursor_adapter_exposes_status_workflow(self) -> None: self.assertIn("never freeze a", rule) self.assertIn("queue merely to inspect it", rule) + def test_cursor_cli_can_use_astro_source_tree_package(self) -> None: + config = json.loads( + ( + ROOT / "adapters" / "cursor" / ".cursor" / "mcp.astro.json" + ).read_text(encoding="utf-8") + ) + args = config["mcpServers"]["deploybot"]["args"] + + self.assertEqual(config["mcpServers"]["deploybot"]["command"], "uvx") + self.assertIn("./packages/agent-merge-queue[mcp]", args) + self.assertIn("deploybot-mcp", args) + self.assertNotIn(RELEASE_COMMIT, " ".join(args)) + + def test_readme_documents_cursor_cli_for_astro(self) -> None: + readme = (ROOT / "README.md").read_text(encoding="utf-8") + + self.assertIn("Cursor CLI", readme) + self.assertIn("Astro source checkout", readme) + self.assertIn("mcp.astro.json", readme) + self.assertIn("./packages/agent-merge-queue[mcp]", readme) + def test_github_workflow_wakes_after_named_ci_finishes(self) -> None: workflow = (ROOT / "examples" / "github-workflow.yml").read_text( encoding="utf-8"