Skip to content

feat: add project tools (list, get, open, create, update) - #120

Merged
kpal81xd merged 4 commits into
mainfrom
feat/project-tools
Oct 13, 2026
Merged

kpal81xd merged 4 commits into
mainfrom
feat/project-tools

Conversation

@kpal81xd

@kpal81xd kpal81xd commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

Refs #119. Needs playcanvas/editor#2340.

Changes

  • New project tools: list_projects, get_project, open_project, create_project (with optional open: true) and update_project. All of them go through the connected Editor tab, and there is no delete.
  • open_project and create_project with open: true wait for the Editor to reload and reconnect, then return get_project. Opening the project that's already open skips the reload.
  • create_project takes owner as a username. It doesn't open a project the backend is still setting up, and returns meta.initializing instead.
  • The branch tools' reload-and-reconnect helper moved to src/tools/reload.ts and takes its follow-up query as a parameter. Branch behaviour is unchanged.
  • The Editor now sends project in its register frame. On the blank /editor page this is null, and calls to other tools there return "No project is open…" instead of the generic unsupported-method error.
  • README and plugin README describe the project tools, connecting from the project manager, and what they do with your session. The context-cost figure is now ~43k (130 tools).

Tested end to end

I ran this branch as the agent against playcanvas.com, with the Editor PR loaded through use_local_frontend: list, get, create, update, open (including from the blank page), create with open: true, reconnecting after the reload, the no-project errors, and backend error pass-through. All of them behaved as described. Details are in playcanvas/editor#2340.

Manual smoke test

  1. With the Editor PR deployed, open playcanvas.com/editor and connect from the MCP button next to NEW PROJECT. Expected: the button shows Connected.
  2. Ask the agent to add a cube to the scene. Expected: it says no project is open and suggests listing or opening one.
  3. Ask the agent to open one of your projects. Expected: the tab moves into the project and the agent confirms which project is now open.
  4. Ask the agent to create a project named "Spinning Cube Demo", open it, and add a spinning cube. Expected: the new project opens in the tab and the cube is added there.
  5. Ask the agent to switch branches. Expected: it behaves as before, reloading and reporting the new branch.

@kpal81xd
kpal81xd marked this pull request as ready for review October 13, 2026 11:09
@kpal81xd
kpal81xd merged commit b19fa06 into main Oct 13, 2026
4 checks passed
@kpal81xd
kpal81xd deleted the feat/project-tools branch October 13, 2026 11:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant