Medical MCP Postmessage Application
Current State: Ozwell Integration Status
❌ No Real Ozwell API Integration
Currently, this application does NOT have actual Ozwell API integration. What you have is:
- Local simulation only - All "Ozwell" functionality is mocked
- Missing API calls - No HTTP requests to real Ozwell endpoints
- Incomplete implementation - Several methods are called but not implemented
🏗️ What Exists (Local Simulation)
- ✅ MCP Server with medical tools (add medication, allergies, etc.)
- ✅ PostMessage communication between iframe and parent
- ✅ Local medical data management
- ✅ Chat UI interface
- ✅ Tool execution framework
🚫 What's Missing for Real Ozwell Integration
1. API Configuration
// You need real Ozwell API credentials
const ozwellConfig = {
apiUrl: 'https://api.ozwell.com', // Real Ozwell API URL
apiKey: 'your-actual-api-key', // Real API key
model: 'ozwell-medical-model' // Real model name
};
2. API Implementation
The following methods in ozwell-integration.js need real implementation:
generateResponse()- Make HTTP calls to Ozwell chat APIparseToolCalls()- Parse Ozwell's tool call formatformatResponse()- Format Ozwell responses for display
3. Authentication
- Obtain Ozwell API credentials
- Implement proper API authentication
- Handle API rate limits and errors
4. Medical Model Integration
- Configure Ozwell medical model
- Set up medical-specific prompts and context
- Implement medical safety guardrails
🔧 How to Add Real Ozwell Integration
Step 1: Get Ozwell API Access
- Sign up for Ozwell API access
- Obtain API key and model information
- Review Ozwell's medical API documentation
Step 2: Update Configuration
// Update agent-iframe/ozwell-config.js
export const OzwellConfig = {
apiUrl: 'https://api.ozwell.com', // Real URL
apiKey: 'your-real-api-key', // Real API key
model: 'ozwell-medical-v1' // Real model name
};
Step 3: Implement API Calls
The ozwell-integration.js file has been updated with a template for real API integration. You need to:
- Replace the API URL and authentication
- Implement proper error handling
- Add medical context to API calls
- Handle streaming responses
Step 4: Test Integration
# Start the development server
npm run dev
# Test API calls in browser console
📁 Current Architecture
agent-iframe/ # Medical AI chat interface
├── ozwell-integration.js # Ozwell API integration (needs real implementation)
├── ozwell-config.js # API configuration
├── medical-mcp-server.js # MCP server with medical tools
├── mcp-client.js # Chat client and UI management
└── index.html # Chat interface
parent-app/ # Medical practice simulation
├── medical-data.js # Local medical data management
├── ozwell-agent-sim.js # Iframe management and communication
└── index.html # Practice management interface
🚀 To Run Current Application
# Install dependencies
npm install
# Start development server (Vite)
npm run dev
# Or use http-server for simple static serving
npx http-server -p 8080 -c-1
Access:
- Parent app:
http://localhost:3000/parent-app/ - Agent iframe:
http://localhost:3000/agent-iframe/
⚠️ Important Notes
- This is currently a proof-of-concept with local simulation only
- No real AI or Ozwell integration exists yet
- Medical data is simulated for demonstration purposes
- Not suitable for production medical use without proper integration
🎯 Next Steps
- Obtain Ozwell API credentials
- Implement real API calls in
ozwell-integration.js - Add proper error handling and rate limiting
- Test with real medical scenarios
- Add medical safety and compliance features
Environment Configuration
API Keys Setup
-
Copy the environment template:
cp .env.example .env -
Add your API credentials to
.env:OZWELL_API_KEY=your_actual_api_key_here OZWELL_BASE_URL=https://ai.bluehive.com/api/v1/completion OZWELL_MODEL=ozwell-medical-v1 FORCE_SIMULATION_MODE=false -
The
.envfile is automatically loaded by the application- The API key will be fetched from the environment variable
- Fallback to hardcoded values if
.envfile is not available - Never commit the
.envfile to version control (it's in.gitignore)
Security Notes
- Keep your API keys secure and never commit them to version control
- Use
.env.exampleas a template for other developers - The application will fall back to hardcoded values if environment loading fails
