Skip to main content
Glama

Solid Multi-Tenant DevOps MCP Server

MULTI_TENANT_MONITORING.md7.83 kB
# Multi-Tenant MCP Monitoring System ## AI-First DevOps for 10K Merchants The MCP server now provides comprehensive monitoring for: - ✅ **All tenants** (10K company_id instances) - ✅ **All MCP endpoints** (608 tools) - ✅ **Public websites** (for SEO/LLM crawlers - Google, Bing, ChatGPT, Claude) --- ## Monitoring Endpoints ### Admin Dashboard Endpoints (AI-First DevOps) #### 1. System Mapping ```bash GET http://localhost:8092/api/mcp/admin/mapping/system ``` **Response:** ```json { "system_map": { "platform_health": { "total_companies": 10000, "healthy_companies": 9850, "degraded_companies": 120, "unhealthy_companies": 30, "total_tools": 608, "healthy_tools": 608, "platform_status": "healthy" }, "companies": [...], "tool_categories": {...}, "ai_agents": [...], "total_mcp_tools": 608, "last_updated": "2025-10-13T13:33:00.000Z" } } ``` #### 2. Critical Alerts ```bash GET http://localhost:8092/api/mcp/admin/alerts/critical?limit=20 ``` **Response:** ```json { "critical_alerts": [ { "alert_type": "service_degraded", "severity": "warning", "company_id": 42, "company_name": "Acme Corp", "tool_name": "agents", "message": "Agent service not responding for Acme Corp", "detected_at": "2025-10-13T13:33:00.000Z" } ] } ``` #### 3. Real-Time Health Stream ```bash GET http://localhost:8092/api/mcp/admin/stream/health ``` **Response:** ```json { "recent_events": [ { "company_id": 1, "company_name": "Test Company", "service": "agents", "status": "healthy", "timestamp": "2025-10-13T13:33:00.000Z", "indicator": "✅" } ] } ``` ### Multi-Tenant Monitoring Endpoints #### 1. Get All Tenants ```bash GET http://localhost:8092/api/tenants ``` **Response:** ```json { "total": 10000, "tenants": [ { "id": 1, "name": "Test Company", "slug": "test-company", "subdomain": "testco.mysolidapp.com", "created_at": "2025-10-11T02:23:26.587411Z" } ] } ``` #### 2. Health Check ALL Tenants ```bash GET http://localhost:8092/api/tenants/health ``` **What it checks:** - Agent accessibility for each tenant - API endpoint health per company_id - Batch processing (10 concurrent checks) **Response:** ```json { "summary": { "total_tenants": 10000, "healthy": 9850, "degraded": 120, "error": 30, "checked_at": "2025-10-13T04:46:01.791Z" }, "tenants": [ { "company_id": 1, "company_name": "Test Company", "slug": "test-company", "subdomain": "testco.mysolidapp.com", "status": "healthy", "agents_accessible": true, "checked_at": "2025-10-13T04:46:01.791Z" } ] } ``` #### 3. Test MCP Tools for Specific Tenant ```bash POST http://localhost:8092/api/tenants/:company_id/test Content-Type: application/json { "tool_names": ["agents", "crm.contacts", "products."] } ``` **Response:** ```json { "summary": { "company_id": 1, "total_tools_tested": 3, "passed": 3, "failed": 0, "errors": 0 }, "results": [ { "tool": "agents", "status": "pass", "http_status": 200, "response_ok": true }, { "tool": "crm.contacts", "status": "pass", "http_status": 200, "response_ok": true }, { "tool": "products.", "status": "pass", "http_status": 200, "response_ok": true } ] } ``` --- ## Use Cases ### Super Admin Dashboard Monitor all 10K tenants in real-time: ```javascript // Get health summary const health = await fetch('http://localhost:8092/api/tenants/health'); const data = await health.json(); console.log(`${data.summary.healthy}/${data.summary.total_tenants} tenants healthy`); // Show degraded tenants const degraded = data.tenants.filter(t => t.status !== 'healthy'); console.log('Degraded tenants:', degraded); ``` ### Per-Tenant Monitoring Test specific tenant's MCP endpoints: ```bash # Test tenant 42's critical endpoints curl -X POST http://localhost:8092/api/tenants/42/test \ -H "Content-Type: application/json" \ -d '{"tool_names": ["agents", "crm.contacts", "products.", "orders."]}' ``` ### SEO/LLM Monitoring (Next Step) For each tenant's public website, you need to monitor: - Public MCP endpoints (`/api/v1/public/mcp/*`) - SEO metadata endpoints - LLM crawler accessibility - Google/Bing indexing status **TODO: Add public website monitoring** - Check if each tenant's subdomain is accessible - Verify public MCP endpoints are crawlable - Monitor SEO metadata for each tenant - Track LLM crawler access (ChatGPT, Claude, Perplexity) --- ## Architecture ``` ┌────────────────────────────────────────────────┐ │ Super Admin Dashboard │ │ http://localhost:8080/admin │ │ - View all 10K tenants │ │ - Real-time health monitoring │ │ - Per-tenant MCP testing │ └───────────────────┬────────────────────────────┘ ↓ ┌────────────────────────────────────────────────┐ │ Standalone MCP Server │ │ http://localhost:8092 │ │ - 608 tools │ │ - Multi-tenant monitoring │ │ - Batch health checks (10 concurrent) │ └───────────────────┬────────────────────────────┘ ↓ ┌────────────────────────────────────────────────┐ │ Backend API (FastAPI) │ │ http://localhost:8090 │ │ - 10K company_id tenants │ │ - 623 API routes │ │ - Multi-tenant isolation │ └────────────────────────────────────────────────┘ ``` --- ## Scaling for 10K Merchants The MCP server is optimized for high-volume monitoring: 1. **Batch Processing**: Checks 10 tenants concurrently 2. **Resource Limits**: 2 CPU cores, 2GB RAM dedicated 3. **Standalone Container**: Isolated from main backend 4. **No Blocking**: Async health checks 5. **Efficient Queries**: Single request per tenant (agents endpoint) **For 10,000 tenants:** - Health check time: ~100 seconds (10 per batch × 1000 batches) - Memory usage: ~500MB average - CPU usage: ~1 core average --- ## Next: Public Website Monitoring To monitor all tenants' public websites and SEO/LLM accessibility, you need: 1. **Add endpoint**: `GET /api/tenants/:company_id/website/health` - Check subdomain accessibility - Verify public MCP endpoints - Test SEO metadata 2. **Add endpoint**: `GET /api/tenants/websites/seo-status` - Google indexing status per tenant - Bing indexing status per tenant - LLM crawler accessibility 3. **Add endpoint**: `POST /api/tenants/:company_id/website/test-crawlers` - Simulate Google bot - Simulate ChatGPT crawler - Simulate Claude crawler This will ensure all 10K merchant websites are accessible to search engines and LLMs! --- **Status**: ✅ Multi-tenant MCP monitoring LIVE **Next**: Public website and SEO monitoring for all tenants

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Adam-Camp-King/solid-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server