Ucc Liens

io.github.pipeworx-iov0.1.0Updated Oct 9, 2026

UCC Liens — business-debtor UCC (Uniform Commercial Code) financing

VerifiedStreamable HTTPWeb executableBusiness & CommerceFinance

Overview

AI-generated overview

Lets an assistant look up UCC business-debtor lien filings in Colorado, Connecticut and Oregon, and see recent lender-activity filings.

What it does
Provides two tools over public Secretary of State open data. ucc_search finds filings by business debtor name in CO, CT or OR and returns file number, filing type and status, filing and lapse dates, debtor and secured party names and addresses, and a source URL. ucc_new_filings returns filings since a given date, optionally filtered by secured-party name, for lender-activity signals. Individual debtors are excluded at query time, and every response carries an FCRA notice.
When to use it
Useful when an assistant needs public UCC financing-statement data on companies: checking whether a business has secured-lien filings, who the secured parties are, or which lenders have filed recently in these three states. Not suitable for consumer credit, employment, insurance or housing eligibility decisions.
Requirements
A remote streamable HTTP endpoint at the gateway URL, or a local stdio server run with npx. No account, API key or environment variable is declared; the underlying state open-data APIs are public and unauthenticated. Network access to the gateway or to the state data portals is needed.
Before you install
Read-only lookups of public filings; no writes, payments or credentials are involved. Coverage is limited: Oregon's dataset is a rolling roughly 30-day window, so older active liens may not appear, and Vermont is unsupported and always returns an error. The gateway endpoint also exposes shared meta-tools beyond this pack's two tools, which adds context overhead.

Installation

In SourceWeft

  1. Open Ucc Liens in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "ucc-liens": {
      "type": "http",
      "url": "https://gateway.pipeworx.io/ucc-liens/mcp"
    }
  }
}

README

@pipeworx/ucc-liens

Business-debtor UCC (Uniform Commercial Code) financing-statement filings — secured loans against a company's assets — for Colorado, Connecticut and Oregon, plus recent-filing lender-activity signals. Each state's own public Secretary of State open-data portal is the source; Vermont is documented as unreachable (see Data sources). Individual debtors are excluded at the query, not filtered afterward, and every response carries an FCRA notice.

Part of Pipeworx — an MCP gateway connecting AI agents to 1745+ live data sources. This is an independent, unofficial integration — not affiliated with, endorsed by, or published by the upstream provider.

Tools

  • ucc_search(debtor_name, state, limit?) — search filings by business debtor name in CO, CT or OR. Returns file number, filing type/status, filing and lapse dates, debtor name/address, secured party name/address, and a source URL per filing. state: "VT" always throws (see Data sources).
  • ucc_new_filings(state, since, secured_party?, limit?) — recent filings since a date, for lender-activity signals (who is lending to whom, and when). Same state coverage; optional substring filter on secured-party name.

Auth

Keyless. All three live sources are public, unauthenticated open-data APIs.

Data sources

  • https://data.ct.gov/resource/xfev-8smz.json — Connecticut Secretary of the State, "Uniform Commercial Code (UCC) Lien Filings." One row per lien transaction (original filing, amendment, continuation, release). Business debtors carry debtor_nm_bus; individual debtors carry debtor_nm_last/ debtor_nm_first instead and never debtor_nm_bus — the pack's $where requires debtor_nm_bus IS NOT NULL, so an individual-debtor row is never fetched. No collateral description field is published in this dataset.
  • https://data.colorado.gov/resource/wffy-3uut.json (filings), https://data.colorado.gov/resource/8upq-58vz.json (debtors), https://data.colorado.gov/resource/ap62-sav4.json (secured parties) — Colorado Secretary of State UCC, as three separate Socrata datasets joined in-memory by fileid (there is no server-side join). Debtors carry organizationname when a business, firstname/lastname when an individual — the pack queries the debtors dataset with organizationname IS NOT NULL first and only ever fetches filings/secured parties for the fileids that search returned. A fourth dataset, 4am6-w6u4 (collateral), exists but is not queried in v1 to keep response size bounded — the schema is simple to add if a caller asks for it.
  • https://data.oregon.gov/resource/snfi-f79b.json — Oregon Secretary of State, "UCC List of Filings Entered Last Month." This is a rolling ~30-day window, not the full historical index — the dataset name is literal; it is replaced monthly, not accumulated. party_type is DB (debtor) or SP (secured party); entity_type is ORG or IND. The pack requires party_type = 'DB' AND entity_type = 'ORG' for search/new-filings, then makes a second query for the matching SP row(s) by original_file_number to attach the secured party. A debtor with no filing in roughly the last month will not appear even if its lien is still active — this is a genuine coverage limit, documented in every Oregon filing's coverage_note field, not a bug. Oregon's full-history search (secure.sos.state.or.us/ucc/searchHome.action → POST /ucc/search.action) is not used in v1, but it is reachable — edge-probed live from a throwaway Cloudflare Worker on the prod account (2026-10-08): GET the search form for a CSRFToken + session cookie, then POST a debtor search, and it returns a clean "Welcome Public User" results page (verified with debtor NIKE, 2 live liens), no bot challenge, 3/3 runs. It is skipped anyway because its results LIST has no secured-party column — getting one means an extra per-filing detail-page fetch per row, which snfi-f79b gives for free in a single second query. Separately, from a plain residential/office client (not a Worker) it IS Akamai-bot-walled: three consecutive curl probes from the same laptop got clean HTML on the very first request and Akamai's obfuscated JS sensor-challenge page (window["bobcmn"] = "...") on every repeat. Don't assume "tested from my laptop" tells you anything about this host either way — it cuts both directions here (Worker: fine; repeated non-Worker client: walled) — always re-probe from a Worker before relying on either answer.
  • Vermont has no automatable source. Its only public UCC search, bizfilings.vermont.gov/uccsearch ("Lien Records Search," an Angular SPA calling api.bizfilings.vermont.gov/api), requires completing a Google reCAPTCHA before the search request is even sent — confirmed live 2026-10-08 via a real browser session: submitting the form opened a "User validation required to continue" / "I'm not a robot" dialog, and the network trace showed google.com/recaptcha/api2/anchor and /bframe calls gating the POST. No Vermont open-data mirror of UCC filings exists (checked data.vermont.gov / open data search). ucc_search/ucc_new_filings with state: "VT" always throw a descriptive error naming this wall — by design, never a silent empty result, and never attempted automatically (bypassing a CAPTCHA is out of bounds regardless of feasibility).

Compliance: every tool description and every successful response carries fcra_notice: "Not a consumer report. Not for use in credit, employment, insurance or housing eligibility decisions (FCRA)." This is a public-filing lookup, not a credit bureau product.

Quick Start

Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):

json
{  "mcpServers": {    "ucc-liens": {      "url": "https://gateway.pipeworx.io/ucc-liens/mcp"    }  }}

What this endpoint actually serves

tools/list at https://gateway.pipeworx.io/ucc-liens/mcp returns the tools in the table above plus the shared Pipeworx meta-tools — ask_pipeworx, discover_tools, search_within, remember/recall and the rest of the gateway-wide set. So the tool count you see is larger than this table: a single-pack endpoint currently lists roughly 30 shared tools alongside the pack's own. The connection's initialize response states its exact scope, and is the authoritative answer for a given day.

This is deliberate, not multiplexing by accident. The meta-tools are what let a scoped connection answer a question this pack does not cover — via ask_pipeworx, which routes across the whole catalog — without you adding a second MCP server. There is currently no way to mount a pack endpoint without them; if the extra schemas cost you more context than the routing is worth, connect to the full gateway once rather than to several pack endpoints.

Or connect to the full Pipeworx gateway to get every pack's tools listed directly, instead of just this one's:

json
{  "mcpServers": {    "pipeworx": {      "url": "https://gateway.pipeworx.io/mcp"    }  }}

Both URLs reach the same gateway and the same 1745+ data sources. The only difference is which pack's tools are listed directly; ask_pipeworx reaches all of them from either one.

No MCP client? Call it over HTTP

bash
curl -X POST https://gateway.pipeworx.io/v1/tools/ucc_search \  -H 'Content-Type: application/json' \  -d '{"debtor_name":"NPG Holdings","state":"CT"}'

No account needed for the first calls. Inspect any tool: GET https://gateway.pipeworx.io/v1/tools/ucc_search. Find one: POST https://gateway.pipeworx.io/v1/tools/search_packs with {"query":"..."}.

Standalone (no gateway account)

This package also runs as a local stdio MCP server — no Pipeworx account, no gateway round-trip:

json
{  "mcpServers": {    "ucc-liens": {      "command": "npx",      "args": ["-y", "@pipeworx/mcp-ucc-liens"]    }  }}

Or run it directly to confirm it starts:

bash
npx -y @pipeworx/mcp-ucc-liens

It speaks MCP over stdin/stdout and answers initialize/tools/list/tools/call for only this pack's tools — none of the shared meta-tools the gateway connection above adds. Same source, same tools, no ask_pipeworx routing.

Using with ask_pipeworx

Instead of calling tools directly, you can ask questions in plain English — this works on the pack endpoint above as well as on the full gateway:

ask_pipeworx({ question: "your question about Ucc Liens data" })

The gateway picks the right tool and fills the arguments automatically.

More

License

MIT

Source: README.md at commit 151727a

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v0.1.0LatestOct 9, 2026