Skip to content

161 oracle jms mcp server#175

Open
bhuveshsharma09 wants to merge 9 commits intooracle:mainfrom
bhuveshsharma09:161-oracle-jms-mcp-server
Open

161 oracle jms mcp server#175
bhuveshsharma09 wants to merge 9 commits intooracle:mainfrom
bhuveshsharma09:161-oracle-jms-mcp-server

Conversation

@bhuveshsharma09
Copy link
Copy Markdown

@bhuveshsharma09 bhuveshsharma09 commented Mar 31, 2026

Description

This PR expands the OCI JMS MCP server from basic fleet inventory/discovery into a broader JMS troubleshooting and compliance workflow.

It adds new JMS tools for fleet health summaries, detailed fleet health diagnostics, JMS notices, and Java runtime compliance reporting. It
also improves optional filter handling, updates the documentation to reflect the full JMS server behavior, and expands both unit and end-to-end
test assets.

Summary of changes:

  • add summarize_fleet_health
  • add get_fleet_health_diagnostics
  • add list_jms_notices
  • add java_runtime_compliance
  • add supporting JMS models for health summaries, diagnostics, notices, and compliance reports
  • improve handling of blank optional filters so empty values are treated as unset inputs instead of being passed through to the OCI SDK
  • document authentication, endpoint selection, startup, troubleshooting, and the full 13-tool JMS surface in the JMS README
  • add detailed per-tool reference documentation in DETAILS_OF_TOOLS.md
  • expand JMS unit tests for notices, health, compliance, pagination, and missing-release-metadata handling
  • expand JMS e2e mocks, routes, feature scenarios, and step assertions
  • register the JMS server in the shared tests/e2e/features/mcphost.json
  • remove the separate JMS-only e2e host config
  • clean up generated/local-only JMS artifacts from the tracked repo

Motivation and context:

  • the JMS server needed stronger troubleshooting support beyond inventory lookups
  • fleet health workflows now provide both a chat-friendly summary view and a detailed diagnostics view
  • JMS notices provide a service-side advisory path for troubleshooting
  • Java runtime compliance reporting adds fleet-level visibility into runtime versions, security status, release metadata, and outdated
    installations
  • the JMS documentation and e2e assets now better reflect the actual server capabilities and expected workflows

Dependencies:

  • no new external runtime dependencies were added
  • this PR relies on the existing shared Behave e2e harness
  • note: shared Behave execution is currently blocked by a pre-existing duplicate non-JMS step definition:
    @then("the response should contain a list of listeners")
    in both the load balancer and network load balancer step files

Fixes # (issue)

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update
  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code where necessary
  • I have made corresponding changes to the documentation (README)
  • My changes generate no new warnings
  • I have added tests that prove my feature works
  • New and existing unit tests pass locally

How Has This Been Tested?

  1. JMS unit tests
cd /Users/bhuvesku/Documents/projects/oracle-jms-mcp-server/src/oci-jms-mcp-server
.venv/bin/python -m pytest oracle/oci_jms_mcp_server/tests/test_jms_tools.py oracle/oci_jms_mcp_server/tests/test_jms_models.py --cov=oracle/
oci_jms_mcp_server --cov-report=term-missing

Result:

- 55 passed
- total coverage 90.04%

2. JMS e2e feature assets

cd /Users/bhuvesku/Documents/projects/oracle-jms-mcp-server/tests
.venv/bin/behave e2e/features/oci-jms-mcp-server.feature

Notes:

- JMS e2e mocks, routes, scenarios, and step assertions were expanded to cover the current JMS tool surface
- the shared Behave harness currently has a pre-existing duplicate non-JMS step-definition issue that can abort execution before feature
  runtime:
  the response should contain a list of listeners

3. Live JMS tool verification

- JMS tool behavior was also validated through live reruns documented in the local JMS tool verification report during development
- [x] Test A: Running the Server locally an using Cline Agent to call MCP server

Test Configuration:

- Firmware version: N/A
- Hardware: macOS development machine
- Toolchain: Python 3.13.2, pytest 9.0.2, behave, uv
- SDK: OCI Python SDK 2.160.0

# Checklist:

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my feature works
- [x] New and existing unit tests pass locally with my changes
- [x] Any dependent changes have been merged and published in downstream modules

# How Has This Been Tested?

1. JMS unit tests
```sh
cd /Users/bhuvesku/Documents/projects/oracle-jms-mcp-server/src/oci-jms-mcp-server
.venv/bin/python -m pytest oracle/oci_jms_mcp_server/tests/test_jms_tools.py oracle/oci_jms_mcp_server/tests/test_jms_models.py --cov=oracle/
oci_jms_mcp_server --cov-report=term-missing

Result:

55 passed in 3.92s

TOTAL                                   723     72  90.04%
Required test coverage of 90.0% reached. Total coverage: 90.04%

2. JMS e2e feature

cd /Users/bhuvesku/Documents/projects/oracle-jms-mcp-server/tests
.venv/bin/behave e2e/features/oci-jms-mcp-server.feature

Result when the shared Behave harness duplicate-step blocker is resolved:

1 feature passed, 0 failed, 0 skipped
10 scenarios passed, 0 failed, 0 skipped
40 steps passed, 0 failed, 0 skipped

Current shared-harness note:

- shared Behave execution may still fail before JMS scenario startup because of the pre-existing duplicate non-JMS step definition:
  @then("the response should contain a list of listeners")
- [x] Test A
- [x] Test B

Test Configuration:

- Firmware version: N/A
- Hardware: macOS development machine
- Toolchain: Python 3.13.2, pytest 9.0.2, behave, uv
- SDK: OCI Python SDK 2.160.0

bhuveshsharma09 and others added 9 commits March 17, 2026 19:27
  Added the new `oci-jms-mcp-server` package with FastMCP server bootstrap,
  typed JMS response models, and 9 read-only JMS tools for fleets,
  plugins, installation sites, fleet configuration, and inventory/usage
  summaries.

  Also added unit tests, JMS-specific e2e mocks and feature coverage,
  package metadata, `uv` workflow files, and README/tool documentation.
  - add `java_runtime_compliance` to the JMS MCP server
  - add runtime compliance models and update JMS notice typing
  - add unit tests for compliance and notice handling
  - expand JMS e2e mocks, feature scenarios, and step assertions
  - register JMS in shared `tests/e2e/features/mcphost.json`
  - remove the separate `mcphost-jms.json`
  - update JMS README and tool details docs
@oracle-contributor-agreement
Copy link
Copy Markdown

Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (OCA).
The following contributors of this PR have not signed the OCA:

To sign the OCA, please create an Oracle account and sign the OCA in Oracle's Contributor Agreement Application.

When signing the OCA, please provide your GitHub username. After signing the OCA and getting an OCA approval from Oracle, this PR will be automatically updated.

If you are an Oracle employee, please make sure that you are a member of the main Oracle GitHub organization, and your membership in this organization is public.

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Required At least one contributor does not have an approved Oracle Contributor Agreement. label Mar 31, 2026
@oracle-contributor-agreement
Copy link
Copy Markdown

Thank you for signing the OCA.

@oracle-contributor-agreement oracle-contributor-agreement bot added OCA Verified All contributors have signed the Oracle Contributor Agreement. and removed OCA Required At least one contributor does not have an approved Oracle Contributor Agreement. labels Mar 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant