NL Ledger

NL provincial and federal spending records, each with its source. Addresses do not locate work.

我该使用它吗

质量与安全性

A
描述质量
97%
模式完整度
85%
命名质量
97%
投毒风险
100%
权限匹配度
90%
协议合规性
100%

发现(1)

  • LOWTool 'fetch' suggests web access but openWorldHint=false在 fetch 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~2,533token 数(工具定义)
~679 B典型响应大小
对注意力有中等影响(占 128k 上下文窗口的 1.98%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "nl-ledger": {
      "url": "https://nlledger.ca/mcp"
    }
  }
}

远程端点

https://nlledger.ca/mcpstreamable-http

它能做什么

工具清单

工具(15)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢get_pay(employer, year)

Published pay above $100,000 by employer and calendar year, people, common titles, overtime and severance. Missing lists are not zero; this is not total payroll. Omit employer to list employers. Individuals use search_records.

输入模式

{
  "type": "object",
  "properties": {
    "employer": {
      "type": "string"
    },
    "year": {
      "type": "string",
      "pattern": "^\\d{4}$"
    }
  }
}
🟢get_body(name)

A public body's reported values by year and source, and largest suppliers, matching its page. Award values are not payments; overlapping and federal sources stay labelled. Omit name to list bodies.

输入模式

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    }
  }
}
🟢tax_receipt(income)

Estimate provincial income tax on annual employment income and illustrate department spending shares, using the receipt page's assumptions. Not a personal tax assessment or a trace of your tax payments.

输入模式

{
  "type": "object",
  "properties": {
    "income": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "required": [
    "income"
  ]
}
🟢get_totals(group_by, supplier, supplier_id, body, body_id, ...)

Full-record totals or rankings filtered by supplier, named buyer, year or source. Groups by supplier, buyer/department, year or source, separately by source and currency with overlap exclusions. Awards are not payments; use get_department for program spending. No paginated-search sums.

输入模式

{
  "type": "object",
  "properties": {
    "group_by": {
      "type": "string",
      "enum": [
        "supplier",
        "body",
        "department",
        "year",
        "source"
      ]
    },
    "supplier": {
      "type": "string"
    },
    "supplier_id": {
      "type": "string"
    },
    "body": {
      "type": "string"
    },
    "body_id": {
      "type": "string"
    },
    "department": {
      "type": "string"
    },
    "year": {
      "type": "string",
      "description": "Original record calendar year or published fiscal period; not annual spending."
    },
    "source": {
      "type": "string",
      "enum": [
        "ppa",
        "fed_contract",
        "fed_grant",
        "canadabuys",
        "pa_pss",
        "pa_tp",
        "sunshine",
        "minister",
        "mha"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  }
}
🟢search_records(query, source, year, pattern, supplier_id, ...)

Search every line item: contract awards, federal contracts and grants, minister and MHA expense lines, and pay over $100,000. records holds exact matches: every word matches (by prefix), largest amount first, up to 25 per page (use page for more). A misspelled word is corrected when nothing matches exactly (see corrected). On page 1, related_by_meaning adds up to 20 records about the same thing that do not contain every word, closest first. Give a query, a filter, or both. Each record has its source citation. Sources: ppa = Provincial contract award; fed_contract = Federal contract; fed_grant = Federal grant or contribution; canadabuys = Federal award notice; pa_pss = Federal professional services payment; pa_tp = Federal transfer payment; sunshine = Public sector pay over $100,000; minister = Minister's expense claim; mha = MHA expense.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Words to find, e.g. 'ferry repair', a company name, a town or a job title."
    },
    "source": {
      "type": "string",
      "enum": [
        "ppa",
        "fed_contract",
        "fed_grant",
        "canadabuys",
        "pa_pss",
        "pa_tp",
        "sunshine",
        "minister",
        "mha"
      ],
      "description": "Limit to one source."
    },
    "year": {
      "type": "string",
      "pattern": "^\\d{4}$",
      "description": "Calendar year of the record date, e.g. 2024."
    },
    "pattern": {
      "type": "string",
      "description": "Flag id from list_flags, e.g. no-competition."
    },
    "supplier_id": {
      "type": "string",
      "description": "Supplier id from get_supplier."
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Page number. Default 1."
    }
  }
}
🟢get_record(id)

Get one line item by its 12-character id. Returns retained source fields, evidence, inclusion rule, reported address/conflicts, separately supported location, native currency, amount kind and period, and citations. Federal amounts have no automatic provincial scaling.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{12}$",
      "description": "Record id, e.g. 2ebb7ad3bd29."
    }
  },
  "required": [
    "id"
  ]
}
🟢get_supplier(name, supplier_id)

Get included reported record values, all years, for a supplier or recipient, with explicit overlap/exclusion policy and breakdowns by source, amount kind, period, native currency and location evidence. These are not everything received, unique spending or spending in NL. Give a name or supplier_id; unmatched names return close matches.

输入模式

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Company or recipient name, e.g. 'Pennecon'."
    },
    "supplier_id": {
      "type": "string",
      "description": "10-character id from an earlier result."
    }
  }
}
🟢get_department(name, year)

Get a provincial department's gross spending by program: actual against amended and original estimates, for a fiscal year from 2019-20 to 2024-25, or the 2025-26 and 2026-27 estimates. Leave out name to list the departments and years.

输入模式

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Department name or part of it, e.g. 'Health'."
    },
    "year": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}$",
      "description": "Fiscal year, e.g. 2024-25 or 2026-27. Default: the latest year with actual spending."
    }
  }
}
🟢get_budget(year, department)

Get what the province budgeted and what it spent in a fiscal year, the difference, the annual surplus or deficit, net debt, and every department's budget against its spending, largest difference first. Years from 2019-20; the newest budgets have no published results yet. Two bases that must not be added together: departments_spending is modified cash (the Estimates given to the House against the Report on the Program Expenditures and Revenues); whole_government is the audited Public Accounts (accrual, all government bodies), the only source for the surplus or deficit and net debt. Every figure has its source link. Leave out year for the latest year with published results.

输入模式

{
  "type": "object",
  "properties": {
    "year": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}$",
      "description": "Fiscal year, e.g. 2024-25. Default: the latest year with published results."
    },
    "department": {
      "type": "string",
      "description": "Part of a department name, to return only matching departments, e.g. 'Health'."
    }
  }
}
🟢get_members(group, year, category, name)

Rank Members of the House of Assembly by allowance spending for a fiscal year, overall or for one category (for example travel), with the average. Give a name to get one member's spending by year and category. Set group to ministers for ministers' expense claim totals.

输入模式

{
  "type": "object",
  "properties": {
    "group": {
      "type": "string",
      "enum": [
        "mha",
        "ministers"
      ],
      "description": "Default mha."
    },
    "year": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}$",
      "description": "MHA fiscal year, e.g. 2024-25. Default: the latest full year."
    },
    "category": {
      "type": "string",
      "description": "Words in the category name, e.g. 'travel', 'office', 'constituency'."
    },
    "name": {
      "type": "string",
      "description": "Part of a member's name."
    }
  }
}
🟢list_flags

List the patterns people read as waste or perks (for example sole-source awards, contracts that grew, purchases just under a limit), with counts. Each pattern is a question, not a finding.

输入模式

{
  "type": "object",
  "properties": {}
}
🟢get_flag(id)

Get one pattern by id (from list_flags): why people look at it, exactly how it is computed, what it cannot tell you, and its largest results.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Pattern id, e.g. no-competition."
    }
  },
  "required": [
    "id"
  ]
}
🟢human_scale(amount)

Hypothetically divide a supported CAD amount by the NL population, households and reference median wage. Result states the denominator assumption and carries no geographic allocation, resident liability or local wage/employment claim. Includes Statistics Canada sources.

输入模式

{
  "type": "object",
  "properties": {
    "amount": {
      "type": "number",
      "minimum": 0,
      "description": "Amount in Canadian dollars, e.g. 50000000."
    }
  },
  "required": [
    "amount"
  ]
}
🟢search(query)

Search the records and return a short list of results, each with id, title and url. Use fetch with an id to get the full record. Prefer search_records when you can pass filters.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Words to find."
    }
  },
  "required": [
    "query"
  ]
}
🟢fetch(id)

Fetch the full text of one result from search, by id.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Id from search."
    }
  },
  "required": [
    "id"
  ]
}

社区

评价此服务器

证据

最近观测

已验证未记录版本15 个工具