342 fixes - #394
Conversation
Signed-off-by: José Luis Castro <jlcastrog99@gmail.com>
Signed-off-by: José Luis Castro <jlcastrog99@gmail.com>
|
Hi @dustin-sale, any update? |
|
@JoseLuisC99 my apologies, I have not had a chance to get to this. Here are some initial changes that are needed:
|
Signed-off-by: José Luis Castro García <jose.lu.castro@oracle.com>
Signed-off-by: José Luis Castro García <jose.lu.castro@oracle.com>
Signed-off-by: José Luis Castro García <jose.lu.castro@oracle.com>
|
@dustin-sale everything is ready. We have modified our approach to align this MCP with our current agent engine and have significantly reduced the number of tools. |
dustin-sale
left a comment
There was a problem hiding this comment.
This implementation has a promising unified discovery surface and passes its unit-test/coverage gates, but it is not ready to merge.
- PR description needs to be updated with the single oci-db-observability-mcp-server
- Pagination is unusable for most catalog operations
- Unit tests coverage gaps:
- page-token preservation
- strict schema parity
- mutation isolation
- The generic invocation tool also exposes state-changing DBM operations without a separate destructive boundary.
- Most advertised “exact” schemas accept arbitrary or incorrectly typed arguments.
- Documented uvx command does not match the published distribution
Please resolve those contract and safety issues and populate the changelog before another review.
|
Hi @dustin-sale, I have addressed your comments. |
dustin-sale
left a comment
There was a problem hiding this comment.
Requested changes
src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/tools.json:247— [P1] Remove or gate state-changing operations from the read-only catalog.- Dependency updates in
pyproject.toml.
Additional review notes
src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py:12— [P2] Use the registered MCP tool names in discovery guidance.
Validation
make lintandmake test project=oci-oracle-db-observability-mcp-serverpassed; 31 tests passed with 91.17% coverage.- The wheel builds and current CI is green, but a locked-SDK audit found five state-changing catalog operations marked
mutable: false.
See the inline comments in this review for evidence, impact, and suggested remediation.
|
Hi @dustin-sale, I have addressed your comments. |
dustin-sale
left a comment
There was a problem hiding this comment.
Requested changes
No blocking changes requested.
Additional review notes
src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/mcp.py:1— [P2] Add the repository-required license headers.src/oci-oracle-db-observability-mcp-server/oracle/oci_oracle_db_observability_mcp_server/metadata/skills.json:5— [P2] Align skill descriptions with the remaining read-only tools.src/oci-oracle-db-observability-mcp-server/pyproject.toml:12— [P3] Refresh the PR description with the updated package dependencys inpyproject.toml.
Validation
- Lint, lock validation, packaging, current CI, and all 39 tests pass with 91.48% coverage.
- An independent locked-SDK audit confirms all 229 catalog operations are GET-only.
See the inline comments in this review for evidence, impact, and suggested remediation.
Signed-off-by: José Luis Castro García <jose.lu.castro@oracle.com>
dustin-sale
left a comment
There was a problem hiding this comment.
@JoseLuisC99 can you update the PR description to the single entry point and update the file directories to keep it consistent with the package name:
EX: src/oci-db-observability-mcp-server/oracle/oci_db_observability_mcp_server
- removes 'oracle'
|
@dustin-sale fixed |
Description
Adds one unified, read-only OCI Database Observability MCP server for Operations Insights (OPSI) and Database Management (DBM).
oracle.oci-db-observability-mcp-serveroracle.oci_db_observability_mcp_serversrc/oci-db-observability-mcp-serverThe server supports STDIO and HTTP streaming transports, OCI authentication through
oracle-mcp-common, and OCI IAM/IDCS request-token authentication for HTTP deployments.Its MCP surface provides:
get_oci_compartmentandlist_oci_compartmentslist_dbo_skills,list_dbo_tools, anddescribe_dbo_toolinvoke_dbo_toolThe catalog includes 34 workflow skills and 229 GET-backed OPSI/DBM operations. Operation schemas are aligned with the locked OCI Python SDK, validate arguments before client construction, and support pagination using
nextPage.Dependencies are declared in
pyproject.toml:fastmcp==3.4.5oci==2.182.1pydantic==2.13.4jsonschema>=4.25.0,<5.0.0oracle-mcp-common>=0.1.2,<0.2.0Fixes #342
Type of change
How Has This Been Tested?
uv run python -m compileall oracleuv run python -m pytest --cov=oracle.oci_db_observability_mcp_server --cov-branch --cov-report=term-missing oracle/oci_db_observability_mcp_server/testsmake lintgit diff --checkTest Configuration:
Checklist