All plugins

freight-reconciliation

Payer-side freight reconciliation: import carrier bills and trip ledgers into a deterministic local core (SQLite, WAL, no cloud), re-calculate against contracted rates and produce evidence-linked difference lists for human review — 14 MCP tools over uvx stdio (engine pinned to the immutable commit e8cd259c, release v0.4.1), with 3 bilingual workflow skills bundled. Portable Agent Plugins v1 package (mcp.json + skills/); needs uv on PATH. Never approves payments, sends messages or writes back to ERP/TMS; final confirmations route through a local admin page the model cannot reach. Disclosure — the optional freight-admin page listens on 127.0.0.1 and is where a human confirms mappings, rules, matches and exports; nothing leaves the machine.

harrylabsjToolsv0.4.1Updated 1 month ago

About

Payer-side freight reconciliation: import carrier bills and trip ledgers into a deterministic local core (SQLite, WAL, no cloud), re-calculate against contracted rates and produce evidence-linked difference lists for human review — 14 MCP tools over uvx stdio (engine pinned to the immutable commit e8cd259c, release v0.4.1), with 3 bilingual workflow skills bundled. Portable Agent Plugins v1 package (mcp.json + skills/); needs uv on PATH. Never approves payments, sends messages or writes back to ERP/TMS; final confirmations route through a local admin page the model cannot reach. Disclosure — the optional freight-admin page listens on 127.0.0.1 and is where a human confirms mappings, rules, matches and exports; nothing leaves the machine.

hermes-plugin-freight-reconciliation

Hermes Agent portable plugin (Portable Agent Plugins v1) for the
海纳·运费对账 / Haina Freight Reconciliation expert — payer-side,
deterministic, local-first reconciliation of carrier bills against trip
ledgers and contracted rates.

The product ships in two host forms that share one engine
(src/freight_core + adapters/ in
freight-reconciliation):

| Form | Package | Host |
| --- | --- | --- |
| WorkBuddy expert | dist/host-plugin/freight-reconciliation/ (built by scripts/build_host_package.py) | WorkBuddy / CodeBuddy |
| Hermes plugin | this repository (plugin.json + mcp.json + skills/) | Hermes Agent |

What the plugin does

  • 14 MCP tools (server key fr): case creation, source registration, mapping /
    rate-rule preparation, deterministic re-calculation runs, paged issue lists,
    four-panel evidence, review/export preparation.
  • The arithmetic and all business facts live in the local Core (SQLite, WAL);
    the model only sees redacted projections. Amounts are integer minor units;
    unknown is null, never 0.
  • Never approves payments, sends messages, debits accounts or writes back
    to ERP/TMS. prepare_* tools only draft candidates; confirmation happens on
    a local admin page the model cannot reach.
  • A connector crash never strands a run: jobs left QUEUED/RUNNING are marked
    FAILED/RUN_INTERRUPTED on next startup with a recovery_action; inputs are
    frozen by digest so the re-run is deterministic.

Layout

plugin.json   manifest (license: MIT)
mcp.json      stdio MCP server, pinned to the immutable commit e8cd259c (release v0.4.1)
skills/       3 workflow skills, English SKILL.md authoritative + SKILL.zh-CN.md variants
LICENSE       MIT

The MCP server key is deliberately short (fr): Hermes tool line names
(mcp__agent_plugin_<name>_<hash>__<key>__<tool>) have a 64-character budget,
and the plugin name freight-reconciliation is long.

Data root

Case library lives at ${PLUGIN_DATA}/freight-reconciliation (injected via
FREIGHT_RECON_ROOT). Keep it on a local disk — WAL-mode SQLite must not sit
on a network share.

Local admin page (human confirmations)

read -s -p 'admin token: ' FREIGHT_ADMIN_TOKEN; echo; export FREIGHT_ADMIN_TOKEN
export FREIGHT_RECON_ROOT=<same root as the connector>
uvx --from git+https://github.com/harrylabsj/freight-reconciliation@e8cd259c43f3607250eda4074ce3e8ab0e6e1bf5 freight-admin
# open http://127.0.0.1:8765/

The page is English by default; a Chinese browser (Accept-Language) or
FREIGHT_LANG=zh switches it, and every model- or file-supplied value is
HTML-escaped. Confirmations only happen here — the model cannot reach the route.

Self-test before a catalog PR

hermes plugins validate <this-dir>
# MCP probe from a neutral directory (no cwd dependency):
printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}' \
  '{"jsonrpc":"2.0","method":"notifications/initialized"}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
  | uvx --from git+https://github.com/harrylabsj/freight-reconciliation@e8cd259c43f3607250eda4074ce3e8ab0e6e1bf5 freight-mcp
# expect: 14 tools

An anonymized synthetic bill/trips/rates sample set lives in the engine repo at
examples/anonymized/ (with an engine-generated golden summary) and is covered
by tests/integration/test_anonymized_samples.py; crash-recovery behavior by
tests/integration/test_job_recovery.py.

README from the reviewed commit 160ed80; it updates when the author re-pins.

More by harrylabsj

7 plugins by harrylabsj in the catalog.

harrylabsjreading-buddyLocal-first WeRead (微信读书) reading companion: syncs bookshelf, reading stats and notes to the local machine and turns them into private reading cards and weekly/monthly reviews through 8 MCP tools, with a built-in fictional demo mode for previews. Engine pinned to an immutable git commit (e5f6673) over npx stdio; Portable Agent Plugins v1 package (mcp.json + skills/), needs Node.js 20+ on PATH. All data stays in PLUGIN_DATA; never posts to WeRead — cards and reviews are local files saved only after user confirmation. Disclosure — live mode sends your WEREAD_API_KEY as a Bearer token plus book ids and paging cursors to i.weread.qq.com (Tencent's WeRead agent gateway) and nothing else; the engine's MCP tool descriptions and error messages are Chinese-only while the skills are English-first; the engine's npm dependencies resolve as caret ranges at first launch.Communitytools1harrylabsjwechat-social-assistantLocal-first WeChat relationship memory assistant for macOS: captures only what is visible in the WeChat window via system OCR/Accessibility, stores everything in a local SQLite database (0600/0700 permissions, no cloud), and serves contact briefs, follow-up planning, outreach drafts and weekly relationship reports through 32 MCP tools. Engine pinned to the immutable PyPI release wechat-social-assistant==1.5.1 over uvx stdio; Portable Agent Plugins v1 package (mcp.json + skills/), needs uv on PATH. All data confined to PLUGIN_DATA via WSA_ALLOWED_ROOT + path enforcement. Never reads WeChat databases, never injects into WeChat, never sends messages — outreach is drafts for human review only. Disclosure — reads WeChat only by screenshotting/OCR-ing and walking the macOS Accessibility tree of the frontmost window (not WeChat's databases or a bot API), compiles bundled Swift helpers with swiftc into ~/Library/Caches/wechat-social-assistant/bin on first use, and needs Screen Recording (optionally Accessibility) permission for the host terminal; no network egress, never sends messages.Communitytools1harrylabsjeatwiseEatwise (外卖营养教练) — local-first Chinese dietary coach: deterministic meal nutrition reviews, personal daily energy/nutrient targets, and consented on-device profile and meal history through 9 MCP tools over a bundled open food database (TFND + USDA FNDDS). No network, no accounts, no payments; profile schema rejects name/phone/ID/medical fields by design. Engine pinned to an immutable git commit (cbc08f6) over npx stdio; Portable Agent Plugins v1 package (mcp.json + skills/), needs Node.js 22.5+ on PATH. Disclosure — the engine's MCP tool descriptions and error messages are Chinese-only while the skills are English-first.Communitytoolsharrylabsjgood-studentWrong-question diagnosis and study-action loop for parents and students — deterministic local core (SQLite, no cloud), host-model recognition gated by parent confirmation. Portable Agent Plugins v1 package (mcp.json + skills/); good-student MCP server pinned to immutable commit 2469cbb over uvx, with the good-student workflow skill bundled. Needs Python 3.10+ via uv. No credentials required; all data stays on-device and nothing is uploaded.Communitytools