:::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
| Recipe | Title | When to use |
|---|---|---|
create-endpoint | Add 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-guard | Apply @require_auth / @require_role and verify the JWKS validation path | A route must be protected — either any authenticated user (@require_auth) or a specific role (@require_role). |
wire-db-read | Read data via dynamix_wrapper.get_sqlalchemy_connection_string() + SQLAlchemy SELECT | A route must read data from the database. |
wire-db-write | Write 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-logging | Initialize python_logger.setup_logger and emit structured logs to Kibana | A route or module needs observability — structured logs that flow to Kibana. |
add-pagination | Add standard limit/offset pagination + response envelope | A read route can return many rows and should be paginated. |
create-chart-endpoint | Create ONE endpoint per chart returning only that chart's series | The frontend needs data for a specific chart/visual. |
add-tests | Add 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-verify | Run the backend verify gate before declaring done | You 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."
}
]