LibreChat sandbox: accessible image generation via MCP tool; two MCP servers; new overlay tag
This commit is contained in:
1 parent
34a23a34f3
commit
bac352f50e
1 file changed
+22
-8
@@ -24,13 +24,26 @@ env vars, known state). This doc is the operator-facing summary.
|
|||||||
(dedicated LiteLLM virtual key, alias `librechat-speech`, $5/30d, audio
|
(dedicated LiteLLM virtual key, alias `librechat-speech`, $5/30d, audio
|
||||||
models only — never the gateway master key), `IMAGE_GEN_OAI_BASEURL` +
|
models only — never the gateway master key), `IMAGE_GEN_OAI_BASEURL` +
|
||||||
`IMAGE_GEN_OAI_MODEL` (agent image tool → gateway), `SEARXNG_INSTANCE_URL`.
|
`IMAGE_GEN_OAI_MODEL` (agent image tool → gateway), `SEARXNG_INSTANCE_URL`.
|
||||||
- **Docs MCP server** — `/app/data/mcp/server.py` (volume, mirrored in the
|
- **MCP servers** — `/app/data/mcp/server.py` (docs search, `search_docs`,
|
||||||
repo at `mcp/server.py`; stdlib-only Python; tool `search_docs`).
|
starts at boot) and `/app/data/mcp/image_server.py` (image generation,
|
||||||
|
`generate_image`, per-user startup — see below); both mirrored in the repo
|
||||||
|
under `mcp/`, stdlib-only Python.
|
||||||
- **Brand assets** (login logo, favicons, PWA icons, page title) — baked into
|
- **Brand assets** (login logo, favicons, PWA icons, page title) — baked into
|
||||||
a pinned overlay image `FROM` the official appstore image, built from the
|
a pinned overlay image `FROM` the official appstore image, built from the
|
||||||
repo via `cloudron builder build` and deployed with
|
repo via `cloudron builder build` and deployed with
|
||||||
`cloudron update --image ... --force`. Deployed tag:
|
`cloudron update --image ... --force`. Deployed tag:
|
||||||
`registry.inference.coop/co-op/librechat-custom:20261019-070dec3`.
|
`registry.inference.coop/co-op/librechat-custom:20261019-5e214e4`.
|
||||||
|
|
||||||
|
## Image generation (two member-facing paths)
|
||||||
|
|
||||||
|
1. **MCP tool (easiest)**: the `inference-image` MCP server exposes
|
||||||
|
`generate_image` in the composer's **+** palette — no agent setup. Each
|
||||||
|
member's own co-op API key is injected per-user (LibreChat
|
||||||
|
`customUserVars` → `env`, `startup: false` because the key only exists
|
||||||
|
after the member saves it in the MCP panel), so images bill to the
|
||||||
|
member's own balance (~1–2¢ per 1024² image via `regolo/qwen-image`).
|
||||||
|
2. **Agent tool**: LibreChat's built-in "OpenAI Image Tools"
|
||||||
|
(`IMAGE_GEN_OAI_BASEURL`/`IMAGE_GEN_OAI_MODEL` → gateway; per-user keys).
|
||||||
|
|
||||||
## Update policy
|
## Update policy
|
||||||
|
|
||||||
@@ -75,8 +88,9 @@ cloudron logs --app 4023ccbf-d57a-4500-97df-14de9cf3516e --lines 60 | \
|
|||||||
curl -s https://librechat-test.inference.coop/api/config # appTitle, emailLoginEnabled
|
curl -s https://librechat-test.inference.coop/api/config # appTitle, emailLoginEnabled
|
||||||
```
|
```
|
||||||
|
|
||||||
Expected: `Custom config file loaded`, `[MCP] Initialized with 1 configured
|
Expected: `Custom config file loaded`, `[MCP][inference-docs]` initialized
|
||||||
server and 1 tool`, `[schedules] engine started`, `appTitle: Inference
|
with tool `search_docs`, `inference-image` registered (its `Tools: undefined`
|
||||||
Co-op`, `emailLoginEnabled: false`. The login page shows the co-op logo, the
|
boot line is expected — per-user startup), `[schedules] engine started`,
|
||||||
co-op favicon, and a single "Login with Inference Cooperative" (Cloudron SSO)
|
`appTitle: Inference Co-op`, `emailLoginEnabled: false`. The login page shows
|
||||||
path with no email/password form.
|
the co-op logo, the co-op favicon, and a single "Login with Inference
|
||||||
|
Cooperative" (Cloudron SSO) path with no email/password form.
|
||||||
Reference in new issue
Block a user