{"_id":"@dichvuright/mcp-hosting-server","_rev":"2-c9102ef6a9cab58ce248f255fd4bd74c","name":"@dichvuright/mcp-hosting-server","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@dichvuright/mcp-hosting-server","version":"1.0.0","keywords":["mcp","dichvuright","admin","ai-agent"],"license":"UNLICENSED","_id":"@dichvuright/mcp-hosting-server@1.0.0","maintainers":[{"name":"dichvuright","email":"khanhbts5@gmail.com"}],"homepage":"https://github.com/dichvuright/hosting-dichvuright#readme","bugs":{"url":"https://github.com/dichvuright/hosting-dichvuright/issues"},"bin":{"dichvuright-mcp":"dist/server.js"},"dist":{"shasum":"c29db82ac9351277058a20d17c7ee805e87f99f4","tarball":"https://registry.npmjs.org/@dichvuright/mcp-hosting-server/-/mcp-hosting-server-1.0.0.tgz","fileCount":3,"integrity":"sha512-c5MHcSGMd9JksT+fejjCwQAam82Cr1DyL/vLKTAXaRUvL65pJX5+zlJg71ZUuPGicahlTCOM3hdQeS7CeXHOjQ==","signatures":[{"sig":"MEUCIQCJJAo+LV1L8Bg1IbocR5XHN+733XGmDLgIKlsHBTH4MwIgDtwEJRP/GJpE8ndRmMNeQkQ6uWGkwicVDP+9q/uUXPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17717},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"8ba8172058bf1b6afe61a3c302d8d637b87e2405","private":false,"scripts":{"dev":"tsx server.ts","build":"tsc","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dichvuright","email":"khanhbts5@gmail.com"},"repository":{"url":"git+https://github.com/dichvuright/hosting-dichvuright.git","type":"git","directory":"mcp"},"_npmVersion":"10.8.2","description":"DichVuRight Admin MCP Server — AI agent integration via HMAC API","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.0.0","dotenv":"^16.0.0","@modelcontextprotocol/sdk":"^1.10.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-hosting-server_1.0.0_1774027136327_0.20234327246501094","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@dichvuright/mcp-hosting-server","version":"1.0.1","description":"DichVuRight Admin MCP Server — AI agent integration via HMAC API","type":"module","bin":{"dichvuright-mcp":"dist/server.js"},"main":"./dist/server.js","scripts":{"dev":"tsx server.ts","build":"tsc","start":"node dist/server.js","prepublishOnly":"npm run build"},"publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"repository":{"type":"git","url":"git+https://github.com/dichvuright/hosting-dichvuright.git","directory":"mcp"},"keywords":["mcp","dichvuright","admin","ai-agent"],"license":"UNLICENSED","private":false,"dependencies":{"@modelcontextprotocol/sdk":"^1.10.0","dotenv":"^16.0.0","zod":"^4.0.0"},"devDependencies":{"@types/node":"^20.0.0","tsx":"^4.0.0","typescript":"^5.0.0"},"engines":{"node":">=18.0.0"},"_id":"@dichvuright/mcp-hosting-server@1.0.1","gitHead":"afbee4fa7998099de32a9eba7426ecb106d922cd","bugs":{"url":"https://github.com/dichvuright/hosting-dichvuright/issues"},"homepage":"https://github.com/dichvuright/hosting-dichvuright#readme","_nodeVersion":"20.20.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-CcM9Jqiup5+41VNOpm1safBQFtpIxH0V7dQ1KbQB37eniK1V3fXjVUL7K2DGS3XkNynMqCSrjqfbyQKAq42E0Q==","shasum":"38e8d85a899983eefde7805e1ef3050e899762a9","tarball":"https://registry.npmjs.org/@dichvuright/mcp-hosting-server/-/mcp-hosting-server-1.0.1.tgz","fileCount":3,"unpackedSize":19279,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQChQR6YZec2aJTUofZYdEpIDPJAnMB9ifPahkWCCzepjAIgEEVraghj42z+JyvNqIcklb5EZLpT+5cBT3UljIVUiAk="}]},"_npmUser":{"name":"dichvuright","email":"khanhbts5@gmail.com"},"directories":{},"maintainers":[{"name":"dichvuright","email":"khanhbts5@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-hosting-server_1.0.1_1774030659286_0.5633380068163789"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-20T17:18:56.272Z","modified":"2026-03-20T18:17:39.558Z","1.0.0":"2026-03-20T17:18:56.460Z","1.0.1":"2026-03-20T18:17:39.462Z"},"bugs":{"url":"https://github.com/dichvuright/hosting-dichvuright/issues"},"license":"UNLICENSED","homepage":"https://github.com/dichvuright/hosting-dichvuright#readme","keywords":["mcp","dichvuright","admin","ai-agent"],"repository":{"type":"git","url":"git+https://github.com/dichvuright/hosting-dichvuright.git","directory":"mcp"},"description":"DichVuRight Admin MCP Server — AI agent integration via HMAC API","maintainers":[{"name":"dichvuright","email":"khanhbts5@gmail.com"}],"readme":"# @dichvuright/mcp-hosting-server\n\nKết nối AI Agent (Claude, Cursor, Antigravity, OpenClaw...) vào hệ thống quản trị DichVuRight qua giao thức MCP.\n\n## Kiến trúc\n\n```\nAI Agent (Claude / Cursor / OpenClaw)\n        |\nMCP Protocol (JSON-RPC 2.0, stdio)\n        |\n@dichvuright/mcp-hosting-server\n        |  chỉ biết: API_URL + API_KEY + API_SECRET\n        |\nPOST /api/mcp/tools/call  ← HMAC-SHA256 signed\n        |\nNext.js App (verify HMAC + scope mcp:admin)\n        |\nMongoDB / Redis  ← MCP không kết nối trực tiếp\n```\n\n**MCP server không bao giờ biết:** JWT_SECRET, MongoDB URI, Redis password.\n\n## Cài đặt\n\n```bash\nnpx -y @dichvuright/mcp-hosting-server\n```\n\n## Tạo API Key\n\n1. Vào **Admin → API Keys**\n2. Tạo key mới với scope **`mcp:admin`**\n3. Copy `API Key` và `Secret`\n\n## Cấu hình (không dùng .env)\n\nTruyền biến trực tiếp qua `env` trong MCP config JSON:\n\n### Claude Desktop\n\nMở `%APPDATA%\\Claude\\claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"dichvuright\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dichvuright/mcp-hosting-server\"],\n      \"env\": {\n        \"MCP_API_URL\": \"https://dichvuright.com\",\n        \"MCP_API_KEY\": \"mc_xxxxxxxxxxxx\",\n        \"MCP_API_SECRET\": \"sk_xxxxxxxxxxxx\"\n      }\n    }\n  }\n}\n```\n\n### Antigravity / Cursor / Cline\n\n```json\n{\n  \"mcpServers\": {\n    \"dichvuright\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dichvuright/mcp-hosting-server\"],\n      \"env\": {\n        \"MCP_API_URL\": \"https://dichvuright.com\",\n        \"MCP_API_KEY\": \"mc_xxxxxxxxxxxx\",\n        \"MCP_API_SECRET\": \"sk_xxxxxxxxxxxx\"\n      }\n    }\n  }\n}\n```\n\n### Dev local (chỉ dùng app local)\n\n```json\n{\n  \"env\": {\n    \"MCP_API_URL\": \"http://localhost:3000\",\n    \"MCP_API_KEY\": \"mc_xxxxxxxxxxxx\",\n    \"MCP_API_SECRET\": \"sk_xxxxxxxxxxxx\"\n  }\n}\n```\n\n## Tools (28 tools)\n\n| Nhóm | Tools |\n|------|-------|\n| 🔍 Health (5) | `health_check_all`, `health_check_mongodb`, `health_check_redis`, `health_check_suppliers`, `get_stuck_tasks` |\n| 📋 Logs (5) | `query_logs`*, `get_error_summary`, `detect_suspicious_ips`*, `get_critical_events`, `get_admin_activity_digest` |\n| 🔔 Alerts (3) | `send_alert`✏️, `get_alert_history`, `silence_alert`✏️ |\n| 📊 Dashboard (5) | `get_revenue_stats`, `get_user_stats`, `get_service_utilization`, `get_ticket_stats`, `get_payment_health` |\n| 👤 Users (6) | `find_user`, `get_user_profile`, `get_user_transactions`, `get_user_security_events`, `get_user_services`, `flag_user_for_review`✏️ |\n| 🎫 Tickets (4) | `list_open_tickets`, `get_ticket_summary`, `get_overdue_tickets`, `get_ticket_stats_summary` |\n\n`*` Heavy query: giới hạn 10 req/min  \n`✏️` Write op: tạo audit log\n\n## Bảo mật\n\n- **HMAC-SHA256**: mọi request đều signed, timestamp drift 60s, dedup Redis\n- **PII masking**: email, phone, name, IP tự động masked trước khi trả về AI\n- **Không expose**: password hash, CCCD data, encrypted secrets\n- **Rate limit**: 60 req/min per IP global, 30 req/min per API key\n- **IP Rules**: blocklist/allowlist quản lý trong Admin → IP Rules\n- **Audit trail**: mọi tool call ghi vào MongoDB logs\n\n## Troubleshooting\n\n| Lỗi | Nguyên nhân | Fix |\n|-----|-------------|-----|\n| `MCP_API_KEY và MCP_API_SECRET là bắt buộc` | Chưa set env | Thêm vào `env` trong MCP config |\n| `Invalid API key` | Key sai hoặc bị revoke | Kiểm tra Admin → API Keys |\n| `Insufficient scope` | Key chưa có scope `mcp:admin` | Tạo key mới với đúng scope |\n| `Request expired` | Đồng hồ máy lệch >60s | Sync NTP |\n| `IP blocked` | IP bị block trong Admin → IP Rules | Kiểm tra và xóa rule |\n| Tools không xuất hiện trong IDE | Sai config | Restart IDE sau khi sửa config |\n\n<!-- trigger -->\n","readmeFilename":"README.md"}