Add OCI Speech MCP Server - #426
Open
Prabhutva wants to merge 2 commits into
Open
Conversation
Prabhutva
requested review from
AlaaShaker,
dustin-sale,
gebhardtr and
krisrice
as code owners
August 27, 2026 09:46
dustin-sale
requested changes
Aug 27, 2026
dustin-sale
left a comment
Contributor
There was a problem hiding this comment.
Review by @dustin-sale via Codex.
Requested changes
src/oci-speech-mcp-server/oracle/oci_speech_mcp_server/utils/responses.py:129— [P1] Write local artifacts privately and atomically.src/oci-speech-mcp-server/oracle/oci_speech_mcp_server/tools/transcription.py:468— [P1] Preserve or clean uploaded media when job creation fails.
Additional review notes
- [P2] Surface created notification resources after partial failure.
- [P2] Validate model-specific transcription options.
- [P2] Preserve actionable local I/O errors.
Validation
make test project=oci-speech-mcp-serverpassed: 45 tests and 97.21% coverage.make lintand all reported GitHub checks passed. Live OCI operations were not rerun.
See the inline comments in this review for evidence, impact, and suggested remediation.
- write local outputs privately and atomically - clean uploaded media when transcription job creation fails - return structured state after partial notification or cleanup failures - validate Oracle and Whisper model-specific options - preserve actionable, sanitized local I/O diagnostics - add regression tests and update documentation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds the initial release of the OCI Speech MCP Server (
v1.0.0), a locally runstdioMCP server that enables agents and MCP clients to use OCI Speech through the OCI Python SDK.Transcription Jobs
Adds the following tools:
create_transcription_jobget_transcription_joblist_transcription_jobsupdate_transcription_jobdelete_transcription_jobcancel_transcription_jobchange_transcription_job_compartmentlist_transcription_tasksget_transcription_taskcancel_transcription_taskdownload_transcription_resultstranscribe_local_fileThe
transcribe_local_filetool provides an end-to-end local transcription workflow. It validates and uploads a local media file to OCI Object Storage, creates and optionally monitors the transcription job, and downloads successful JSON and SRT outputs to a restricted local directory.Transcription features include diarization, configurable speaker counts, punctuation, profanity filtering, multiple transcription models and domains, Whisper prompting, and SRT output.
Resources and prompts provide guidance for:
Customizations
Adds the following tools:
create_customizationget_customizationlist_customizationsupdate_customizationdelete_customizationchange_customization_compartmentCustomization inputs support inline entities, pronunciations, reference examples, Object Storage datasets, and reusable entity customizations.
The accompanying resource and prompt explain how to select, structure, create, train, update, and reuse OCI Speech customizations.
Text to Speech
Adds the following tools:
list_voicessynthesize_speechSpeech synthesis supports plain text and SSML, configurable voices, audio formats, sample rates, and safe local output handling.
The TTS and SSML resources include examples and guidance for:
Extras
Adds the following tool:
setup_transcription_notificationsThis tool creates or reuses an OCI Notifications topic and creates OCI Events rules for transcription job completion and failure events. Subscription creation remains an explicit user action so confirmation endpoints are not configured without consent.
Additional resources and prompts cover:
Realtime transcription guidance keeps the persistent WebSocket connection in the user's application, where audio capture and playback occur, instead of holding a long-running connection inside the
stdioMCP server.Motivation and context
This server makes OCI Speech workflows directly accessible to MCP-compatible agents while continuing to use the user's existing OCI credentials and authorization policies.
It reduces the setup required for workflows involving Object Storage, transcription result retrieval, diarization, customizations, SSML generation, speech synthesis, and transcription job notifications.
The implementation separates tools, prompts, and resources by capability so future OCI Speech modules can be added without expanding the server entry point.
The server also provides:
oracle-mcp-commonoci-speech-mcp/1.0.0OCI SDK user agentDependencies and prerequisites
Runtime dependencies include:
fastmcp==3.4.5oci==2.182.1oracle-mcp-common>=0.1.0,<0.2.0pydantic>=2.13.4,<3Users require a configured OCI authentication profile and the appropriate OCI Speech, Object Storage, Events, Notifications, and IAM permissions for the operations they intend to use.
Type of change
How Has This Been Tested?
The server was validated with:
make test project=oci-speech-mcp-server make lintAutomated validation results:
oci-speech-mcp/1.0.0user agentLive
stdioMCP validation confirmed discovery of all 21 tools, 11 resources, and 9 prompts. Every resource was read and every prompt was rendered.Transcription Jobs
Customizations
Text to Speech
Extras
To reproduce the live tests:
stdio.Test Configuration:
us-phoenix-1Checklist: