Skip to content

Expose DevUI's capabilities as MCP functions#47414

Merged
phillip-kruger merged 1 commit intoquarkusio:mainfrom
phillip-kruger:chappie-mcp
Jul 24, 2025
Merged

Expose DevUI's capabilities as MCP functions#47414
phillip-kruger merged 1 commit intoquarkusio:mainfrom
phillip-kruger:chappie-mcp

Conversation

@phillip-kruger
Copy link
Copy Markdown
Member

@phillip-kruger phillip-kruger commented Apr 17, 2025

The PR introduces the ability to expose capabilities of the DevUI as MCP tools (and others), essentially making
a Quarkus application running in Dev Mode an MCP server.

Screencast_20250722_133945.mp4
Screencast_20250724_144657.mp4

image

TODO:

  • Making sure the Streamable Endpoint is handling all requests expected from Goose or similar.
  • Implement the resources from build time data
  • Implement the resources from recorded values
  • Implement the resourcesTemplates from Workspace Items
  • Add the parameters to the runtime tools
  • Add the parameters to the deployment tools
  • If the auto description is not enough, find a way to add descriptions.
  • Maybe have a filter to filter out some methods to not be used in MCP ?
  • Populate the Dev UI MCP Server page with info on how to use this.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 23, 2025

🎊 PR Preview 55e0ee3 has been successfully built and deployed to https://quarkus-pr-main-47414-preview.surge.sh/version/main/guides/

  • Images of blog posts older than 3 months are not available.
  • Newsletters older than 3 months are not available.

@quarkus-bot quarkus-bot bot added the area/dependencies Pull requests that update a dependency file label Apr 29, 2025
@quarkus-bot quarkus-bot bot added area/arc Issue related to ARC (dependency injection) area/core area/hibernate-orm Hibernate ORM labels May 1, 2025
@phillip-kruger phillip-kruger force-pushed the chappie-mcp branch 10 times, most recently from 12e4dc9 to 442856c Compare May 7, 2025 22:37
@phillip-kruger phillip-kruger force-pushed the chappie-mcp branch 3 times, most recently from 2e1de66 to 6f65eed Compare June 27, 2025 07:21
@geoand
Copy link
Copy Markdown
Contributor

geoand commented Jun 27, 2025

This has so much potential and we should do whatever we can to get it up and running ASAP!

One thing I see that we will need is to also be able to provide metadata for tool arguments, not just the tool method itself. Never mind, I just saw that @JsonRpcDescription can also be applied to method params.

@geoand
Copy link
Copy Markdown
Contributor

geoand commented Jun 27, 2025

Making sure the SSE Endpoint is handling all requests expected from Goose or similar.

Is this missing entirely or is it just not working currently? Asking because I didn't anything relevant in the code

@phillip-kruger phillip-kruger force-pushed the chappie-mcp branch 5 times, most recently from 7df155a to 57bc969 Compare July 24, 2025 04:40
@phillip-kruger phillip-kruger marked this pull request as ready for review July 24, 2025 04:41
@quarkus-bot

This comment has been minimized.

@phillip-kruger
Copy link
Copy Markdown
Member Author

@cescoffier @geoand - I think we are good to to for the initial version:

  • Only dev-ui internal json-rpc methods has been exposed as mcp (by adding a description)
  • By default (for now) the mcp server is disabled. You need to switch this on with config. This will allow us to play with this until we are happy.
  • Resource is also working. I have only tested with the "info" extension. We can add more resources from other extensions in followup PRs.
  • I'll add and update documentation in a follow up PR.
  • I'll follow up with PRs for each extension to expose their relevant json-rpc methods as mcp.

There are still a few things we can implement, like promps, resourceTemplates and certain notifications (we would need SSE for that). But I think this is a workable start.

Signed-off-by: Phillip Kruger <phillip.kruger@gmail.com>
@phillip-kruger
Copy link
Copy Markdown
Member Author

Also /cc @mkouba

Copy link
Copy Markdown
Contributor

@geoand geoand left a comment

Choose a reason for hiding this comment

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

This is so neat!

+1 for getting in now and improving it iteratively

@quarkus-bot
Copy link
Copy Markdown

quarkus-bot bot commented Jul 24, 2025

Status for workflow Quarkus Documentation CI

This is the status report for running Quarkus Documentation CI on commit f6fc52d.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

Warning

There are other workflow runs running, you probably need to wait for their status before merging.

@quarkus-bot

This comment has been minimized.

@quarkus-bot
Copy link
Copy Markdown

quarkus-bot bot commented Jul 24, 2025

Status for workflow Quarkus CI

This is the status report for running Quarkus CI on commit f6fc52d.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

You can consult the Develocity build scans.

@geoand geoand added area/dev-ui and removed area/core area/arc Issue related to ARC (dependency injection) area/vertx area/hibernate-orm Hibernate ORM area/dependencies Pull requests that update a dependency file labels Jul 24, 2025
Copy link
Copy Markdown
Member

@cescoffier cescoffier left a comment

Choose a reason for hiding this comment

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

LGTM - make sure this is marked experimental.

@phillip-kruger phillip-kruger merged commit 01031ce into quarkusio:main Jul 24, 2025
112 of 113 checks passed
@quarkus-bot quarkus-bot bot added this to the 3.26 - main milestone Jul 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants