Add OCI Vision MCP server - #397
Conversation
dustin-sale
left a comment
There was a problem hiding this comment.
This is a substantial and well-tested new server, but I found three blockers before merge:
get_resolved_config()requires profile, region, and default compartment globally, contradicting the documented defaults and blocking tools that do not need a Vision compartment.- Image validation accepts formats and sizes OCI Vision does not support.
- OCI authentication bypasses the repository-required
oracle-mcp-commonauthentication context.
Please also remove the coverage exclusions for the image-validation and Object Storage modules and add coverage for their safety-sensitive failure paths.
dc20332 to
556a17e
Compare
|
Hi @dustin-sale Thanks for the review, I have addressed all your comments. Please check. |
dustin-sale
left a comment
There was a problem hiding this comment.
Requested changes
authentication/session_signer.py:88— [P1] Preserve profile-region fallback during 401 handling.authentication/auth.py:124— [P1] Propagate custom OCI config paths to session-repair commands.
Additional review notes
config/schemas.py:331— [P2] Publish an accurate upload source schema.config/settings.py:209— [P3] Correct the auto-auth catalog default.
Validation
make lintpassed.make test project=oci-vision-mcp-serverpassed: 251 passed, 2 skipped, 90.86% coverage.- The two authentication edge failures were reproduced independently.
See the inline comments in this review for evidence, impact, and suggested remediation.
|
HI @dustin-sale, addressed all the open comments. Please check. |
dustin-sale
left a comment
There was a problem hiding this comment.
Requested changes
authentication/auth.py:153— [P1] Use the authentication config destination option.
Additional review notes
config/settings.py:198— [P2] Align both catalog defaults with runtime defaults.
Validation
make lintandmake test project=oci-vision-mcp-serverpassed; 252 tests passed, 2 skipped, with 90.77% coverage.- OCI CLI 3.90.0 parsing confirmed that
--config-filedoes not populate the authentication destination.
See the inline comments in this review for evidence, impact, and suggested remediation.
|
@dustin-sale Addressed the open comments. |
dustin-sale
left a comment
There was a problem hiding this comment.
Previous requested changes have all been addressed.
I am ready to approve once the dependencies are updated, see my comment.
dustin-sale
left a comment
There was a problem hiding this comment.
Approved. @gebhardtr will need to review as well.
Description
Adds the OCI Vision MCP server under
src/oci-vision-mcp-server.This server provides stdio MCP tools for OCI Vision image analysis and related Object Storage image workflows, including image analysis, OCR, object detection, face detection, async image jobs, Object Storage upload/list/fetch, stored result lookup, and runtime configuration status.
The implementation follows the repository MCP server structure and public packaging expectations:
pyproject.toml,uv.lock,README.md,CHANGELOG.md,LICENSE.txt,Containerfile, andoracle/package source.oracle.oci-vision-mcp-server./mcp, and/.well-known/*endpoints are not exposed.additional_user_agenttelemetry derived from package metadata.Fixes: N/A
Type of change
How Has This Been Tested?
Validated locally from
src/oci-vision-mcp-server:uv sync --locked --all-extras --devuv run pytest --cov=. --cov-branch --cov-report=term-missing236 passed, 2 skipped91.31%uv builddetect_facescompleted successfully on a local image.detect_textcompleted successfully on a local screenshot and returned OCR lines.Containerfile.pyproject.tomlmetadata and entry point validated.Test Configuration:
Checklist: