io.github.jdw2111/propraven
NPM · @PROPRAVEN/MCP · 2 COMPONENTS · SCANNED AUG 3
Property intelligence: 180M+ US parcels — lookup, search, owners, hazards, permits, deeds.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security86
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to jdw2111/propraven-mcp). View diagnostics → Pass
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 78 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability65
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1613 tokens (~201/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage94
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 83% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @propraven/mcp
claude mcp add jdw2111-propraven -- npx -y @propraven/mcp
codex mcp add jdw2111-propraven -- npx -y @propraven/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jdw2111-propraven": {
"type": "local",
"command": [
"npx",
"-y",
"@propraven/mcp"
],
"enabled": true
}
}
} openclaw mcp add jdw2111-propraven --command npx --arg -y --arg @propraven/mcp
mcp_servers:
jdw2111-propraven:
command: "npx"
args: ["-y", "@propraven/mcp"] {
"mcpServers": {
"jdw2111-propraven": {
"command": "npx",
"args": [
"-y",
"@propraven/mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Aug 26 +68
- Install scripts: unverified → pass ▲ security
- Provenance: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Malware scan: unverified → pass ▲ security
- The attested source repository moved: jdw2111/propraven-mcp security
- Dependency health: partial → unverified ▼ functional
- Security disclosure: fail → unverified ▼ functional
- Maintenance: unverified → pass ▲ functional
- License: unverified → pass ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Stability: unverified → 0.23 ▲ functional
- Schema quality: unverified → excellent ▲ functional
- Licence: Apache-2.0 functional
- 1 Aug 26 −10
- Tool coverage: 100 → unverified ▼ functional
- Dependency health: unverified → partial ▲ functional
- 31 Jul 26 +12
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −18
- Malware scan: pass → unverified ▼ security
- 28 Jul 26 −18
- Security disclosure: unverified → fail ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 27 Jul 26 42
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/@propraven/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- jdw2111/propraven-mcp
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/jdw2111/propraven-mcp/.github/workflows/publish-npm.yml@refs/heads/main
- Rekor log index:
- 1554408840
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:17481dd54d018a7cc0b06d8a9d59a3483d8df1910b8c0eca96771a9b3b48b3302c1967561beb0fe2b1375a1a9391cddb856f74b594f83c61781b6522e
- Discovery method:
- attestation_endpoint
Dependencies 94 packages
94 packages in the resolved dependency tree · 94 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
hazard.score ~194
Composite hazard score for a parcel: flood (FEMA NFIP zone), wildfire (USFS WUI), seismic (USGS ASCE7), windstorm, air quality (EPA AQS), and crime (composite tier). Each sub-score includes source citations. Use when the user asks about a property's risk profile — insurance pricing, underwriting, or due diligence. Do NOT use to compare multiple parcels (use parcel.compare with a hazard criterion). Backed by /api/v1/parcels/{id}/risks. Coverage varies by hazard: flood and crime are widely available; wildfire is strongest in CA/OR/WA/ID/MT/CO; seismic strongest on the West Coast.
| Name | Type | Req | Description |
|---|---|---|---|
| include | array | — | Subset of hazards to keep in the response. Default: return all. |
| parcel_id | string | yes | Composite parcel ID (county_fips:parcel_id). Use parcel.lookup to obtain. |
No output schema declared.
No examples provided.
owner.pierce ~254
Resolve an owner name or entity to its full property portfolio. Pierces LLC/Trust veils where PropRaven has linked the entity to its parent (via SEC Ex 21, sponsor parent-rollup, and county-level filings). Returns: canonical owner name, entity type, portfolio summary (count, total value, geographic distribution), and a list of parcels owned. Use when the user names a person, LLC, trust, or public company and wants to see what they own. Do NOT use when starting from a parcel (use parcel.lookup, which returns owner inline). If `ticker` is provided, the tool searches owner records for the company name first (best-effort). Tier-1 portfolios (SEC-tracked public companies — DHI, INVH, AMH, PHM, etc.) have higher confidence on cross-state attribution.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | — | Owner name or entity name. Free-form — PropRaven normalizes (trims suffixes, handles trust/LLC variants). |
| state | string | — | Optional 2-letter state filter to scope the portfolio. |
| ticker | string | — | Public-company ticker. The tool attempts to resolve to a company name via owner search first. |
No output schema declared.
No examples provided.
parcel.compare ~207
Fetch reports for 2–25 parcels so they can be ranked against criteria. Returns each parcel's full report (identity, owner, valuation, risks, permits, deeds) in a single payload — the calling agent does the per-criterion scoring and final ranking. This is the underwriting / shortlist loop. Use when the user has identified candidate properties (often from parcel.search) and wants them ranked. Do NOT use to discover new candidates (use parcel.search) or for a single property (use parcel.lookup + hazard.score). The `criteria` argument is returned verbatim in the response so the agent can pin its scoring to the user's intent.
| Name | Type | Req | Description |
|---|---|---|---|
| criteria | array | yes | 1–8 ranking criteria, free-form natural language. Echoed back in the response to anchor the agent's scoring. |
| parcel_ids | array | yes | Composite parcel IDs to compare (e.g. "37183:0012345"). 2–25 parcels. Get IDs via parcel.search or parcel.lookup. |
No output schema declared.
No examples provided.
parcel.lookup ~183
Resolve a single US parcel by identifier (composite county_fips:parcel_id, street address, or APN). Returns the canonical PropRaven record: identity, current owner, valuation, geography, and source provenance. Use when the user names one specific property. Do NOT use when ranking multiple parcels (use parcel.compare) or when filtering by criteria (use parcel.search). Example: `parcel.lookup({ query: "37183:0012345" })` or `parcel.lookup({ query: "420 S Tryon St, Charlotte NC" })`.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Parcel identifier in any of three forms: (1) composite ID like "37183:0012345" — preferred, direct lookup; (2) full street address with state — uses fuzzy search, top 5 returned; (3) raw APN — search… |
No output schema declared.
No examples provided.
parcel.search ~229
Filter US parcels by geography + attributes. Returns a ranked list (default 50, max 200) of matches with summary fields (id, address, owner, assessed value, last sale). Use when the user wants properties matching criteria ("absentee-owned SFR in Mecklenburg County over $400k", "flipped properties in Phoenix since 2024"). Do NOT use when looking up a single known property (use parcel.lookup) or ranking a known set (use parcel.compare). Backed by the /api/v1/search/full text+attribute index; pass `q` as either a city, owner name, or address fragment.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | — | City filter (when q is non-city). |
| dir | string | — | — |
| field | string | — | Restrict the q match to one field. |
| limit | integer | — | — |
| page | integer | — | — |
| q | string | yes | Text query — owner name, address fragment, or city. Min 2 chars. |
| sort | string | — | — |
| state | string | — | 2-letter state filter. |
No output schema declared.
No examples provided.
permits.history ~174
Timeline of building / construction / demolition permits filed against a parcel. Each permit includes type, status, declared value, issued date, completion date, contractor (where disclosed), and the originating jurisdiction's permit ID. Use when the user asks about construction activity, recent renovations, planned work, or wants to detect a property that's actively changing. Do NOT use to find properties WITH recent permits across a market (use parcel.search). Coverage varies by county: top-100 metros have near-complete permit feeds; smaller jurisdictions may be empty.
| Name | Type | Req | Description |
|---|---|---|---|
| parcel_id | string | yes | Composite parcel ID. |
| since | string | — | ISO date — only return permits issued on or after this date (client-side filter). |
| types | array | — | Filter by permit type substring (e.g. ["Building", "Demolition"]). Case-insensitive. |
No output schema declared.
No examples provided.
sales.history ~219
Deed / transaction timeline for a parcel: every recorded sale, transfer, refinance. Each event includes date, sale price (where disclosed; flagged when withheld by state), buyer, seller, and deed type. Use when the user asks about a property's transaction history, flip activity, or holding period. Do NOT use to find properties with recent sales market-wide (use parcel.search with `sold_since`) or to estimate current market value (use valuation.estimate, which incorporates this data plus comps). Note: 13 states do not disclose sale prices on deeds (KS, MS, TX, UT, WY, etc.); PropRaven flags these explicitly. If `include_liens=true`, the tool ALSO fetches UCC liens via the parcel report — two API calls.
| Name | Type | Req | Description |
|---|---|---|---|
| include_liens | boolean | — | Include UCC liens. Default false. Adds one extra API call. |
| parcel_id | string | yes | Composite parcel ID. |
| since | string | — | ISO date — only return events on or after this date (client-side filter). |
No output schema declared.
No examples provided.
valuation.estimate ~153
Estimated market value for a parcel: market estimate, assessed value, last sale price, and the underlying assessment + improvement breakdown. Use when the user asks for a property's value, market estimate, AVM, or wants to compare assessed vs market. Do NOT use as a substitute for an appraisal — PropRaven AVM has ±10–15% MAE in normal markets, wider in tail. Historical AVM (as_of) is not yet supported in v1; tool returns the current snapshot.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | — | ISO date — historical AVM. NOT YET SUPPORTED in v1; ignored. |
| parcel_id | string | yes | Composite parcel ID (county_fips:parcel_id). |
No output schema declared.
No examples provided.