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>
Description
Adds the OCI Oracle Database Observability MCP server package with two MCP server entry points:
oracle.oci-opsi-mcp-serverfor Operations Insights observability toolsoracle.oci-dbm-mcp-serverfor Database Management observability toolsThe change includes typed MCP tools, OCI SDK client/auth integration, pagination and response mapping helpers, generated Pydantic models,
README setup guidance, package metadata, lockfile, and unit tests with coverage enforcement.
Dependencies required by this package are declared in
pyproject.toml:fastmcp==3.2.4,oci==2.174.0, andpydantic==2.12.3.Fixes #342
Type of change
How Has This Been Tested?
uv run python -m compileall oraclepyproject.tomlconsole entry-point modules import successfully.uv run python -m pytest --cov=. --cov-branch --cov-report=term-missingmake lintgit diff --check mainTest Configuration:
Checklist: