Files
mnemosyne/validator/fastagent.config.yaml
Robert Helewka 1cd556c3f6 fix(asgi): redirect /mcp → /mcp/ for clients that omit the trailing slash
Starlette's Mount("/mcp", ...) only matches /mcp/* paths. A POST to bare
/mcp falls through to the catch-all Django mount and returns 404. The
fast-agent MCP client and the README example both used the no-slash URL,
so the validator was never able to initialize a session — every call
landed in django.request.

Adds a 307 redirect at /mcp so any client URL works, and points the
validator config at /mcp/ directly to skip the redirect round-trip.
Also gitignores fastagent.jsonl (a runtime log file fast-agent writes
into the working directory).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 12:04:42 -04:00

33 lines
1.5 KiB
YAML

# Mnemosyne Validator — FastAgent + MCP configuration
#
# Secrets (api_key, MCP bearer tokens) live in fastagent.secrets.yaml
# (gitignored) and merge with this file at runtime.
# Local llama.cpp on Nyx (OpenAI-compatible). Override via
# fastagent.secrets.yaml if you want to point at a different model server.
default_model: openai.Qwen3.5-35B-A3B-UD-Q4_K_XL.gguf
# Capabilities for the model — Pallas registers it with fast-agent's
# ModelDatabase using these values. vision: true so we can validate image
# round-trip later (search returns image candidates by default).
model_capabilities:
vision: true
context_window: 192000
max_output_tokens: 16384
# ── LLM Providers ───────────────────────────────────────────────────────────
openai:
base_url: "http://nyx.helu.ca:22079/v1"
# ── MCP Servers ─────────────────────────────────────────────────────────────
mcp:
servers:
# Mnemosyne MCP server — Streamable HTTP at /mcp.
# Default assumes the validator runs on the same host as Mnemosyne;
# override the URL in fastagent.secrets.yaml or via Ansible if remote.
mnemosyne:
transport: http
url: "http://localhost:22091/mcp/"
# Bearer token in fastagent.secrets.yaml (provisioned via
# `python manage.py create_mcp_token <user>`).