Generate or export a dashboard JSON model from Grafana UI (Dashboard settings > JSON Model) or construct one programmatically
Create a service account and token in Grafana (Administration > Service Accounts) with the 'Editor' or 'Admin' role scoped to the target organization
POST to '/api/dashboards/db' with Content-Type: application/json body containing '{"dashboard": <dashboard_json>, "folderId": <id>, "overwrite": true}'
Set the Authorization header to 'Bearer YOUR_TOKEN' on the request; verify the response contains 'status: success' and the returned dashboard URL
To provision dashboards as code at startup, place JSON files in Grafana's provisioning/dashboards directory and configure a provider YAML specifying 'path' and 'updateIntervalSeconds'
Known gotchas
Dashboard JSON must have 'id': null when creating a new dashboard; sending an existing numeric id with 'overwrite': false will return a 412 conflict error
Folder UID and folder ID are different fields; the API for dashboard provisioning uses 'folderUid' in newer Grafana versions — check your Grafana version's API docs for the correct field name
Provisioned dashboards (from disk files) cannot be edited via the UI by default; set 'allowUiUpdates: true' in the provider config if you need in-UI edits to persist
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp