Server definition
- Hash
- sha256:8c37b3745cd9e7f85897569ef6501ce5e82b49391db1f3de80dc4c6e254ecafb
- What it is
- What a remote MCP server returned when asked what it offers: 21 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Use this when asking 'Why does my basement get wet whenever it rains?' or 'Can you help me narrow down where basement water is coming from and who fixes it?'. Eight observation groups return every rule-matched possible cause, evidence, safe first checks, trade referrals and sources. Hazard stops come first; no probabilities or structural diagnosis. Pure rules, no network or model. (API Tool Calls, by Cowerx)",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"gutters": [
"downspout_near"
],
"timing": [
"rain"
],
"where": [
"wall_floor_joint"
]
}
],
"minProperties": 1,
"properties": {
"grading": {
"default": "unknown",
"description": "Select observed codes, [] for none observed, or 'unknown'. slopes_toward: Ground slopes toward the house; puddles: Puddles beside the foundation",
"oneOf": [
{
"enum": [
"unknown"
],
"type": "string"
},
{
"items": {
"enum": [
"slopes_toward",
"puddles"
],
"type": "string"
},
"maxItems": 2,
"type": "array",
"uniqueItems": true
}
]
},
"gutters": {
"default": "unknown",
"description": "Select observed codes, [] for none observed, or 'unknown'. overflowing: Gutters overflowing; missing: Gutters missing; downspout_near: Downspout discharges near the foundation",
"oneOf": [
{
"enum": [
"unknown"
],
"type": "string"
},
{
"items": {
"enum": [
"overflowing",
"missing",
"downspout_near"
],
"type": "string"
},
"maxItems": 3,
"type": "array",
"uniqueItems": true
}
]
},
"hazard": {
"default": "unknown",
"description": "Select observed codes, [] for none observed, or 'unknown'. standing_water: Standing water; sewage: Sewage or suspected drain backup; electrical: Possible water contact with electrical equipment",
"oneOf": [
{
"enum": [
"unknown"
],
"type": "string"
},
{
"items": {
"enum": [
"standing_water",
"sewage",
"electrical"
],
"type": "string"
},
"maxItems": 3,
"type": "array",
"uniqueItems": true
}
]
},
"moisture": {
"default": "unknown",
"description": "Select observed codes, [] for none observed, or 'unknown'. cold_surface_sweating: Cold surfaces sweating; humid_air: Humid air entering; indoor_sources: Indoor moisture sources; visible_drip: Visible pipe or fixture drip",
"oneOf": [
{
"enum": [
"unknown"
],
"type": "string"
},
{
"items": {
"enum": [
"cold_surface_sweating",
"humid_air",
"indoor_sources",
"visible_drip"
],
"type": "string"
},
"maxItems": 4,
"type": "array",
"uniqueItems": true
}
]
},
"sump": {
"default": "unknown",
"description": "Select observed codes, [] for none observed, or 'unknown'. none: No sump; power_lost: Sump power was lost; pit_filling_no_discharge: Pit filling without discharge; running: Sump is running; seepage_no_inflow: Seepage without water flowing into the pit",
"oneOf": [
{
"enum": [
"unknown"
],
"type": "string"
},
{
"items": {
"enum": [
"none",
"power_lost",
"pit_filling_no_discharge",
"running",
"seepage_no_inflow"
],
"type": "string"
},
"maxItems": 5,
"type": "array",
"uniqueItems": true
}
]
},
"timing": {
"default": "unknown",
"description": "Select observed codes, [] for none observed, or 'unknown'. rain: Wetness after rain; snowmelt: Wetness after snowmelt; dry_weather: Wetness during dry weather; water_use: Wetness during water use; humid_summer: Wetness during humid summer conditions",
"oneOf": [
{
"enum": [
"unknown"
],
"type": "string"
},
{
"items": {
"enum": [
"rain",
"snowmelt",
"dry_weather",
"water_use",
"humid_summer"
],
"type": "string"
},
"maxItems": 5,
"type": "array",
"uniqueItems": true
}
]
},
"where": {
"default": "unknown",
"description": "Select observed codes, [] for none observed, or 'unknown'. wall_crack: Water at a wall crack; wall_floor_joint: Water at the wall-floor joint; floor: Water through the floor; window: Water at a window; overhead_pipe: Water at an overhead pipe or fixture; floor_drain: Water from a floor drain; crack_changing: A crack is changing; wall_bowing: A wall is bowing",
"oneOf": [
{
"enum": [
"unknown"
],
"type": "string"
},
{
"items": {
"enum": [
"wall_crack",
"wall_floor_joint",
"floor",
"window",
"overhead_pipe",
"floor_drain",
"crack_changing",
"wall_bowing"
],
"type": "string"
},
"maxItems": 8,
"type": "array",
"uniqueItems": true
}
]
},
"window_well": {
"default": "unknown",
"description": "Select observed codes, [] for none observed, or 'unknown'. debris: Debris in a window well; ponding: Water collects in a window well; starts_at_window: Wetness starts at the window",
"oneOf": [
{
"enum": [
"unknown"
],
"type": "string"
},
{
"items": {
"enum": [
"debris",
"ponding",
"starts_at_window"
],
"type": "string"
},
"maxItems": 3,
"type": "array",
"uniqueItems": true
}
]
}
},
"required": [],
"type": "object"
},
"name": "basement_water_cause",
"outputSchema": null
},
{
"description": "Read a business's own home, about and contact pages and return its name, address, phone, email, founding year and what it does, each with the page it came from; needs your OpenRouter key. (API Tool Calls, by Cowerx)",
"inputSchema": {
"additionalProperties": false,
"properties": {
"url": {
"description": "The business's public http or https homepage URL.",
"maxLength": 8192,
"minLength": 1,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "company_facts",
"outputSchema": null
},
{
"description": "Use this when asking 'How much would it cost to replace my driveway?' or 'Compare concrete, asphalt and pavers for a 20 by 30 foot driveway.'. Returns national installed ranges with no published typical figure. One call compares all ten surfaces. Base, drainage and permits are not priced; removal is priced only for an existing concrete driveway. Includes unpriced checks, two separate national reference cards and dated sources. Pure arithmetic, no network or model. (API Tool Calls, by Cowerx)",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"sections": [
{
"length_ft": 12,
"width_ft": 24
}
],
"surface": "concrete_standard"
}
],
"properties": {
"existing": {
"default": "none",
"description": "Existing driveway surface. Removal is priced only for existing concrete.",
"enum": [
"none",
"concrete",
"other"
],
"type": "string"
},
"sections": {
"description": "1–10 sections, each 1–10,000 sq ft; total 20–10,000 sq ft. Use length_ft + width_ft OR area_sqft per section.",
"items": {
"additionalProperties": false,
"properties": {
"area_sqft": {
"description": "Area in square feet instead of both dimensions.",
"maximum": 10000,
"minimum": 1,
"type": "number"
},
"length_ft": {
"description": "Positive length in feet; use with width_ft OR area_sqft.",
"exclusiveMinimum": 0,
"type": "number"
},
"name": {
"description": "Optional section name, at most 40 characters.",
"maxLength": 40,
"type": "string"
},
"width_ft": {
"description": "Positive width in feet; use with length_ft OR area_sqft.",
"exclusiveMinimum": 0,
"type": "number"
}
},
"type": "object"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
},
"surface": {
"description": "Chosen installed surface; one call compares all ten surfaces.",
"enum": [
"concrete_standard",
"concrete_decorative",
"concrete_stamped",
"concrete_custom",
"asphalt_standard",
"asphalt_recycled",
"asphalt_porous",
"pavers_standard",
"pavers_brick",
"pavers_cobblestone"
],
"type": "string"
}
},
"required": [
"sections",
"surface"
],
"type": "object"
},
"name": "driveway_cost",
"outputSchema": null
},
{
"description": "Use this when asked 'What circuit does my home EV charger need and might my panel need an upgrade?' or 'What have utilities seen home Level 2 charger installs cost, and can I still get the federal credit?' Returns safety first, the exact 125% minimum breaker calculation, panel triage, unpriced extras and dated federal 30C rules. Reference cards are utility and DOE program figures, not a price for this home. A licensed electrician and permit are needed; confirm local requirements and inspection. Pure rules and Decimal, no network, model or clock. Web and MCP share the free daily allowance. (API Tool Calls, by Cowerx)",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"charger_amps": 48,
"level": "level2"
}
],
"properties": {
"capacity_check": {
"description": "Electrician load calculation result; not_done means not assessed.",
"enum": [
"enough",
"not_enough",
"not_done"
],
"type": "string"
},
"charger_amps": {
"description": "Rated or installer-set maximum charging current in amps.",
"maximum": 80,
"minimum": 6,
"type": "number"
},
"existing_circuit": {
"description": "Suitable dedicated circuit already at the parking spot.",
"enum": [
"yes",
"no"
],
"type": "string"
},
"extras": {
"items": {
"enum": [
"detached_garage",
"outdoor_run",
"finished_walls",
"trenching",
"pavement_cut",
"long_route"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"installed_on": {
"description": "Placed-in-service date YYYY-MM-DD; omitted follows the after-2026-06-30 rule.",
"format": "date",
"type": "string"
},
"level": {
"description": "Charging level; omit when unknown.",
"enum": [
"level1",
"level2"
],
"type": "string"
},
"panel_amps": {
"description": "Panel/service rating, echoed only; a panel label alone cannot decide an upgrade or price the job.",
"maximum": 400,
"minimum": 30,
"type": "integer"
},
"run_feet": {
"description": "Estimated routed panel-to-charger length, not straight-line distance.",
"maximum": 500,
"minimum": 1,
"type": "number"
},
"spare_space": {
"description": "Compatible breaker space for a new circuit.",
"enum": [
"yes",
"no"
],
"type": "string"
}
},
"type": "object"
},
"name": "ev_charger_install_cost",
"outputSchema": null
},
{
"description": "Get a full free Data Finder plan for up to three sources: fit, cost at your monthly volume, resale terms with recorded clause, URL and read date, and build-it-yourself guidance. No live source lookup. Defaults: volume 0, US, no resale. (API Tool Calls, by Cowerx)",
"inputSchema": {
"properties": {
"geo": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"resell": {
"enum": [
"yes",
"no"
],
"type": "string"
},
"use_case": {
"description": "Describe the data you need and what you want to build.",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"volume": {
"maximum": 1000000000000000,
"minimum": 0,
"type": "integer"
}
},
"required": [
"use_case"
],
"type": "object"
},
"name": "find_data",
"outputSchema": null
},
{
"description": "Use this when asking 'How much would new flooring cost for the rooms in my house?' or 'Can you compare installed costs for hardwood, laminate, and vinyl using my room sizes?'. Returns national installed ranges (labor and materials), no labor-only figure, and no published typical figure. One call compares all eight materials using net room area, with hardwood order guidance, an unpriced prep checklist, a separate historical Census reference card and dated sources. Pure arithmetic, no network or model. (API Tool Calls, by Cowerx)",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"material": "carpet",
"rooms": [
{
"length_ft": 12,
"width_ft": 15
}
]
}
],
"properties": {
"layout": {
"default": "standard",
"description": "Only changes the hardwood order amount: standard 5%, diagonal 10%. Installed estimate always uses net area.",
"enum": [
"standard",
"diagonal"
],
"type": "string"
},
"material": {
"description": "Chosen installed material; one call also compares all eight materials.",
"enum": [
"carpet",
"laminate",
"vinyl_sheet",
"vinyl_plank",
"hardwood_solid",
"hardwood_engineered",
"tile_ceramic",
"tile_porcelain"
],
"type": "string"
},
"rooms": {
"description": "1–20 rooms, each 1–5,000 sq ft; total 10–10,000 sq ft. Use length_ft + width_ft OR area_sqft per room.",
"items": {
"additionalProperties": false,
"properties": {
"area_sqft": {
"description": "Area in square feet instead of both dimensions.",
"maximum": 5000,
"minimum": 1,
"type": "number"
},
"length_ft": {
"description": "Positive length in feet; use with width_ft OR area_sqft.",
"exclusiveMinimum": 0,
"type": "number"
},
"name": {
"description": "Optional room name, at most 40 characters.",
"maxLength": 40,
"type": "string"
},
"width_ft": {
"description": "Positive width in feet; use with length_ft OR area_sqft.",
"exclusiveMinimum": 0,
"type": "number"
}
},
"type": "object"
},
"maxItems": 20,
"minItems": 1,
"type": "array"
}
},
"required": [
"rooms",
"material"
],
"type": "object"
},
"name": "flooring_cost",
"outputSchema": null
},
{
"description": "Use this when asked 'What does a funeral with burial or cremation cost, and what are my rights when I buy one?' or 'Help me add up the itemized prices a funeral home gave me and show what is still missing.' Returns FTC Funeral Rule rights first. Reference figures are NFDA 2023 national medians from an industry member survey, not local prices. Bundle cards apply only to services with viewing; direct services have no citable national bundle figure. The worksheet adds up the family's own itemized prices and keeps missing prices visible. Pure rules and Decimal money, no network or model. Web and MCP share the free daily allowance. (API Tool Calls, by Cowerx)",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"disposition": "cremation",
"prices": {
"basic_services": 1200,
"crematory_fee": 350
},
"service": "direct"
}
],
"properties": {
"disposition": {
"enum": [
"burial",
"cremation"
],
"type": "string"
},
"prices": {
"additionalProperties": false,
"description": "Your own itemized prices in dollars. Omit an unknown price; 0 means not buying or included elsewhere.",
"properties": {
"alternative_container": {
"description": "Alternative container; requires cremation.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"basic_services": {
"description": "Funeral director and staff basic services; always applies.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"cash_advances": {
"description": "Cash advances (death certificates, obituary notices, flowers, clergy, and similar); always applies.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"casket": {
"description": "Casket (bought here or elsewhere); requires burial or cremation with service viewing_ceremony (purchase or rental).",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"ceremony_facilities": {
"description": "Facilities and staff for the ceremony; requires service viewing_ceremony.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"crematory_fee": {
"description": "Crematory fee; requires cremation.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"embalming_preparation": {
"description": "Embalming or other preparation; requires service viewing_ceremony.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"marker": {
"description": "Marker or monument; always applies.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"opening_closing": {
"description": "Opening and closing the grave or niche; always applies.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"plot": {
"description": "Cemetery plot or interment space; always applies.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"taxes": {
"description": "Taxes; always applies.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"transfer": {
"description": "Transfer of remains to the funeral home; always applies.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"urn": {
"description": "Urn; requires cremation.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"vault": {
"description": "Outer burial container (vault or liner); requires burial with vault yes or unknown.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"vehicles": {
"description": "Hearse and other vehicles; requires burial or service viewing_ceremony.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
},
"viewing_facilities": {
"description": "Facilities and staff for viewing; requires service viewing_ceremony.",
"maximum": 1000000,
"minimum": 0,
"type": "number"
}
},
"type": "object"
},
"service": {
"description": "Direct means immediate burial or direct cremation, without viewing.",
"enum": [
"viewing_ceremony",
"direct"
],
"type": "string"
},
"vault": {
"description": "Burial only; omit when unknown.",
"enum": [
"yes",
"no"
],
"type": "string"
}
},
"required": [
"disposition",
"service"
],
"type": "object"
},
"name": "funeral_cost",
"outputSchema": null
},
{
"description": "Read public YouTube captions as timestamped plain text. Captions only, no video or audio. (API Tool Calls, by Cowerx)",
"inputSchema": {
"properties": {
"lang": {
"default": "en",
"description": "Preferred caption language; falls back to English, then any available track.",
"type": "string"
},
"url": {
"description": "YouTube video URL or an 11-character video id.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "get_transcript",
"outputSchema": null
},
{
"description": "Use this when asking 'How much should I budget to remodel my kitchen based on its size and finishes?' or 'Can you help me make a kitchen remodel budget with separate labor and material costs?'. Size and scope return a national planning estimate range rounded to the nearest 100 dollars, with no published typical figure, two separate dated reference cards and sources. The result has no line items or labor/material split: the published bands include both, and no public source we trust splits them for a typical kitchen. Pure arithmetic, no network or model. (API Tool Calls, by Cowerx)",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"area_sqft": 150,
"scope": "full"
}
],
"properties": {
"area_sqft": {
"description": "Kitchen floor area in square feet, 20–1,000. Use area OR length and width.",
"maximum": 1000,
"minimum": 20,
"type": "number"
},
"length_ft": {
"description": "Kitchen length in feet; requires width_ft instead of area_sqft. Product must be 20–1,000 sq ft.",
"exclusiveMinimum": 0,
"type": "number"
},
"scope": {
"description": "partial: $60–$150/sq ft, may include DIY work; full: $150–$250/sq ft, same layout; layout_change: $250–$350/sq ft, layout changes / high-end. Bands include labor and materials.",
"enum": [
"partial",
"full",
"layout_change"
],
"type": "string"
},
"width_ft": {
"description": "Kitchen width in feet; requires length_ft instead of area_sqft. Product must be 20–1,000 sq ft.",
"exclusiveMinimum": 0,
"type": "number"
}
},
"required": [
"scope"
],
"type": "object"
},
"name": "kitchen_remodel_cost",
"outputSchema": null
},
{
"description": "Make an SVG barcode. Validates retail check digits and lengths. GS1-128 and GS1 DataMatrix accept bracketed (01)GTIN(17)YYMMDD(10)lot; use make_qr for QR codes. (API Tool Calls, by Cowerx)",
"inputSchema": {
"properties": {
"format": {
"default": "code128",
"enum": [
"code128",
"ean13",
"ean8",
"upca",
"upce",
"code39",
"itf",
"gs1-128",
"datamatrix"
],
"type": "string"
},
"text": {
"description": "Text to encode; at most 1024 UTF-8 bytes.",
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "make_barcode",
"outputSchema": null
},
{
"description": "Make an SVG QR code for text, a URL, or Wi-Fi network details. (API Tool Calls, by Cowerx)",
"inputSchema": {
"anyOf": [
{
"required": [
"text"
]
},
{
"required": [
"wifi"
]
}
],
"properties": {
"format": {
"default": "svg",
"enum": [
"svg"
],
"type": "string"
},
"text": {
"description": "Text or URL to encode. Required unless wifi is provided.",
"type": "string"
},
"wifi": {
"description": "Wi-Fi details; takes precedence over text when present.",
"properties": {
"password": {
"type": "string"
},
"security": {
"enum": [
"WPA",
"WEP",
"nopass"
],
"type": "string"
},
"ssid": {
"type": "string"
}
},
"required": [
"ssid",
"security"
],
"type": "object"
}
},
"type": "object"
},
"name": "make_qr",
"outputSchema": null
},
{
"description": "Read one public HTML page as clean Markdown with title, headings, lists, tables and absolute links. No logins, paywalls or JavaScript rendering; 2 MB HTML limit. (API Tool Calls, by Cowerx)",
"inputSchema": {
"properties": {
"url": {
"description": "Public http or https page URL.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "page_to_markdown",
"outputSchema": null
},
{
"description": "Use this when asked 'How much space do I need for a backyard pickleball court and will it fit?' or 'What have public pickleball court projects cost per court?' Returns rulebook footprints and one-court fit in either orientation, separate cost cards, and unpriced scope. Cost cards are public city project and planning figures, not a price for this court. Pure rules and Decimal, no network, model or clock. Web and MCP share the free daily allowance. (API Tool Calls, by Cowerx)",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"courts": 2,
"size": "recommended",
"space_length_ft": 70,
"space_width_ft": 40
}
],
"properties": {
"base": {
"description": "Omit when unknown.",
"enum": [
"new_concrete",
"new_asphalt",
"existing_slab"
],
"type": "string"
},
"courts": {
"description": "Court count; omitted uses 1 for math, marked assumed.",
"maximum": 4,
"minimum": 1,
"type": "integer"
},
"fence": {
"description": "Omit when unknown.",
"enum": [
"yes",
"no"
],
"type": "string"
},
"finish": {
"description": "Omit when unknown.",
"enum": [
"acrylic",
"tiles"
],
"type": "string"
},
"lights": {
"description": "Omit when unknown.",
"enum": [
"yes",
"no"
],
"type": "string"
},
"size": {
"description": "Omit when unknown.",
"enum": [
"minimum",
"recommended"
],
"type": "string"
},
"space_length_ft": {
"description": "Open, level space in feet; provide both length and width or neither.",
"maximum": 1000,
"minimum": 1,
"type": "number"
},
"space_width_ft": {
"description": "Open, level space in feet; provide both length and width or neither.",
"maximum": 1000,
"minimum": 1,
"type": "number"
}
},
"type": "object"
},
"name": "pickleball_court_cost",
"outputSchema": null
},
{
"description": "Use this when asking 'How much does a 30 by 40 pole barn cost?' or 'What would it cost to build a 40x60 pole barn and finish it to live in?'. Returns national construction ranges for the building only, with no published typical figure. Site work/slab/doors/height/permits are not priced. use=residential adds the separate living-space build-out band with an open top and a combined planning estimate. Includes an unpriced checklist, two separate unscaled reference cards and dated sources. Pure arithmetic, no network or model. (API Tool Calls, by Cowerx)",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"length_ft": 40,
"use": "shell",
"width_ft": 30
}
],
"properties": {
"length_ft": {
"description": "Required length in feet; footprint must be 100–10,000 sq ft.",
"maximum": 200,
"minimum": 8,
"type": "number"
},
"use": {
"default": "shell",
"description": "shell: building only. residential: add the separate living-space build-out band.",
"enum": [
"shell",
"residential"
],
"type": "string"
},
"width_ft": {
"description": "Required width in feet; footprint must be 100–10,000 sq ft.",
"maximum": 200,
"minimum": 8,
"type": "number"
}
},
"required": [
"width_ft",
"length_ft"
],
"type": "object"
},
"name": "pole_barn_cost",
"outputSchema": null
},
{
"description": "Fix spelling, grammar, punctuation and word choice while keeping meaning and voice; needs your OpenRouter key. (API Tool Calls, by Cowerx)",
"inputSchema": {
"additionalProperties": false,
"properties": {
"text": {
"description": "Text to proofread, at most 2,000 words.",
"maxLength": 15000,
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "proofread",
"outputSchema": null
},
{
"description": "Read every barcode in a base64 PNG, JPEG or WebP (or data URL). At most 2 MB decoded and 4000 by 4000 pixels. Returns text, format, corner positions and GS1 product number, expiry and lot when present. (API Tool Calls, by Cowerx)",
"inputSchema": {
"properties": {
"image": {
"description": "Base64 PNG/JPEG/WebP or image data URL; 2 MB decoded maximum.",
"type": "string"
}
},
"required": [
"image"
],
"type": "object"
},
"name": "read_barcode",
"outputSchema": null
},
{
"description": "Search local U.S. CPSC data for up to 10 recall notices that may match — check the notice. May not cover every batch or country; read the notice. No CPSC endorsement. (API Tool Calls, by Cowerx)",
"inputSchema": {
"properties": {
"query": {
"description": "Product name, brand, model number or UPC.",
"maxLength": 500,
"minLength": 1,
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "recall_check",
"outputSchema": null
},
{
"description": "Compare résumé skills with Columbus, Ohio job postings. Résumé is not stored; full check and rewrite at https://jobs.cowerx.dev. (API Tool Calls, by Cowerx)",
"inputSchema": {
"properties": {
"family": {
"enum": [
"data analyst",
"software engineer",
"project manager"
],
"type": "string"
},
"resume_text": {
"description": "Plain text of the résumé.",
"maxLength": 50000,
"minLength": 50,
"type": "string"
}
},
"required": [
"resume_text",
"family"
],
"type": "object"
},
"name": "resume_gap",
"outputSchema": null
},
{
"description": "Check one public HTML page with fixed SEO rules. Returns schema 1, score, strengths, ranked fixes and facts. No JavaScript rendering; 10 seconds overall, 2 MB HTML and at most 20 links. Public HTTP/HTTPS ports 80/443 only. (API Tool Calls, by Cowerx)",
"inputSchema": {
"properties": {
"url": {
"description": "Public http or https page URL.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "seo_check",
"outputSchema": null
},
{
"description": "Use this when asking 'What size water softener might fit my household and tested water hardness?' or 'Can you estimate yearly salt costs from my household's water use?'. Gallons per person per day is required (no national default used), for softened water only. Iron is optional; unknown when absent, and changes the setting per EcoPure's clear-water ferrous iron rule (5 gpg per ppm); other makers differ. Returns grains per day, working capacity before reserve, optional paired model ratings, three idealized EP42 test-rating examples, notes, assumptions and dated primary sources. Costs are salt only. Pure Decimal arithmetic, no network or model. (API Tool Calls, by Cowerx)",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"gallons_per_person_day": 75,
"hardness": 10,
"people": 4
}
],
"properties": {
"bag_lb": {
"default": 40,
"description": "Bag weight in lb.",
"maximum": 100,
"minimum": 1,
"type": "number"
},
"bag_price": {
"default": 8.97,
"description": "Price per bag; one store's price (Fleet Farm, observed 2 Oct 2026); enter yours.",
"maximum": 200,
"minimum": 0.01,
"type": "number"
},
"capacity_grains": {
"description": "Your manual's grains per regeneration; requires salt_lb.",
"maximum": 200000,
"minimum": 1000,
"type": "number"
},
"gallons_per_person_day": {
"description": "Required softened gallons per person per day; no national default used. Exclude bypassing outdoor taps.",
"maximum": 300,
"minimum": 10,
"type": "number"
},
"hardness": {
"description": "Required measured hardness; after conversion 0 < gpg <= 100.",
"exclusiveMinimum": 0,
"type": "number"
},
"hardness_unit": {
"default": "gpg",
"description": "gpg or mg/L; divide mg/L by 17.1 (W1).",
"enum": [
"gpg",
"mg_l"
],
"type": "string"
},
"interval_days": {
"description": "Optional target days between regenerations.",
"maximum": 60,
"minimum": 1,
"type": "number"
},
"iron_ppm": {
"description": "Optional dissolved clear-water ferrous iron in ppm; absent means unknown. EcoPure adds 5 gpg per ppm (W4); other makers differ.",
"maximum": 20,
"minimum": 0,
"type": "number"
},
"people": {
"description": "Required whole household size.",
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"salt_lb": {
"description": "Your manual's lb salt at capacity_grains; requires capacity_grains.",
"maximum": 50,
"minimum": 0.5,
"type": "number"
}
},
"required": [
"hardness",
"people",
"gallons_per_person_day"
],
"type": "object"
},
"name": "water_softener_size",
"outputSchema": null
},
{
"description": "Use this when asked 'Why does water collect in my yard and what are my options?' or 'Who should I hire to fix water pooling in my yard, and what did public agencies estimate it costs?' Returns likely causes to investigate, not a diagnosis, with explainable observed-code rules, safety escalations, options and who does them. Prices are dated public planning estimates, with distinct scopes and source years; no 2026 price adjustment. Omit unknown groups; [] means none observed. Optional numbers price only agreed areas, designed storage or counted downspout sets; the soil check screens root-zone drainage. No network or model. Web and MCP share the free daily allowance. (API Tool Calls, by Cowerx)",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"downspouts": 3,
"gutters": [
"discharge_near_foundation"
]
}
],
"minProperties": 1,
"properties": {
"boundary": {
"description": "Omit for unknown; [] means none observed. flow_from_higher_ground: Flow from higher ground; new_nearby_hard_surface: A new nearby hard surface",
"items": {
"enum": [
"flow_from_higher_ground",
"new_nearby_hard_surface"
],
"type": "string"
},
"maxItems": 2,
"type": "array",
"uniqueItems": true
},
"downspouts": {
"description": "Whole number of elbow-plus-extension sets, hardware only.",
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"drop_inches_15min": {
"description": "Inches dropped in 15 minutes after pre-wetting and refilling the hole; Iowa State's informal root-zone check, not a dry-well design test.",
"maximum": 20,
"minimum": 0,
"type": "number"
},
"dry_well_cubic_ft": {
"description": "Designed storage from a designer; never sized from this questionnaire.",
"maximum": 2000,
"minimum": 1,
"type": "number"
},
"grading": {
"description": "Omit for unknown; [] means none observed. slopes_toward_house: Ground slopes toward the house; settled_low_spot: A settled low spot; blocked_swale: A blocked swale; new_hard_surface: A new hard surface",
"items": {
"enum": [
"slopes_toward_house",
"settled_low_spot",
"blocked_swale",
"new_hard_surface"
],
"type": "string"
},
"maxItems": 4,
"type": "array",
"uniqueItems": true
},
"groundwater": {
"description": "Omit for unknown; [] means none observed. seepage: Seepage; saturated_below_surface: Saturated below the surface; seasonal_high_water: Seasonal high water",
"items": {
"enum": [
"seepage",
"saturated_below_surface",
"seasonal_high_water"
],
"type": "string"
},
"maxItems": 3,
"type": "array",
"uniqueItems": true
},
"gutters": {
"description": "Omit for unknown; [] means none observed. overflowing: Overflowing gutters; leaking: Leaking gutters; discharge_near_foundation: Downspouts discharge near the foundation",
"items": {
"enum": [
"overflowing",
"leaking",
"discharge_near_foundation"
],
"type": "string"
},
"maxItems": 3,
"type": "array",
"uniqueItems": true
},
"rain_garden_sq_ft": {
"description": "Agreed garden area; never computed from roof area.",
"maximum": 5000,
"minimum": 10,
"type": "number"
},
"site": {
"description": "Omit for unknown; [] means none observed. lower_outlet: A working lower outlet; utilities_in_area: Utilities in the area; septic_or_well_nearby: A septic system or well nearby; water_entering_house: Water entering the house",
"items": {
"enum": [
"lower_outlet",
"utilities_in_area",
"septic_or_well_nearby",
"water_entering_house"
],
"type": "string"
},
"maxItems": 4,
"type": "array",
"uniqueItems": true
},
"soil": {
"description": "Omit for unknown; [] means none observed. clay: Clay soil; compacted: Compacted soil",
"items": {
"enum": [
"clay",
"compacted"
],
"type": "string"
},
"maxItems": 2,
"type": "array",
"uniqueItems": true
},
"timing": {
"description": "Omit for unknown; [] means none observed. after_rain: After rain; seasonal: Seasonally; dry_weather: In dry weather",
"items": {
"enum": [
"after_rain",
"seasonal",
"dry_weather"
],
"type": "string"
},
"maxItems": 3,
"type": "array",
"uniqueItems": true
},
"where": {
"description": "Omit for unknown; [] means none observed. foundation: At the foundation; lawn_low_spot: A lawn low spot; slope_bottom: At the bottom of a slope; whole_yard: Across the whole yard",
"items": {
"enum": [
"foundation",
"lawn_low_spot",
"slope_bottom",
"whole_yard"
],
"type": "string"
},
"maxItems": 4,
"type": "array",
"uniqueItems": true
}
},
"required": [],
"type": "object"
},
"name": "yard_drainage_cause",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:8c37b3745cd9e7f85897569ef6501ce5e82b49391db1f3de80dc4c6e254ecafb | sha256sum