Gemini consultation provided full production-ready code: - MCP SDK with SSE transport - OAuth shim (auto-approve for single user) - CORS for claude.ai - Complete index.js replacement (Blocks A-F) Task #111 upgraded from Desktop to Native Web: - No Claude Desktop needed - Works directly in claude.ai browser - ~2 hour implementation Key insight: Custom remote MCPs ARE supported in claude.ai web via HTTP Streamable + OAuth flow. Chronicler #76
2.1 KiB
2.1 KiB
task_number, title, status, priority, is_blocker, owner, tags, estimated_hours
| task_number | title | status | priority | is_blocker | owner | tags | estimated_hours | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 111 | Trinity Core Native Web MCP Connector | Planned | P1-High | false | Michael |
|
2 |
Trinity Core Native Web MCP Connector
Upgrade Trinity Core from REST API to native Claude.ai web connector using MCP SDK with SSE transport and OAuth shim.
Why
Currently Claude can't call Trinity Core directly. This upgrade enables Claude to execute commands on Firefrost servers directly from claude.ai web — no Desktop app, no curl commands, no manual intervention.
This is the RV dream: Full infrastructure access from any browser, anywhere.
Prerequisites
- Trinity Core v1 deployed ✅
- SSH keys configured ✅
- Cloudflare Tunnel active ✅
Full Implementation
See docs/consultations/gemini-mcp-web-implementation-2026-04-11.md for complete code (Blocks A-F) and step-by-step instructions.
Quick Summary
- Update package.json — Add
"type": "module", install@modelcontextprotocol/sdkandcors - Replace index.js — MCP SDK with SSE transport + OAuth shim
- Register in Claude.ai — Settings → Connectors → Add custom →
https://mcp.firefrostgaming.com/mcp
Architecture
Claude.ai (browser)
↓ MCP over SSE
Trinity Core (mcp.firefrostgaming.com)
↓ SSH
Target Server
New Endpoints
| Endpoint | Purpose |
|---|---|
GET /.well-known/oauth-protected-resource |
OAuth discovery |
GET /authorize |
Auto-approve redirect |
POST /token |
Return Bearer token |
GET /mcp |
Establish SSE stream |
POST /mcp/messages |
Receive tool calls |
Tools Exposed
| Tool | Description |
|---|---|
list_servers |
Get available Firefrost servers |
run_command |
Execute SSH command on specified server |
Testing
Before registering with Claude.ai:
npx @modelcontextprotocol/inspector node index.js
Security Notes
- CORS configured for
https://claude.aionly - OAuth shim auto-approves (single user)
- Consider adding
express-rate-limitfor hardening