-
Notifications
You must be signed in to change notification settings - Fork 9
feat(mcp): add Event Bus MCP server #81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
daniyal-rana
wants to merge
28
commits into
main
Choose a base branch
from
experiment/feat/mcp
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
28 commits
Select commit
Hold shift + click to select a range
1a3ffd2
feat(mcp): add DSX Exchange MCP server
daniyal-rana 589dd60
feat(mcp): harden dsx exchange mcp v1
daniyal-rana 9f0c9df
feat(mcp): support standalone bounded event bus tools
daniyal-rana ce61681
docs(mcp): align gateway service target port
daniyal-rana e90c280
refactor(mcp): rename auth context files
daniyal-rana c58e08e
refactor(mcp): remove server-side watch lifecycle
daniyal-rana df59422
docs(mcp): document stateless subscribe UX
daniyal-rana 95c942a
docs(mcp): clarify admission limiter behavior
daniyal-rana ea0cac7
refactor(mcp): split schema index implementation
daniyal-rana 89134aa
refactor(mcp): separate server transport setup
daniyal-rana e77b79e
build(mcp): tighten docker build context
daniyal-rana 154dd91
docs(mcp): add client skill guidance
daniyal-rana 0bee4bd
build(mcp): publish core server build targets
daniyal-rana cde1aa8
docs(mcp): polish public release guidance
daniyal-rana f66c888
docs(mcp): clarify standalone local deployment
daniyal-rana 2647998
fix(mcp): return schema no-match tool errors
daniyal-rana 38da37d
docs(mcp): update client skill guidance
daniyal-rana 6ef2082
docs(mcp): keep docs local-only
daniyal-rana a80d945
docs(mcp): simplify MCP README
daniyal-rana 8abcd3a
chore: merge main into mcp branch
daniyal-rana d1cd1dd
build(mcp): refresh embedded BMS schema
daniyal-rana 1011908
chore(mcp): keep load testing local-only
daniyal-rana c0e70dd
docs(mcp): align architecture notes with code
daniyal-rana a57241b
build(mcp): derive embedded schemas from root specs
daniyal-rana dcc377f
docs(mcp): clarify preview validation status
daniyal-rana 9d91291
ci(mcp): align local lint with CI
daniyal-rana 0867548
ci(mcp): use dockerhub mirror for skaffold build
daniyal-rana 0042317
docs(mcp): remove skill markdown license block
daniyal-rana File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -8,3 +8,5 @@ | |
| /local/nats/secrets/ | ||
|
|
||
| .vscode/ | ||
| .cursor/ | ||
| .gocache/ | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -68,6 +68,7 @@ dummy-bms: ## Publish looping dummy BMS data to the CSC MQTT broker | |
| status: ## Check deployment status | ||
| @echo "CSC Cluster:" | ||
| @kubectl get pods -n event-bus --context kind-csc 2>/dev/null || echo " NATS: Not deployed" | ||
| @kubectl get pods -n mcp-backends --context kind-csc 2>/dev/null || echo " MCP: Not deployed" | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. treat this as a component of event bus, not in an mcp backend bucket |
||
| @echo "" | ||
| @echo "CPC-1 Cluster:" | ||
| @kubectl get pods -n event-bus --context kind-cpc-1 2>/dev/null || echo " NATS: Not deployed" | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -60,13 +60,14 @@ Use `make skaffold-run` for deploy-only local setup. | |
|
|
||
| ### Skaffold | ||
|
|
||
| The root `skaffold.yaml` imports `local/infra/skaffold.yaml` and | ||
| `local/nats/skaffold.yaml`. Skaffold deploys the cluster infrastructure, builds | ||
| the auth-callout image, and installs the event-bus chart. Host scripts still | ||
| handle prerequisites, Kind cluster creation, the local registry, and generated | ||
| NATS secret material. The local Skaffold entrypoints import smaller domain files | ||
| for MetalLB, Envoy Gateway, cert-manager, metrics-server, Prometheus, Keycloak, | ||
| auth-callout image build, secret manifests, and NATS releases. | ||
| The root `skaffold.yaml` imports `local/infra/skaffold.yaml`, | ||
| `local/nats/skaffold.yaml`, and `mcp/dsx-exchange-mcp/skaffold.yaml`. Skaffold | ||
| deploys the cluster infrastructure, builds the auth-callout and MCP images, and | ||
| installs the event-bus and MCP charts. Host scripts still handle prerequisites, | ||
| Kind cluster creation, the local registry, and generated NATS secret material. | ||
| The local Skaffold entrypoints import smaller domain files for MetalLB, Envoy | ||
| Gateway, cert-manager, metrics-server, Prometheus, Keycloak, auth-callout image | ||
| build, secret manifests, NATS releases, and the MCP backend. | ||
|
|
||
| For iterative development, keep Skaffold running in one terminal: | ||
|
|
||
|
|
@@ -165,3 +166,28 @@ make dummy-bms | |
| The dummy BMS target uses the same local e2e environment and Envoy Gateway | ||
| LoadBalancer path as the functional and performance tests. It publishes to the | ||
| CSC broker at `tcp://172.18.200.1:1883` unless `CSC_BROKER_URL` is overridden. | ||
|
|
||
| ### DSX Exchange MCP | ||
|
|
||
| The local stack also deploys `dsx-exchange-mcp` into the CSC Kind cluster. This | ||
| is a direct backend deployment; it does not install an MCP gateway. It is intended | ||
| for manual MCP client checks against the same local Event Bus services used by | ||
| the e2e tests. | ||
|
|
||
| This path uses the normal local Event Bus clusters only: `kind-csc`, | ||
| `kind-cpc-1`, and `kind-cpc-2`. The MCP backend runs as a Helm release in | ||
| `kind-csc` under namespace `mcp-backends`; no separate MCP gateway cluster is | ||
| created or required. | ||
|
|
||
| After `make skaffold-run`, expose the MCP backend locally: | ||
|
|
||
| ```bash | ||
| cd ../mcp/dsx-exchange-mcp | ||
| make port-forward-kind | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. metallb load balancer service instead of port forwarding |
||
| ``` | ||
|
|
||
| Configure the MCP client with `http://127.0.0.1:18080/mcp`. The local MCP Kind | ||
| deployment uses the Event Bus noauth path by default, so do not configure an | ||
| MCP bearer token and do not send a dummy token. Schema discovery tools do not | ||
| connect to MQTT. Broker-backed tools connect to the local Event Bus without | ||
| MQTT username/password, matching the local evaluation noauth setup. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| /bin/ | ||
| /reports/ | ||
| *.test | ||
| *.out | ||
| .env | ||
| .idea/ | ||
| .vscode/ | ||
| .claude/ | ||
| context/ | ||
| /schema/ | ||
| /schemas/.gitignore | ||
| /schemas/README.md | ||
| /schemas/cloud-events-example.yaml | ||
| /schemas/asyncapi/ | ||
| /internal/specs/data/* | ||
| !/internal/specs/data/.gitkeep | ||
|
|
||
| # Local-only MCP validation helpers and notes; not part of the released server. | ||
| /cmd/dsx-exchange-token-proxy/ | ||
| /deploy/local-check/ | ||
| /docs/ |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
symlink the specs, don't copy them around