Skip to main content

OPERA Cloud MCP Server

Code style: crackerjack Runtime: oneiric Framework: FastMCP uv Python: 3.13+

Unofficial Model Context Protocol (MCP) server for Oracle OPERA Cloud API integration, enabling AI agents to interact with hospitality management systems.

Features

  • Complete OPERA Cloud Integration: Access to reservations, guests, rooms, operations, and financial data
  • FastMCP Framework: Built on FastMCP for high-performance MCP protocol support
  • Production Ready: Security, monitoring, rate limiting, and Docker deployment
  • 45+ Tools: Comprehensive API coverage across 5 core domains
  • Enterprise Security: OAuth2 authentication, token refresh, and audit logging

Quick Start

Installation

# Clone the repository
git clone https://github.com/lesleslie/opera-cloud-mcp.git
cd opera-cloud-mcp

# Install dependencies
uv sync

# Copy environment template
cp .env.example .env

Configuration

Edit .env with your OPERA Cloud credentials:

OPERA_CLOUD_BASE_URL=https://your-opera-instance.com/api/v1
OPERA_CLOUD_CLIENT_ID=your_client_id
OPERA_CLOUD_CLIENT_SECRET=your_client_secret
OPERA_CLOUD_USERNAME=your_username
OPERA_CLOUD_PASSWORD=your_password

Running the Server

# Development
python -m opera_cloud_mcp

# Or with uv
uv run python -m opera_cloud_mcp

MCP Integration

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "opera-cloud-mcp": {
      "command": "python",
      "args": ["-m", "opera_cloud_mcp"],
      "cwd": "/path/to/opera-cloud-mcp",
      "env": {
        "OPERA_CLOUD_BASE_URL": "https://your-opera-instance.com/api/v1",
        "OPERA_CLOUD_CLIENT_ID": "your_client_id",
        "OPERA_CLOUD_CLIENT_SECRET": "your_client_secret",
        "OPERA_CLOUD_USERNAME": "your_username",
        "OPERA_CLOUD_PASSWORD": "your_password"
      }
    }
  }
}

Other MCP Clients

See example.mcp.json and example.mcp.dev.json for configuration templates.

Available Tools

The server provides 45+ tools across 5 domains:

Reservation Management (15 tools)

  • Search reservations by date, guest, or status
  • Create, modify, and cancel reservations
  • Handle check-in/check-out operations
  • Manage group bookings and waitlists

Guest Management (12 tools)

  • Guest profile creation and updates
  • Loyalty program management
  • Communication preferences
  • Guest history and analytics

Room Management (8 tools)

  • Room availability and inventory
  • Housekeeping status updates
  • Room assignments and moves
  • Maintenance coordination

Operations Management (6 tools)

  • Daily operations reporting
  • Occupancy forecasting
  • Revenue management
  • Event coordination

Financial Management (4 tools)

  • Billing and invoicing
  • Payment processing
  • Revenue reporting
  • Financial analytics

Development

Code Quality

# Run all quality checks
uv run crackerjack

# Individual tools
uv run ruff check --fix
uv run mypy .
uv run pytest --cov=opera_cloud_mcp

Testing

# Run tests
uv run pytest

# With coverage
uv run pytest --cov=opera_cloud_mcp --cov-report=html

Production Deployment

Docker

# Build image
docker build -t opera-cloud-mcp .

# Run container
docker run -d \
  --name opera-cloud-mcp \
  -p 8000:8000 \
  --env-file .env \
  opera-cloud-mcp

Docker Compose

For full stack with monitoring:

docker-compose up -d

Includes:

  • OPERA Cloud MCP Server
  • Redis (optional caching)
  • Prometheus (metrics)
  • Grafana (monitoring dashboards)

Environment Variables

Variable Description Required
OPERA_CLOUD_BASE_URL OPERA Cloud API base URL Yes
OPERA_CLOUD_CLIENT_ID OAuth2 client ID Yes
OPERA_CLOUD_CLIENT_SECRET OAuth2 client secret Yes
OPERA_CLOUD_USERNAME OPERA Cloud username Yes
OPERA_CLOUD_PASSWORD OPERA Cloud password Yes
OPERA_CLOUD_TIMEOUT Request timeout (seconds) No (default: 30)
OPERA_CLOUD_MAX_CONNECTIONS Max HTTP connections No (default: 50)
OPERA_CLOUD_RATE_LIMIT Rate limit (requests/second) No (default: 10)

Monitoring

Health Checks

  • Health: GET /health - Basic health status
  • Ready: GET /ready - Readiness probe for K8s
  • Metrics: GET /metrics - Prometheus metrics

Observability

  • Structured Logging: JSON logs with correlation IDs
  • Metrics: Request rates, latencies, error rates
  • Tracing: Distributed tracing support
  • Alerting: Prometheus alerting rules

Security

Authentication

  • OAuth2 with automatic token refresh
  • Secure credential storage
  • Token binding for enhanced security

Security Features

  • Rate limiting with token bucket algorithm
  • Circuit breaker for service resilience
  • Input validation and sanitization
  • Audit logging for compliance

Production Security

See docs/security-implementation.md for detailed security configuration.

Documentation

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run quality checks: uv run crackerjack
  5. Submit a pull request

License

BSD 3-Clause License - see LICENSE for details.

Support

  • Issues: GitHub Issues
  • Documentation: See /docs directory
  • Examples: See /examples directory

Built for the hospitality industry using FastMCP and Oracle OPERA Cloud.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opera_cloud_mcp-0.4.0.tar.gz (365.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

opera_cloud_mcp-0.4.0-py3-none-any.whl (206.3 kB view details)

Uploaded Python 3

File details

Details for the file opera_cloud_mcp-0.4.0.tar.gz.

File metadata

  • Download URL: opera_cloud_mcp-0.4.0.tar.gz
  • Upload date:
  • Size: 365.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for opera_cloud_mcp-0.4.0.tar.gz
Algorithm Hash digest
SHA256 c5af8a180e04de059b35a7faa7b80ec6af7ce4014ff1e0f78c086d1ffe20408a
MD5 3c15dc7c240f16f1e9d6d553a945f133
BLAKE2b-256 8b001e208739a0a7a726867b9e288cbecf03357587b21f1ffd8e0d67e2654efd

See more details on using hashes here.

File details

Details for the file opera_cloud_mcp-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: opera_cloud_mcp-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 206.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for opera_cloud_mcp-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5d7164a57b0ff0d0bffac39a4a1605016197998f0ec454febe34937abc97989f
MD5 d0ce22a6ce219d1ea02e802ce99ec85b
BLAKE2b-256 087049375b0dce909e91f867363926fa16a7a96d1ddfc11e38f6a006922f5ecd

See more details on using hashes here.

Release history Release notifications | RSS feed

0.5.0

2 files

This release

0.4.0 This release

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page