Skip to content

342 fixes - #394

Open
JoseLuisC99 wants to merge 19 commits into
oracle:mainfrom
JoseLuisC99:342-fixes
Open

342 fixes#394
JoseLuisC99 wants to merge 19 commits into
oracle:mainfrom
JoseLuisC99:342-fixes

Conversation

@JoseLuisC99

@JoseLuisC99 JoseLuisC99 commented Jul 24, 2026

Copy link
Copy Markdown
Member

Description

Adds the OCI Oracle Database Observability MCP server package with two MCP server entry points:

  • oracle.oci-opsi-mcp-server for Operations Insights observability tools
  • oracle.oci-dbm-mcp-server for Database Management observability tools

The 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, and pydantic==2.12.3.

Fixes #342

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

How Has This Been Tested?

  • uv run python -m compileall oracle
  • Verified both pyproject.toml console entry-point modules import successfully.
  • uv run python -m pytest --cov=. --cov-branch --cov-report=term-missing
  • make lint
  • git diff --check main

Test Configuration:

  • Firmware version: N/A
  • Hardware: macOS arm64
  • Toolchain: Python 3.13.3, uv 0.6.17, pytest 9.0.3
  • SDK: OCI Python SDK 2.174.0, FastMCP 3.2.4

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings (dependency warning from fastmcp/authlib, Remediate Dependabot alerts for Python dependencies across Oracle and OCI MCP servers #340)
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

Signed-off-by: José Luis Castro <jlcastrog99@gmail.com>
Signed-off-by: José Luis Castro <jlcastrog99@gmail.com>
@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Jul 24, 2026
@JoseLuisC99 JoseLuisC99 mentioned this pull request Jul 24, 2026
17 tasks
@JoseLuisC99

Copy link
Copy Markdown
Member Author

Hi @dustin-sale, any update?

@JoseLuisC99 JoseLuisC99 reopened this Jul 29, 2026
@dustin-sale

Copy link
Copy Markdown
Contributor

@JoseLuisC99 my apologies, I have not had a chance to get to this. Here are some initial changes that are needed:

  • Have each server under its own directory in /src. Makefile loops through /src and it wont account for nested mcp servers.
  • Add a CHANGELOG.md and README.md for each server.
  • We recently added oracle-mcp-common with common auth utils. We prefer that these are used to keep things consistent. Please see oci-cloud-mcp-server or oci-database-mcp-server for usage examples.

JoseLuisC99 and others added 8 commits July 29, 2026 12:17
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>
@JoseLuisC99

Copy link
Copy Markdown
Member Author

@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 dustin-sale left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread src/oci-oracle-db-observability-mcp-server/pyproject.toml Outdated
Comment thread src/oci-oracle-db-observability-mcp-server/CHANGELOG.md
@JoseLuisC99

Copy link
Copy Markdown
Member Author

Hi @dustin-sale, I have addressed your comments.

@dustin-sale dustin-sale left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 lint and make test project=oci-oracle-db-observability-mcp-server passed; 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.

Comment thread src/oci-oracle-db-observability-mcp-server/pyproject.toml
@JoseLuisC99

Copy link
Copy Markdown
Member Author

Hi @dustin-sale, I have addressed your comments.

@dustin-sale dustin-sale left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 in pyproject.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.

JoseLuisC99 and others added 2 commits August 14, 2026 16:51
Signed-off-by: José Luis Castro García <jose.lu.castro@oracle.com>
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.

Add Oracle DB Observability MCP servers for OPSI and DBM

2 participants