Skip to content

Conversation

@amishne
Copy link
Contributor

@amishne amishne commented Oct 31, 2025

New MCP experimental tools:

  • "build" tool: A new MCP tool that allows for one-off, non-watched builds of Angular projects, similar to
    ng build.
  • "serve" tools: A group of new MCP tools to manage the development server:
    • "start_devserver": Starts the Angular development server as a background process.
    • "stop_devserver": Stops a running development server.
    • "wait_for_devserver_build": Waits for a build to complete and reports the logs.

Notes:

  • Implementation mostly follows the design doc for build/serve/test workflow.
  • The currently-alive devservers are stored as part of the MCP context, and so are maintained across tool invocations.
  • Build progress detection relies on hardcoding expected strings to match - see "dev-server.ts".
  • Beyond the unit tests, also tested manually in Gemini CLI.
  • A bunch of tools, included these new ones, just return basic unweighted structured content, so added a utility function in a "utils.ts" file for that functionality.

@amishne amishne requested review from clydin and dgp1130 October 31, 2025 20:50
@angular-robot angular-robot bot added detected: feature PR contains a feature commit area: @angular/cli labels Oct 31, 2025
Copy link
Collaborator

@dgp1130 dgp1130 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this together @amishne! Hopefully my comments should be internally consistent, but there might be a few which you addressed in later commits.

I know I left a lot of feedback, feel free to ack and ignore any comments you don't agree with or would rather follow up on separately from this PR. We definitely don't need to expand the scope any more than it already is.

I think probably my most important concern is just about whether we can reduce the dependency on specific log output and hopefully make this a little more durable to internal changes there.

timeout: z
.number()
.optional()
.default(30000)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: @clydin, I'm curious to know what you think a good timeout would be here. I wonder if 30s might be too short such that some larger projects will hit this 100% of the time and the AI might not know to configure it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Waiting for feedback from @clydin but changing to 3 minutes for now.

@alan-agius4 alan-agius4 added action: review The PR is still awaiting reviews from at least one requested reviewer target: minor This PR is targeted for the next minor release labels Nov 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action: review The PR is still awaiting reviews from at least one requested reviewer area: @angular/cli detected: feature PR contains a feature commit target: minor This PR is targeted for the next minor release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants