protogrid

Search / io.github.tresor4k/leavesheet-certified-payroll

LeaveSheet: Davis-Bacon wage rates and WH-347 certified payroll

R0· no sign-in

Read-only Davis-Bacon wage determination lookup, crew pay checks, fringe 6B, WH-347 payroll drafts.

v0.1.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality89new
Trust80of 100
Uptime, 30 days100%
Latency p50279 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "leavesheet-certified-payroll": {
      "type": "http",
      "url": "https://app.tabletemplates.com/api/mcp"
    }
  }
}
claude mcp add --transport http leavesheet-certified-payroll https://app.tabletemplates.com/api/mcp
[mcp_servers.leavesheet-certified-payroll]
url = "https://app.tabletemplates.com/api/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "leavesheet-certified-payroll": {
      "type": "remote",
      "url": "https://app.tabletemplates.com/api/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "leavesheet-certified-payroll": {
      "type": "http",
      "url": "https://app.tabletemplates.com/api/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=leavesheet-certified-payroll&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBwLnRhYmxldGVtcGxhdGVzLmNvbS9hcGkvbWNwIn0%3D"
}
{
  "servers": {
    "leavesheet-certified-payroll": {
      "type": "http",
      "url": "https://app.tabletemplates.com/api/mcp"
    }
  }
}
{
  "mcpServers": {
    "leavesheet-certified-payroll": {
      "httpUrl": "https://app.tabletemplates.com/api/mcp"
    }
  }
}
extensions:
  "leavesheet-certified-payroll":
    enabled: true
    name: "leavesheet-certified-payroll"
    type: streamable_http
    uri: "https://app.tabletemplates.com/api/mcp"
    timeout: 300

Quality 89 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations8 of 8 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 4,828 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 1 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

8 tools, about 4,828 tokens to load them all · tool set 7cfaf80adea8 · checked 2026-10-20 18:38 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 80 / 100

no-repository
provenance45
liveness100
freshness100
hygiene80

+website +reachable +uptime-100% +updated-1d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://app.tabletemplates.com/api/mcp streamable-httpnoneyes100%279 ms2025-11-252026-10-20

Tools (8)

annualize_fringeread-onlyUse when a contractor pays a fringe plan (health, pension…) for a worker who also does private work, and needs the hourly credit it may take on Davis-Bacon payrolls. Applies 29 CFR 5.25(c): plan cost divided by all hours worked, over-credit and fringe owed on DBRA hours, and the defined-contribution pension exception checks. Example: annualPlanCost=9600, totalHoursWorked=2000, dbraHours=600, plan={kind:"health"}, claimedHourlyCredit=8.
build_certified_payrollread-onlyUse when the user is ready to produce the weekly certified payroll (WH-347 PDF or Excel). Computes the WH-347 columns for the crew and returns a link to the export page where the files are generated in the browser; the crew data travels in the URL fragment, which is never sent to the server. The optional last 4 digits of each SSN are typed by the user on that page only. Do not put SSNs or addresses in the arguments. Up to 50 workers.
check_crew_payread-onlyUse when the user wants to know whether each worker on a Davis-Bacon job was paid at least the WD rate for a payroll week. For every worker and classification it computes the base and fringe due vs. paid, recomputes overtime (hours over 40 in the workweek, 29 CFR 5.5(b)(1) and 5.32), checks apprentice registration and the daily apprentice ratio (29 CFR 5.5(a)(4)), and totals the restitution owed, each amount with its CFR citation; also returns the WH-347 lines as paid. Up to 50 workers. Either pass the pasted WD text (wdText) and link each segment to a row with wdRowId (from get_wage_rates on the same text), or give the WD rate of each segment directly (rate) as the user reads it in the contract. Example: wdText="General Decision Number: TX20260291 …", weekEnding="2026-06-07", workers=[{name:"Crew 1", segments:[{classification:"Welder", wdRowId:"r1", stByDay:[8,8,8,8,8], paidBaseRate:22}]}].
compare_wd_revisionsread-onlyUse when the user asks what changed between two modifications of the same WD (e.g. the one in the contract vs. the latest one) and pastes both texts. Lists classifications added, removed and those whose base or fringe changed, with old and new amounts and the verbatim rows. Example: wdTextA="General Decision Number: CA20260001 … (modification 2)", wdTextB="… (modification 3)".
draft_conformance_requestread-onlyUse when a worker performs a classification that is missing from the WD and the contractor must ask the contracting officer to add it. Fills the SF-1444 fields, compares the proposed rate with related WD classifications, and checks the criteria of 29 CFR 5.5(a)(1)(iii)(A) (each answered yes / no / to verify). Related classifications come from neighbourRowIds (get_wage_rates on the pasted wdText, passed again here) or are given directly. Example: missingClassification="Drone operator", tasks=["aerial survey"], wd="TX20260291", wdText="General Decision Number: TX20260291 …", neighbourRowIds=["r1"], proposed={base:24,fringe:0}.
find_wage_determinationread-onlyUse when the user needs the general wage determination (WD) for a federally funded construction project. This tool makes no network call: it explains where the WD is (the one incorporated in the contract or bid documents, starting with "General Decision Number"), builds the sam.gov search link with the filters to set (state, county, construction type) for the user to open, and quotes the revision rules of 29 CFR 1.6(c). If the user pastes the WD text (wdText) with the contract award date, it reads the modification table and picks the modification that applies under 29 CFR 1.6(c). Example: state="TX", county="Travis", constructionType="Highway", awardDate="2026-06-01". Then call get_wage_rates with the pasted text.
get_wage_ratesread-onlyUse when the user needs the prevailing base rate and fringe of one or more classifications and has the text of the WD (pasted from the contract or the sam.gov page). Reads the pasted text and returns each matching classification row (craft, classification, zone, base and fringe $/h with the rule they come from, notes, parse confidence) plus the verbatim excerpt and the sam.gov page to check it. rowId values feed check_crew_pay and draft_conformance_request when the same text is passed. Example: wdText="General Decision Number: TX20260291 05/18/2026 …", search="welder".
reconcile_fringe_6bread-onlyUse when the user wants to check that the fringe credited on the WH-347 (column 6B) matches what was paid to each plan (health and welfare, pension, vacation, training) for the week. Same computation as the wh347_fringe_reconcile tool of leavesheet-mcp: 6B per line, totals per plan, reconciles when |sum 6B − sum plans| < 0.005. Up to 50 workers.

Schemas: list_tools.

Similar MCP servers

More from io.github.tresor4k

And 3 more from this publisher.

Official server.json
{
  "name": "io.github.tresor4k/leavesheet-certified-payroll",
  "title": "LeaveSheet: Davis-Bacon wage rates and WH-347 certified payroll",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://app.tabletemplates.com/api/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.1.0",
  "websiteUrl": "https://tabletemplates.com/certified-payroll-software/",
  "description": "Read-only Davis-Bacon wage determination lookup, crew pay checks, fringe 6B, WH-347 payroll drafts."
}