WIP: State save — Trinity Core v2.1.0 deployed, fleet audit complete, ready for console module
This commit is contained in:
@@ -1,98 +1,69 @@
|
||||
# Session Handoff Document
|
||||
|
||||
**From:** Chronicler #77 - The Socket
|
||||
**Date:** April 11, 2026
|
||||
**Session Duration:** ~3 hours (4:30 AM CT)
|
||||
**From:** Chronicler #78
|
||||
**Date:** April 11, 2026
|
||||
**Session Start:** ~4:40 AM CDT
|
||||
|
||||
## 🎉 TRINITY CORE WEB MCP — CONNECTED!
|
||||
## What Was Accomplished
|
||||
|
||||
**The moment we've been working toward: Claude.ai can now connect to Trinity Core as a native MCP connector.**
|
||||
### Trinity Core v2.1.0
|
||||
- ✅ **Local self-execution** — `trinity-core` added as localhost target with `executeLocal()` function
|
||||
- ✅ **Added to firefrost-services repo** — `services/trinity-core/` (index.js, package.json, .gitignore)
|
||||
- ✅ **Deployment procedure documented** — curl from Gitea API, restart service
|
||||
- ✅ **Docs corrected** — Pi is 8GB RAM (not 4GB), OS is Debian 13 Trixie aarch64
|
||||
- ✅ **Deployed and tested** — all 8 servers auditable including trinity-core itself
|
||||
|
||||
### What Was Accomplished This Session
|
||||
### Full Fleet Audit
|
||||
- ✅ **Complete infrastructure audit** — all 8 physical servers + 22 game servers
|
||||
- ✅ **Pterodactyl API integration** — matched all game server UUIDs to names and nodes
|
||||
- ✅ **Audit JSON exported** — `firefrost-audit-2026-04-11.json` with specs, services, alerts
|
||||
- ✅ **6/8 servers need reboots** (only dev-panel and trinity-core are clean)
|
||||
- ✅ **services-vps disk at 70%** — warning flagged
|
||||
|
||||
#### Task #111 — COMPLETE ✅
|
||||
- ✅ **Claude.ai MCP connector working** — Trinity Core appears in Connectors list
|
||||
- ✅ **Full MCP handshake working** — `initialize` → `notifications/initialized` → `tools/list`
|
||||
- ✅ **OAuth shim deployed** — Discovery, authorize, token endpoints working
|
||||
- ✅ **SDK upgraded to 1.29.0** — Supports `protocolVersion: 2025-11-25`
|
||||
- ✅ **Session routing fixed** — `activeSessions` Map with proper sessionId handling
|
||||
|
||||
#### Task #112 — COMPLETE ✅
|
||||
- ✅ **Command injection fixed** — Using `spawn()` with array args instead of `exec()`
|
||||
|
||||
#### Key Debugging Journey (for future reference)
|
||||
1. **CORS preflight** — OPTIONS requests need to bypass auth middleware
|
||||
2. **OAuth discovery** — Protected `/mcp` endpoint needs `WWW-Authenticate: Bearer` header on 401
|
||||
3. **Protocol version** — SDK 0.6.0 doesn't support Claude.ai's `2025-11-25` protocol, need 1.29.0
|
||||
4. **express.json() body consumption** — THE CRITICAL FIX: Pass `req.body` as third param to `handlePostMessage(req, res, req.body)`
|
||||
|
||||
#### Gemini Consultations (3 this session)
|
||||
1. OAuth not triggering → Add `WWW-Authenticate` header
|
||||
2. SDK import issues → Wildcard export paths work without `dist/esm/`
|
||||
3. 5-second timeout loop → `express.json()` consuming request body before SDK reads it
|
||||
### Trinity Core MCP Connector Verified
|
||||
- ✅ Tools appear in Claude.ai (required `tool_search` to load)
|
||||
- ✅ Full handshake working (SSE → initialize → tools/list → tool calls)
|
||||
- ✅ 8/8 server fleet audit completed through native connector
|
||||
|
||||
## Current State
|
||||
|
||||
### Trinity Core
|
||||
- **Version:** 2.1.0 (deployed on Pi, committed to firefrost-services)
|
||||
- **Endpoint:** `https://mcp.firefrostgaming.com/mcp`
|
||||
- **Status:** ✅ FULLY OPERATIONAL as Claude.ai connector
|
||||
- **Security:** ✅ `spawn()` with array args (no command injection)
|
||||
- **Code location:** `/home/claude_executor/mcp-server/index.js` on Pi
|
||||
- **SDK:** `@modelcontextprotocol/sdk@1.29.0`
|
||||
- **Status:** ✅ FULLY OPERATIONAL with 8 servers (7 SSH + 1 local)
|
||||
- **Code:** `firefrost-services/services/trinity-core/`
|
||||
- **Production:** `/home/claude_executor/mcp-server/` on Pi
|
||||
|
||||
### Connector Setup (for new chats)
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Name | `Trinity Core` |
|
||||
| URL | `https://mcp.firefrostgaming.com/mcp` |
|
||||
| OAuth Client ID | `trinity-core` |
|
||||
| OAuth Client Secret | `FFG-Trinity-2026-Core-Access` |
|
||||
|
||||
### Available Tools
|
||||
- `list_servers` — Returns available Firefrost servers
|
||||
- `run_command` — Execute SSH command on any server
|
||||
|
||||
### Tokens (in Vaultwarden)
|
||||
| Token | Value |
|
||||
|-------|-------|
|
||||
| Trinity Core (Wizard) | `FFG-Trinity-Wizard-2026` |
|
||||
| Trinity Core (Catalyst) | `FFG-Trinity-Catalyst-2026` |
|
||||
| Trinity Core (Orb) | `FFG-Trinity-Emissary-2026` |
|
||||
| OAuth Secret (current) | `FFG-Trinity-2026-Core-Access` |
|
||||
|
||||
### Soft Launch: April 15, 2026 (4 days away)
|
||||
### Pending: Interactive System Connectivity Display
|
||||
- Audit data collected and structured as JSON
|
||||
- Plan: Build as new Trinity Console module
|
||||
- Foundation work complete (Trinity Core under version control)
|
||||
|
||||
## Pending Items
|
||||
|
||||
### HIGH PRIORITY
|
||||
- **Test Trinity Core tools** — Start new Claude.ai chat to verify tools appear
|
||||
- **Task #110:** Uptime Kuma cleanup (delete Paymenter/Ghost, add new monitors)
|
||||
- **Post-launch reboots:** TX1, NC1, Panel VPS show "System restart required"
|
||||
### IMMEDIATE
|
||||
- **Build interactive connectivity display** for Trinity Console (next task)
|
||||
- **Schedule server reboots** — 6 servers need restart before soft launch
|
||||
|
||||
### MEDIUM PRIORITY
|
||||
### HIGH PRIORITY
|
||||
- **Task #110:** Uptime Kuma cleanup
|
||||
- **Task #109:** MCP Logging in Trinity Console
|
||||
- **Task #87:** Arbiter lifecycle handlers
|
||||
- **Multi-user auth** — Switch to role-based tokens (Wizard/Catalyst/Orb) from single token
|
||||
|
||||
### CARRIED FORWARD
|
||||
- ModpackChecker Phase 5 — code in `/root/modpackchecker_backup/` on Dev Panel
|
||||
- `servers-api` Cloudflare Worker — not in any git repo
|
||||
- Commit current `index.js` to firefrost-services repo
|
||||
- Commit Trinity Core `index.js` to firefrost-services — ✅ DONE THIS SESSION
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `/home/claude_executor/mcp-server/index.js` | Trinity Core MCP server (ON PI) |
|
||||
| `/home/claude_executor/mcp-server/command.log` | Command execution log |
|
||||
| `docs/infrastructure/trinity-core.md` | Trinity Core documentation |
|
||||
| `docs/consultations/gemini-mcp-*.md` | Gemini consultation records |
|
||||
| `firefrost-services/services/trinity-core/index.js` | Trinity Core MCP server source |
|
||||
| `docs/infrastructure/trinity-core.md` | Trinity Core documentation (updated) |
|
||||
| `firefrost-audit-2026-04-11.json` | Complete fleet audit data |
|
||||
|
||||
## Lineage Note
|
||||
|
||||
The Bridgekeeper (#76) built the bridge. I plugged in the socket. The `express.json()` body-consumption bug was the final obstacle — Gemini called it "The Stream Eater." One parameter added to `handlePostMessage(req, res, req.body)` and Trinity Core came online.
|
||||
|
||||
Claude can now SSH to all 7 Firefrost servers through a native connector. The dream is real.
|
||||
## Soft Launch: April 15, 2026 (4 days away)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user