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>
33 lines
1.5 KiB
YAML
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>`).
|