Skip to content

Add biz.aQute.bnd.mcp MCP server for bnd workspaces - #7490

Draft
peterkir wants to merge 1 commit into
masterfrom
fea-mcp
Draft

peterkir wants to merge 1 commit into
masterfrom
fea-mcp

Conversation

@peterkir

Copy link
Copy Markdown
Contributor

New module exposing bnd via the Model Context Protocol (stdio transport, MCP SDK 2.0.1). Tools: bnd_fragments_list, bnd_workspace_create, bnd_workspace_describe, bnd_build, bnd_resolve, bnd_run_start, bnd_run_stop, bnd_run_status, bnd_http_get.

  • Workspaces: create/describe workspaces from template fragments; hides cnf layout, fragment index loading, require resolution and trust.
  • Runs: build/resolve/launch bndruns, free HTTP port selection, loopback readiness wait, console ring buffer, cleanup on shutdown.
  • LocalHttp: loopback-only HTTP GET with retry for smoke checks.
  • ToolAdapter: generic record/@PARAM to JSON schema binding, structured results with Diagnostics(errors, warnings); results never throw.
  • cnf/ext/central.mvn: add mcp-core, mcp-json-jackson2, jackson 2.21, reactor-core, reactive-streams.
  • bndlib: FragmentTemplateEngine.TemplateUpdater.remove used Map.remove(key, value) on a MultiMap (no-op); use removeValue so the fragment entry is actually dropped. Adds TemplateFragmentsTest.testRemoveUpdate.

Tests: WorkspacesTest, BndMcpServerTest (JSON-RPC over pipe), RunsTest, LocalHttpTest. ./gradlew :biz.aQute.bnd.mcp:test :biz.aQute.bnd.mcp:jar passes.

New module exposing bnd via the Model Context Protocol (stdio transport,
MCP SDK 2.0.1). Tools: bnd_fragments_list, bnd_workspace_create,
bnd_workspace_describe, bnd_build, bnd_resolve, bnd_run_start,
bnd_run_stop, bnd_run_status, bnd_http_get.

- Workspaces: create/describe workspaces from template fragments; hides
  cnf layout, fragment index loading, require resolution and trust.
- Runs: build/resolve/launch bndruns, free HTTP port selection, loopback
  readiness wait, console ring buffer, cleanup on shutdown.
- LocalHttp: loopback-only HTTP GET with retry for smoke checks.
- ToolAdapter: generic record/@PARAM to JSON schema binding, structured
  results with Diagnostics(errors, warnings); results never throw.
- cnf/ext/central.mvn: add mcp-core, mcp-json-jackson2, jackson 2.21,
  reactor-core, reactive-streams.
- bndlib: FragmentTemplateEngine.TemplateUpdater.remove used
  Map.remove(key, value) on a MultiMap (no-op); use removeValue so the
  fragment entry is actually dropped. Adds
  TemplateFragmentsTest.testRemoveUpdate.

Tests: WorkspacesTest, BndMcpServerTest (JSON-RPC over pipe), RunsTest,
LocalHttpTest. ./gradlew :biz.aQute.bnd.mcp:test :biz.aQute.bnd.mcp:jar
passes.

Signed-off-by: peterkir <peter@klib.io>

This branch has not been deployed

No deployments
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.

1 participant