{"server":{"name":"qlim8","version":"1.0.0"},"conventions":{"pagination":"List tools return { items: [...], next_cursor: string|null }. A non-null next_cursor means more rows exist: pass it back verbatim as the `cursor` argument to fetch the next page. Cursors are opaque — never construct, parse, or modify them.","dates":"Date filters (`from`/`to`) are ISO 8601 datetimes and are INCLUSIVE on both ends, compared against each record's transaction date.","scopes":"Each tool requires the scope shown. A 403 'auth.scope_required' result means the key lacks it; mint a key with the needed scope. Enterprise-tier tools also require the named plan feature.","errors":"Execution failures return a normal result with isError:true and a JSON body { code, title, detail }. Read `code` to branch (e.g. resource.not_found, auth.scope_required, request.validation_failed)."},"tools":[{"name":"get_emissions_summary","title":"Emissions summary by scope or month","description":"Returns total CO2e (market-based, in kg) aggregated by GHG scope for this tenant. Use to answer questions about total emissions, scope 1/2/3 breakdown, or year-over-year comparisons. Pass group_by:'month' for a calendar-month time series instead (e.g. 'emissions distributed by month'). For category breakdowns use get_emissions_by_category or get_emissions_by_scope3_category.","scope":"emissions:read","layer":1,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"from":"2024-01-01T00:00:00Z","to":"2024-12-31T23:59:59Z"},"output_example":{"total_co2e_kg":128400.5,"by_scope":{"1":21000,"2":47400.5,"3":60000},"entry_count":842},"notes":"group_by:'month' returns { total_co2e_kg, by_month: { \"2024-01\": ..., \"2024-02\": ... }, entry_count } instead of by_scope."},{"name":"get_emissions_by_scope3_category","title":"Scope 3 emissions by GHG Protocol category","description":"Returns this tenant's Scope 3 emissions broken down by the 15 standard GHG Protocol categories (1 Purchased goods and services .. 15 Investments). Use for CSRD/VSME-style Scope 3 category reporting. Amounts that can't be matched to one of the 15 categories are returned separately as unclassified, not silently dropped.","scope":"emissions:read","layer":1,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"from":"2024-01-01T00:00:00Z","to":"2024-12-31T23:59:59Z"},"output_example":{"total_co2e_kg":60000,"by_category":{"1":{"name":"Purchased goods and services","co2e_kg":42000,"entry_count":310},"6":{"name":"Business travel","co2e_kg":8000,"entry_count":45}},"unclassified_co2e_kg":0,"entry_count":355},"notes":"Categorisation is keyword-matched against the same calculation-category field the VSME report generator uses, so totals here match the report's Environmental Disclosures D30-D44 breakdown."},{"name":"get_emissions_by_category","title":"Emissions by calculation category","description":"Returns emissions broken down by the internal calculation category (the vocabulary from list_emission_categories / the factor used, e.g. 'Electricity', 'Natural gas', 'Business travel - flights'), sorted by CO2e descending. Use to answer 'what are my biggest emission sources' style questions. Optionally filter to one GHG scope first.","scope":"emissions:read","layer":1,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"from":"2024-01-01T00:00:00Z","to":"2024-12-31T23:59:59Z","scope":"1"},"output_example":{"total_co2e_kg":21000,"by_category":{"Natural gas":15000,"Diesel":6000},"entry_count":210}},{"name":"list_emissions","title":"List emission entries","description":"Returns a cursor-paginated list of emission entries (each linked to an activity/invoice). Use for detailed audits or exporting raw emission data. Page with next_cursor.","scope":"emissions:read","layer":1,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"scope":"1","limit":50}},{"name":"get_emission_lineage","title":"Emission entry lineage","description":"Returns the full data lineage for one emission entry: source activity/invoice, the emission factor used, category-change history, and cryptographic audit hashes for independent verification. Use for auditor self-service and traceability.","scope":"emissions:read","layer":1,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"id":"8b1f0c2e-1d34-4a77-9c0e-3a2b1c4d5e6f"}},{"name":"list_activities","title":"List activities","description":"Returns a cursor-paginated list of activities (invoices and transactions) for this tenant. Each activity is a source document that may produce one or more emission entries after categorization.","scope":"activities:read","layer":1,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"from":"2024-01-01T00:00:00Z","limit":25}},{"name":"list_reports","title":"List generated reports","description":"Returns all previously generated compliance reports for this tenant (VSME, CSRD, etc.) with file size and creation date. Use get_report_status for in-progress jobs or generate_report to start a new render.","scope":"reports:read","layer":1,"annotations":{"readOnlyHint":true,"openWorldHint":false}},{"name":"get_report_status","title":"Report job status","description":"Returns the status of a report render job (queued, running, completed, failed). Poll after generate_report until status is 'completed'.","scope":"reports:read","layer":1,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479"}},{"name":"generate_report","title":"Generate a compliance report","description":"Triggers an async report render job and returns a job id. Poll get_report_status until completed. Idempotent: the same year + standard_type + format returns the existing job if one is already queued or running.","scope":"reports:generate","layer":1,"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"input_example":{"report_year":2024,"standard_type":"vsme_basic","format":"pdf"},"notes":"Long-running. Returns 202-style job; do not block — poll get_report_status."},{"name":"list_suppliers","title":"List Scope 3 suppliers","description":"Returns all Scope 3 supplier connections for this tenant with disclosure status (active, pending, invited). Enterprise plan required. Use get_value_chain_coverage for an aggregated summary.","scope":"suppliers:read","layer":2,"required_tier":"enterprise","annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"year":2024}},{"name":"get_value_chain_coverage","title":"Value-chain coverage","description":"Returns the percentage of total supplier spend covered by active Scope 3 disclosures for a reporting year. Enterprise plan required. coverage_pct of 100 means all supplier trade is disclosed.","scope":"suppliers:read","layer":2,"required_tier":"enterprise","annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"year":2024}},{"name":"get_value_chain_exposure","title":"Value-chain exposure","description":"Returns suppliers sorted by trade amount descending — which suppliers represent the largest Scope 3 emission risk. Enterprise plan required. Use to prioritise disclosure outreach.","scope":"suppliers:read","layer":2,"required_tier":"enterprise","annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"year":2024}},{"name":"list_targets","title":"List reduction targets","description":"Returns all CO2 reduction targets for this tenant (baseline year, target year, reduction percent). Use to assess climate-commitment progress or compare targets against get_emissions_summary.","scope":"targets:read","layer":2,"annotations":{"readOnlyHint":true,"openWorldHint":false}},{"name":"create_target","title":"Create a reduction target","description":"Creates a new CO2 reduction target for this tenant and returns it with its assigned id. Requires targets:write scope.","scope":"targets:write","layer":2,"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"input_example":{"name":"SBTi 2030","baseline_year":2019,"baseline_emissions":1000,"target_year":2030,"target_reduction_percent":46.2,"scope":"1+2"}},{"name":"list_emission_factors","title":"List emission factors","description":"Returns the emission factor catalog used to convert activities into CO2e. Each factor maps category + region + year to a kg CO2e per unit value. Use to understand how calculations are derived.","scope":"factors:read","layer":2,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"category":"Electricity","region":"DK"}},{"name":"get_factor_citations","title":"Emission factor citations","description":"Returns how many of this tenant's emission entries used a specific factor, plus a sample of entry ids. Use for auditor self-service to verify which invoices contributed to a factor's footprint.","scope":"factors:read","layer":2,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"id":"1f2e3d4c-5b6a-7980-1234-567890abcdef"}},{"name":"list_webhooks","title":"List webhook subscriptions","description":"Returns all webhook subscriptions for this tenant. Each receives HTTP POST callbacks for configured events (e.g. supplier.connected, report.generation_completed). Use get_webhook_deliveries to inspect attempts.","scope":"webhooks:read","layer":3,"annotations":{"readOnlyHint":true,"openWorldHint":false}},{"name":"create_webhook","title":"Create a webhook subscription","description":"Creates a webhook subscription and returns it with a one-time signing_secret — store it securely, it is not shown again. Verify incoming payloads with HMAC-SHA256. Requires webhooks:manage scope. URL must be HTTPS in live.","scope":"webhooks:manage","layer":3,"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"input_example":{"url":"https://example.com/hooks/qlim8","events":["report.generation_completed"],"environment":"live"},"notes":"The signing_secret in the response is shown ONCE. SSRF-validated: private/loopback hosts are rejected in live."},{"name":"get_webhook_deliveries","title":"Webhook delivery attempts","description":"Returns the 100 most recent delivery attempts for a webhook (status, HTTP response code, latency), newest first. Use to debug delivery failures.","scope":"webhooks:read","layer":3,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"webhook_id":"9c8b7a6d-5e4f-3210-fedc-ba9876543210"}},{"name":"list_data_sources","title":"List integration data sources","description":"Returns the tenant's accounting-system connectors (e-conomic, Dinero, …) with sync status, pending invoice counts, and last-sync timestamps. Use to diagnose 'why didn't invoices sync?' or which connector is paused. Read-only — connect/sync actions are not exposed.","scope":"data_sources:read","layer":1,"annotations":{"readOnlyHint":true,"openWorldHint":false}},{"name":"get_quota_status","title":"Invoice quota status","description":"Returns the tenant's current invoice-ingestion quota: limit, used, available, period dates and tier. Use to decide whether to throttle a sync or warn about an approaching cap. Enterprise/sandbox tenants report 'unlimited'.","scope":"quota:read","layer":1,"annotations":{"readOnlyHint":true,"openWorldHint":false}},{"name":"list_emission_categories","title":"List emission category taxonomy","description":"Returns the emission category taxonomy (Danish + English names, hierarchy level, parent, default scope, factor value). This is the vocabulary the system uses to classify activities — read it before reasoning about categories or emissions breakdowns.","scope":"factors:read","layer":1,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"level":1}},{"name":"list_scenarios","title":"List reduction scenarios","description":"Returns the reduction-planning scenarios visible to this key (a scenario groups reduction initiatives = 'tiltag'). Tenant keys see real + pending-review scenarios; consultant keys also see their own drafts. Requires the scenarioBuilder plan feature.","scope":"scenarios:read","layer":2,"annotations":{"readOnlyHint":true,"openWorldHint":false}},{"name":"get_scenario","title":"Get a scenario with its tiltag","description":"Returns one scenario plus its reduction initiatives (tiltag). 404 if it is not visible to this key. Requires the scenarioBuilder feature.","scope":"scenarios:read","layer":2,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"id":"2b3c4d5e-6f70-4811-9a2b-3c4d5e6f7081"}},{"name":"list_tiltag","title":"List a scenario's tiltag","description":"Returns the reduction initiatives (tiltag) belonging to a scenario, including any cost annotations. Requires the scenarioBuilder feature.","scope":"scenarios:read","layer":2,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"scenario_id":"2b3c4d5e-6f70-4811-9a2b-3c4d5e6f7081"}},{"name":"create_scenario_draft","title":"Create a scenario","description":"Creates a reduction scenario. From a consultant (third-party) key it is created as a DRAFT awaiting client review; from a tenant key it is created as 'real'. Requires scenarios:write + the scenarioBuilder feature.","scope":"scenarios:write","layer":2,"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"input_example":{"name":"2030 fleet electrification plan","description":"Phased EV transition"}},{"name":"add_tiltag","title":"Add a manual tiltag","description":"Adds a manual reduction initiative (tiltag) to a scenario with an optional cost annotation. Does NOT run the AI composition engine — it records a labelled initiative only. Requires scenarios:write + the scenarioBuilder feature.","scope":"scenarios:write","layer":2,"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"input_example":{"scenario_id":"2b3c4d5e-6f70-4811-9a2b-3c4d5e6f7081","label":"Switch to green electricity","annual_cost":50000,"currency":"DKK"}},{"name":"submit_scenario_for_review","title":"Submit a draft scenario for review","description":"Consultant (third-party) keys only: transitions a draft scenario to pending_review and notifies the client's admins. Requires scenarios:write + the scenarioBuilder feature.","scope":"scenarios:write","layer":2,"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"input_example":{"id":"2b3c4d5e-6f70-4811-9a2b-3c4d5e6f7081"}},{"name":"list_pcf_records","title":"List product carbon footprints","description":"Returns the tenant's approved product carbon footprint (PCF) records — supplier, product, value/unit, methodology and validity window. Retracted/superseded footprints are excluded. Use for Scope 3 product-level data.","scope":"factors:read","layer":2,"annotations":{"readOnlyHint":true,"openWorldHint":false}},{"name":"list_departments","title":"List departments","description":"Returns the tenant's organisational units (name, code, active flag). Use to scope or roll up emissions by department/site.","scope":"tenant:read","layer":2,"annotations":{"readOnlyHint":true,"openWorldHint":false}},{"name":"get_report_attestations","title":"Get report attestations","description":"Returns the third-party consultant sign-offs (attestations) for a generated report — standards attested, consultant/client CVR, and signature date. Use to confirm a report was independently certified.","scope":"reports:read","layer":2,"annotations":{"readOnlyHint":true,"openWorldHint":false},"input_example":{"report_id":"f47ac10b-58cc-4372-a567-0e02b2c3d479"}}]}