Remove mcp-gateway/gateway-proxy/INTEGRATION_INSTRUCTIONS.md
This commit is contained in:
parent
2b3a32c170
commit
61724cddb4
1 changed files with 0 additions and 164 deletions
|
|
@ -1,164 +0,0 @@
|
||||||
# Dashboard Integration into gateway_proxy.py
|
|
||||||
|
|
||||||
## Quick Integration Guide
|
|
||||||
|
|
||||||
### Step 1: Add Imports at Top of gateway_proxy.py
|
|
||||||
|
|
||||||
```python
|
|
||||||
import asyncio
|
|
||||||
from dashboard_routes import setup_dashboard_routes
|
|
||||||
from fastapi.staticfiles import StaticFiles
|
|
||||||
```
|
|
||||||
|
|
||||||
### Step 2: Mount Static Files (After app creation)
|
|
||||||
|
|
||||||
Find where the FastAPI app is created (likely `app = FastAPI(...)`) and add after it:
|
|
||||||
|
|
||||||
```python
|
|
||||||
# Setup static file serving for dashboard
|
|
||||||
try:
|
|
||||||
app.mount("/", StaticFiles(directory="dashboard", html=True), name="static")
|
|
||||||
except Exception as e:
|
|
||||||
print(f"Warning: Could not mount dashboard static files: {e}")
|
|
||||||
```
|
|
||||||
|
|
||||||
### Step 3: Register Dashboard Routes (In app startup/initialization)
|
|
||||||
|
|
||||||
In the startup event or app initialization section, add:
|
|
||||||
|
|
||||||
```python
|
|
||||||
@app.on_event("startup")
|
|
||||||
async def startup_event():
|
|
||||||
# ... existing startup code ...
|
|
||||||
|
|
||||||
# Setup dashboard routes
|
|
||||||
try:
|
|
||||||
dashboard_router = await setup_dashboard_routes(app)
|
|
||||||
app.include_router(dashboard_router)
|
|
||||||
print("✓ Dashboard routes registered")
|
|
||||||
except Exception as e:
|
|
||||||
print(f"Warning: Could not setup dashboard routes: {e}")
|
|
||||||
```
|
|
||||||
|
|
||||||
### Step 4: Update Dockerfile
|
|
||||||
|
|
||||||
In `gateway-proxy/Dockerfile`, add a line to copy the dashboard:
|
|
||||||
|
|
||||||
```dockerfile
|
|
||||||
# ... existing COPY commands ...
|
|
||||||
|
|
||||||
# Copy dashboard
|
|
||||||
COPY dashboard/ /app/dashboard/
|
|
||||||
```
|
|
||||||
|
|
||||||
### Step 5: Verify dashboard_routes.py Dependencies
|
|
||||||
|
|
||||||
Make sure `dashboard_routes.py` has these imports available in your environment.
|
|
||||||
|
|
||||||
Required packages:
|
|
||||||
- `aiohttp` (likely already installed for MCP communication)
|
|
||||||
- `asyncio` (builtin)
|
|
||||||
- `fastapi` (already in use)
|
|
||||||
|
|
||||||
## Complete Example Integration
|
|
||||||
|
|
||||||
Here's what a minimal integration looks like:
|
|
||||||
|
|
||||||
```python
|
|
||||||
# gateway_proxy.py
|
|
||||||
|
|
||||||
import asyncio
|
|
||||||
from fastapi import FastAPI
|
|
||||||
from fastapi.staticfiles import StaticFiles
|
|
||||||
from dashboard_routes import setup_dashboard_routes
|
|
||||||
|
|
||||||
# Create app
|
|
||||||
app = FastAPI(title="MCP Gateway")
|
|
||||||
|
|
||||||
# Mount dashboard
|
|
||||||
app.mount("/", StaticFiles(directory="dashboard", html=True), name="dashboard")
|
|
||||||
|
|
||||||
@app.on_event("startup")
|
|
||||||
async def startup():
|
|
||||||
dashboard_router = await setup_dashboard_routes(app)
|
|
||||||
app.include_router(dashboard_router)
|
|
||||||
print("Dashboard ready at /dashboard")
|
|
||||||
|
|
||||||
# ... rest of your routes ...
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
import uvicorn
|
|
||||||
uvicorn.run(app, host="0.0.0.0", port=4444)
|
|
||||||
```
|
|
||||||
|
|
||||||
## Testing After Integration
|
|
||||||
|
|
||||||
1. **Rebuild the gateway image:**
|
|
||||||
```bash
|
|
||||||
docker compose build mcp-gateway
|
|
||||||
```
|
|
||||||
|
|
||||||
2. **Restart the gateway:**
|
|
||||||
```bash
|
|
||||||
docker compose up mcp-gateway
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **Access the dashboard:**
|
|
||||||
- Local: `http://localhost:4444/dashboard`
|
|
||||||
- Remote: `https://mcp.wilddragon.net/dashboard`
|
|
||||||
|
|
||||||
4. **Test the API endpoint:**
|
|
||||||
```bash
|
|
||||||
curl http://localhost:4444/mcp/status | jq
|
|
||||||
```
|
|
||||||
|
|
||||||
## Troubleshooting Integration
|
|
||||||
|
|
||||||
### Module Not Found: dashboard_routes
|
|
||||||
- Ensure `dashboard_routes.py` is in the same directory as `gateway_proxy.py`
|
|
||||||
- Check Python path is correct
|
|
||||||
|
|
||||||
### Dashboard Returns 404
|
|
||||||
- Verify `dashboard/` folder exists in the gateway root
|
|
||||||
- Check `dashboard.html` file exists
|
|
||||||
- Review Dockerfile to ensure it copies the dashboard
|
|
||||||
|
|
||||||
### Routes Not Registered
|
|
||||||
- Check startup event is being called
|
|
||||||
- Review application logs
|
|
||||||
- Verify no errors in dashboard_routes.py
|
|
||||||
|
|
||||||
### CSS/TailwindCSS Not Loading
|
|
||||||
- This is expected since TailwindCSS is loaded via CDN in the HTML
|
|
||||||
- Check browser console for any fetch errors
|
|
||||||
- Verify network connectivity to cdn.tailwindcss.com
|
|
||||||
|
|
||||||
## File Structure After Integration
|
|
||||||
|
|
||||||
```
|
|
||||||
mcp-gateway/
|
|
||||||
├── gateway-proxy/
|
|
||||||
│ ├── gateway_proxy.py (MODIFIED - add imports & routes)
|
|
||||||
│ ├── dashboard_routes.py (NEW)
|
|
||||||
│ ├── Dockerfile (MODIFIED - add COPY dashboard)
|
|
||||||
│ └── ...
|
|
||||||
├── dashboard/
|
|
||||||
│ └── dashboard.html (NEW)
|
|
||||||
├── docker-compose.yml
|
|
||||||
└── ...
|
|
||||||
```
|
|
||||||
|
|
||||||
## Performance Considerations
|
|
||||||
|
|
||||||
- Dashboard queries all services on each status check
|
|
||||||
- Default refresh interval: 30 seconds
|
|
||||||
- Each check times out after 5 seconds per service
|
|
||||||
- Status queries run in parallel (async)
|
|
||||||
- No caching of results (fresh data each time)
|
|
||||||
|
|
||||||
To adjust refresh interval, edit `dashboard/dashboard.html` and find:
|
|
||||||
```javascript
|
|
||||||
const interval = setInterval(fetchServiceStatus, 30000); // 30 seconds
|
|
||||||
```
|
|
||||||
|
|
||||||
Change `30000` to desired milliseconds (e.g., `15000` for 15 seconds).
|
|
||||||
Loading…
Reference in a new issue