Skip to main content

:::warning AUTO-GENERATED — do not edit This page is generated from the MCP server snapshot content/backend-mcp.json. Edit the source MCP server (not this file), then run npm run generate. :::

Backend — Task Recipes

Source server: @rystad/backend-mcp · Generated: 2026-08-17T09:01:42.113Z

RecipeTitleWhen to use
create-endpointAdd a new Flask blueprint route (schema-validated, auth-guarded)You need to expose a new backend HTTP route on the Rystad Flask API and it must validate its input and be protected by auth.
add-auth-guardApply @require_auth / @require_role and verify the JWKS validation pathA route must be protected — either any authenticated user (@require_auth) or a specific role (@require_role).
wire-db-readRead data via dynamix_wrapper.get_sqlalchemy_connection_string() + SQLAlchemy SELECTA route must read data from the database.
wire-db-writeWrite data via dbconnect.update_table() (DELETE+INSERT by fk_user)A route must persist user-scoped data (the standard replace-by-user write path).
wire-loggingInitialize python_logger.setup_logger and emit structured logs to KibanaA route or module needs observability — structured logs that flow to Kibana.
add-paginationAdd standard limit/offset pagination + response envelopeA read route can return many rows and should be paginated.
create-chart-endpointCreate ONE endpoint per chart returning only that chart's seriesThe frontend needs data for a specific chart/visual.
add-testsAdd pytest coverage per route (401 without token, happy path with a fake JWT)A route was added or changed and needs test coverage before it is considered done.
run-verifyRun the backend verify gate before declaring doneYou believe a backend task is finished and want to confirm it before reporting done.

See also: Backend Guardrails.

Raw list snapshot
[
{
"id": "create-endpoint",
"title": "Add a new Flask blueprint route (schema-validated, auth-guarded)",
"when": "You need to expose a new backend HTTP route on the Rystad Flask API and it must validate its input and be protected by auth."
},
{
"id": "add-auth-guard",
"title": "Apply @require_auth / @require_role and verify the JWKS validation path",
"when": "A route must be protected — either any authenticated user (@require_auth) or a specific role (@require_role)."
},
{
"id": "wire-db-read",
"title": "Read data via dynamix_wrapper.get_sqlalchemy_connection_string() + SQLAlchemy SELECT",
"when": "A route must read data from the database."
},
{
"id": "wire-db-write",
"title": "Write data via dbconnect.update_table() (DELETE+INSERT by fk_user)",
"when": "A route must persist user-scoped data (the standard replace-by-user write path)."
},
{
"id": "wire-logging",
"title": "Initialize python_logger.setup_logger and emit structured logs to Kibana",
"when": "A route or module needs observability — structured logs that flow to Kibana."
},
{
"id": "add-pagination",
"title": "Add standard limit/offset pagination + response envelope",
"when": "A read route can return many rows and should be paginated."
},
{
"id": "create-chart-endpoint",
"title": "Create ONE endpoint per chart returning only that chart's series",
"when": "The frontend needs data for a specific chart/visual."
},
{
"id": "add-tests",
"title": "Add pytest coverage per route (401 without token, happy path with a fake JWT)",
"when": "A route was added or changed and needs test coverage before it is considered done."
},
{
"id": "run-verify",
"title": "Run the backend verify gate before declaring done",
"when": "You believe a backend task is finished and want to confirm it before reporting done."
}
]