Commit graph

283 commits

Author SHA1 Message Date
a4fa9e75a2 feat(gateway): password login page with session cookie for /admin and /dashboard
Replaces Bearer-token-only auth on GUI routes with a proper browser
login flow. Visiting /admin or /dashboard now redirects to /gui-login
if no valid session exists. Submitting the OAUTH_PASSWORD sets a
secure httpOnly session cookie (8h TTL). /gui-logout clears it.

- /dashboard/status also accepts session cookie (for the dashboard JS
  to call back without needing a separate token)
- API routes (/users/*, /keys/*) still require Bearer token as before
- /gui-login, /gui-logout added as new public routes
2026-03-31 23:44:24 -04:00
72add79a87 Add SSH MCP credentials to .env 2026-03-31 23:37:00 -04:00
a1a6ef137a security: require auth on all admin/dashboard/user routes
/admin, /dashboard, /dashboard/status, and all /users/* and /keys/*
endpoints were publicly accessible with no authentication, exposing
user management, API key generation, and backend topology to anyone.

- /dashboard and /dashboard/status now require Bearer token
- /admin (user management UI) now requires Bearer token
- All /users/* and /keys/revoke routes now require Bearer token
- /health scrubbed of sensitive fields (token counts, client counts)
- /linkedin/* left public (required for OAuth callback flow)

Auth checks use GATEWAY_STATIC_API_KEY or valid OAuth access tokens,
consistent with the existing /mcp and /status endpoints.
2026-03-31 23:32:15 -04:00
c387d80d1b Replace docker-mcp with ssh-mcp
SSH access to TrueNAS covers all Docker management needs (docker compose,
logs, restarts) making a dedicated Docker MCP redundant.

- Add ssh-mcp (port 8600): execute shell commands, read files, list dirs,
  tail logs, find files, check disk usage on the TrueNAS host via asyncssh
- Remove docker-mcp (port 9000): redundant given SSH access to the host
- Update docker-compose.yml: wire in ssh-mcp service, remove docker-mcp
  service and its MCP_BACKEND_DOCKER gateway env var
2026-03-31 23:25:10 -04:00
5f22831106 fix(forgejo-mcp): convert sync httpx.Client to async AsyncClient
All tool functions and API helpers were using synchronous httpx.Client,
which blocked FastMCP's async event loop on every tool call — causing
60s timeouts from Claude even though the container appeared healthy.

Converted get_client(), api_get(), api_post(), api_patch() and all 12
@mcp.tool() functions to async/await, matching the pattern used by the
other working backends (truenas-mcp, homeassistant-mcp).

Redeploy with: docker compose up -d --build forgejo-mcp
2026-03-31 23:17:52 -04:00
39fff1e44a Add Memory Bank, Puppeteer, Sequential Thinking, and Docker MCP servers
New MCP servers added to the gateway stack:
- memory-bank-mcp (port 8700): Persistent key-value memory storage with tags, categories, and search
- puppeteer-mcp (port 8800): Headless browser automation via Pyppeteer (navigate, screenshot, click, JS eval, PDF gen)
- sequential-thinking-mcp (port 8900): Structured step-by-step reasoning with branching hypotheses and synthesis
- docker-mcp (port 9000): Docker container/image/network/volume management via Docker socket

All servers follow the existing Python/FastMCP pattern with streamable-http transport.
docker-compose.yml updated with service definitions and gateway backend routes.
2026-03-31 23:02:47 -04:00
20e6b4cf96 Add wave-mcp/src/tools/products.ts 2026-03-31 15:33:51 -04:00
35392cdee4 Add wave-mcp/src/tools/invoices.ts 2026-03-31 15:33:50 -04:00
6913c4e4d9 Add wave-mcp/src/tools/customers.ts 2026-03-31 15:33:50 -04:00
498abcc937 Add wave-mcp/src/tools/businesses.ts 2026-03-31 15:33:50 -04:00
3e9a21bab1 Add wave-mcp/src/tools/accounting.ts 2026-03-31 15:33:49 -04:00
0228ee1f09 Add wave-mcp/src/services/wave-client.ts 2026-03-31 15:33:49 -04:00
bc56a8cda8 Add wave-mcp/src/types.ts 2026-03-31 15:33:48 -04:00
6ac85284c2 Add wave-mcp/src/index.ts 2026-03-31 15:33:48 -04:00
f134b18bde Add wave-mcp/src/constants.ts 2026-03-31 15:33:48 -04:00
2c52d555f2 Add wave-mcp/WAVE_API_SETUP.md 2026-03-31 15:33:47 -04:00
28795ed82a Add wave-mcp/tsconfig.json 2026-03-31 15:33:47 -04:00
aef4162275 Add wave-mcp/package.json 2026-03-31 15:33:47 -04:00
f5fb10557b Add wave-mcp/package-lock.json 2026-03-31 15:33:46 -04:00
c97d6b99c1 Add wave-mcp/Dockerfile 2026-03-31 15:33:46 -04:00
9f1b98a5e6 Add truenas-mcp/truenas_mcp.py 2026-03-31 15:33:45 -04:00
b9280597ec Add truenas-mcp/requirements.txt 2026-03-31 15:33:45 -04:00
78b16550a6 Add truenas-mcp/entrypoint.py 2026-03-31 15:33:45 -04:00
523e143f74 Add truenas-mcp/Dockerfile 2026-03-31 15:33:44 -04:00
1d13495c93 Add scripts/wave-token-refresh.sh 2026-03-31 15:33:44 -04:00
49c26e0365 Add linkedin-mcp/SETUP.md 2026-03-31 15:33:44 -04:00
c4c9df329a Add linkedin-mcp/server.py 2026-03-31 15:33:44 -04:00
9cc1e0ea51 Add linkedin-mcp/Dockerfile.bak 2026-03-31 15:33:43 -04:00
dca3c9dbd2 Add linkedin-mcp/Dockerfile 2026-03-31 15:33:43 -04:00
c455cbd7dc Add linkedin-mcp/docker-compose.yml 2026-03-31 15:33:43 -04:00
92e6b46334 Add homeassistant-mcp/requirements.txt 2026-03-31 15:33:42 -04:00
1220e132de Add homeassistant-mcp/homeassistant_mcp.py 2026-03-31 15:33:42 -04:00
bb0fdb1704 Add homeassistant-mcp/entrypoint.py 2026-03-31 15:33:42 -04:00
9de9d2f878 Add homeassistant-mcp/Dockerfile 2026-03-31 15:33:41 -04:00
ebb6836674 Add gateway-proxy/user_routes.py 2026-03-31 15:33:41 -04:00
2ce999d252 Add gateway-proxy/user_management.py 2026-03-31 15:33:40 -04:00
6c5d2c59e4 Add gateway-proxy/user_dashboard_ui.py 2026-03-31 15:33:40 -04:00
8523a6d1e5 Add gateway-proxy/openai_routes_fixed.py 2026-03-31 15:33:40 -04:00
932e97acad Add gateway-proxy/openai_routes.py 2026-03-31 15:33:39 -04:00
633ea63bbf Add gateway-proxy/oauth_storage.py 2026-03-31 15:33:39 -04:00
dae0a6f7e5 Add gateway-proxy/INTEGRATION_INSTRUCTIONS.md 2026-03-31 15:33:39 -04:00
71ffc99072 Add gateway-proxy/gateway_proxy_user_integration.py 2026-03-31 15:33:38 -04:00
7c75fa9212 Add gateway-proxy/gateway_proxy_patch.py 2026-03-31 15:33:38 -04:00
dac5fc77bb Add gateway-proxy/gateway_proxy_fixed.py 2026-03-31 15:33:38 -04:00
759c2131f7 Add gateway-proxy/gateway_proxy.py 2026-03-31 15:33:37 -04:00
0bc49a862f Add gateway-proxy/Dockerfile 2026-03-31 15:33:37 -04:00
8b121c0c91 Add gateway-proxy/dashboard_routes.py 2026-03-31 15:33:37 -04:00
03a88fc31e Add forgejo-mcp/server_wrapper.py 2026-03-31 15:33:36 -04:00
02d13c58c9 Add forgejo-mcp/requirements.txt 2026-03-31 15:33:36 -04:00
86d8ed1f20 Add forgejo-mcp/README.md 2026-03-31 15:33:35 -04:00