Tool tree
gradeNot graded
page: Every page
pvpartpicker_get_workspaceAnswer
Read section, readiness, categories and navigation destinations without loading the catalog or exposing account identity or location.
View tool JSON
{
"name": "pvpartpicker_get_workspace",
"kind": "answer",
"impl": "imperative",
"description": "Read section, readiness, categories and navigation destinations without loading the catalog or exposing account identity or location.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_search_partsAction
Search names, brands and model specs with bounded pagination. Returns real offers, source links and pack-aware costs; loads the shared catalog only on demand.
View tool JSON
{
"name": "pvpartpicker_search_parts",
"kind": "act",
"impl": "imperative",
"description": "Search names, brands and model specs with bounded pagination. Returns real offers, source links and pack-aware costs; loads the shared catalog only on demand.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"category": {
"type": "string",
"enum": [
"panels",
"mounting",
"wiring",
"batteries",
"all-in-one",
"inverters",
"charging",
"module-electronics",
"monitoring",
"kits",
"electrical",
"accessories"
]
},
"brand": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"inStock": {
"type": "boolean"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"required": [],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_get_productAction
Read sourced specifications, available STC/NOCT tables, photos, bundle contents and offers for a known catalog product.
View tool JSON
{
"name": "pvpartpicker_get_product",
"kind": "act",
"impl": "imperative",
"description": "Read sourced specifications, available STC/NOCT tables, photos, bundle contents and offers for a known catalog product.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"minLength": 1,
"maxLength": 180
}
},
"required": [
"productId"
],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_get_price_historyAnswer
Read real retailer observations over 30/90/365 days. These are package prices; recorded packQuantity determines unit prices. Never synthesizes trends.
View tool JSON
{
"name": "pvpartpicker_get_price_history",
"kind": "answer",
"impl": "imperative",
"description": "Read real retailer observations over 30/90/365 days. These are package prices; recorded packQuantity determines unit prices. Never synthesizes trends.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"minLength": 1,
"maxLength": 180
},
"days": {
"type": "integer",
"enum": [
30,
90,
365
]
}
},
"required": [
"productId"
],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_read_buildAnswer
Read active draft and pack-aware costs. Private location/household analytics are omitted unless includePrivateAnalytics is explicitly true. Does not save or share.
View tool JSON
{
"name": "pvpartpicker_read_build",
"kind": "answer",
"impl": "imperative",
"description": "Read active draft and pack-aware costs. Private location/household analytics are omitted unless includePrivateAnalytics is explicitly true. Does not save or share.",
"inputSchema": {
"type": "object",
"properties": {
"includePrivateAnalytics": {
"type": "boolean"
}
},
"required": [],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_set_build_quantityAction
Set installed whole units. Zero removes the line; offerId selects a real retailer offer. Persists device draft but does not create a named saved build, purchase or share.
View tool JSON
{
"name": "pvpartpicker_set_build_quantity",
"kind": "act",
"impl": "imperative",
"description": "Set installed whole units. Zero removes the line; offerId selects a real retailer offer. Persists device draft but does not create a named saved build, purchase or share.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"minLength": 1,
"maxLength": 180
},
"quantity": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"offerId": {
"type": "string",
"minLength": 1,
"maxLength": 180
}
},
"required": [
"productId",
"quantity"
],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_update_buildAction
Rename the current draft or set its purpose/mount. Preserves equipment, string plans and analytics. Does not save a named build or publish.
View tool JSON
{
"name": "pvpartpicker_update_build",
"kind": "act",
"impl": "imperative",
"description": "Rename the current draft or set its purpose/mount. Preserves equipment, string plans and analytics. Does not save a named build or publish.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"purpose": {
"type": "string",
"enum": [
"offgrid",
"hybrid",
"gridtie"
]
},
"mount": {
"type": "string",
"enum": [
"roof",
"ground"
]
}
},
"required": [],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_read_watchlistAnswer
Read device or signed-in account watch IDs. Does not create email alerts or disclose account identity.
View tool JSON
{
"name": "pvpartpicker_read_watchlist",
"kind": "answer",
"impl": "imperative",
"description": "Read device or signed-in account watch IDs. Does not create email alerts or disclose account identity.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_set_watchAction
Set desired watch state idempotently through the existing device/account flow. Changes watch list; does not subscribe to email alerts.
View tool JSON
{
"name": "pvpartpicker_set_watch",
"kind": "act",
"impl": "imperative",
"description": "Set desired watch state idempotently through the existing device/account flow. Changes watch list; does not subscribe to email alerts.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"minLength": 1,
"maxLength": 180
},
"watched": {
"type": "boolean"
}
},
"required": [
"productId",
"watched"
],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_read_comparisonAnswer
Read current comparison product IDs; up to four parts.
View tool JSON
{
"name": "pvpartpicker_read_comparison",
"kind": "answer",
"impl": "imperative",
"description": "Read current comparison product IDs; up to four parts.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_set_comparisonAction
Replace comparison with up to four known products; empty list clears it. No build or watch changes.
View tool JSON
{
"name": "pvpartpicker_set_comparison",
"kind": "act",
"impl": "imperative",
"description": "Replace comparison with up to four known products; empty list clears it. No build or watch changes.",
"inputSchema": {
"type": "object",
"properties": {
"productIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 180
},
"maxItems": 4
}
},
"required": [
"productIds"
],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_get_price_dropsAnswer
Read recorded daily/weekly/monthly/latest reductions sorted by dollars, percent or time. Includes package prices and source timestamps.
View tool JSON
{
"name": "pvpartpicker_get_price_drops",
"kind": "answer",
"impl": "imperative",
"description": "Read recorded daily/weekly/monthly/latest reductions sorted by dollars, percent or time. Includes package prices and source timestamps.",
"inputSchema": {
"type": "object",
"properties": {
"period": {
"type": "string",
"enum": [
"day",
"week",
"month",
"latest"
]
},
"sort": {
"type": "string",
"enum": [
"dollars",
"percent",
"latest"
]
},
"category": {
"type": "string",
"enum": [
"panels",
"mounting",
"wiring",
"batteries",
"all-in-one",
"inverters",
"charging",
"module-electronics",
"monitoring",
"kits",
"electrical",
"accessories"
]
},
"minDollars": {
"type": "number",
"minimum": 0,
"maximum": 1000000
},
"minPercent": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_open_pageAction
Navigate using the visible router to an allowed section/product/guide. No arbitrary, external, auth or admin URL. Build tab accepts equipment or analytics.
View tool JSON
{
"name": "pvpartpicker_open_page",
"kind": "act",
"impl": "imperative",
"description": "Navigate using the visible router to an allowed section/product/guide. No arbitrary, external, auth or admin URL. Build tab accepts equipment or analytics.",
"inputSchema": {
"type": "object",
"properties": {
"section": {
"type": "string",
"enum": [
"home",
"parts",
"product",
"build",
"builds",
"saved-builds",
"community-builds",
"deals",
"watchlist",
"tiers",
"guide",
"calculators",
"comparison"
]
},
"category": {
"type": "string",
"enum": [
"panels",
"mounting",
"wiring",
"batteries",
"all-in-one",
"inverters",
"charging",
"module-electronics",
"monitoring",
"kits",
"electrical",
"accessories"
]
},
"query": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"productId": {
"type": "string",
"minLength": 1,
"maxLength": 180
},
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"builder": {
"type": "boolean"
},
"tab": {
"type": "string",
"enum": [
"equipment",
"analytics"
]
}
},
"required": [
"section"
],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_read_tiersAction
Read existing editorial rankings, evidence and limitations, with fresh eligible price metrics. Rankings are judgments, not compatibility or performance guarantees.
View tool JSON
{
"name": "pvpartpicker_read_tiers",
"kind": "act",
"impl": "imperative",
"description": "Read existing editorial rankings, evidence and limitations, with fresh eligible price metrics. Rankings are judgments, not compatibility or performance guarantees.",
"inputSchema": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"all-in-one",
"batteries",
"panels",
"inverters"
]
},
"query": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"category"
],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_find_guidesAnswer
Search actual guide metadata; returns titles, review dates, summaries and internal links.
View tool JSON
{
"name": "pvpartpicker_find_guides",
"kind": "answer",
"impl": "imperative",
"description": "Search actual guide metadata; returns titles, review dates, summaries and internal links.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 40
}
},
"required": [],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_list_calculatorsAnswer
List available Solar4U calculator input ranges, defaults and caveats. Does not send location to external services.
View tool JSON
{
"name": "pvpartpicker_list_calculators",
"kind": "answer",
"impl": "imperative",
"description": "List available Solar4U calculator input ranges, defaults and caveats. Does not send location to external services.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
},
"page": "/"
}pvpartpicker_calculateAction
Run an existing Solar4U calculator locally. Omitted fields use documented defaults. PV uses instant seasonal model, not PVGIS. Does not change build or transmit coordinates.
View tool JSON
{
"name": "pvpartpicker_calculate",
"kind": "act",
"impl": "imperative",
"description": "Run an existing Solar4U calculator locally. Omitted fields use documented defaults. PV uses instant seasonal model, not PVGIS. Does not change build or transmit coordinates.",
"inputSchema": {
"type": "object",
"properties": {
"calculator": {
"type": "string",
"minLength": 1,
"maxLength": 30
},
"values": {
"type": "object",
"additionalProperties": {
"type": "number"
}
},
"material": {
"type": "string",
"enum": [
"copper",
"aluminum"
]
}
},
"required": [
"calculator"
],
"additionalProperties": false
},
"page": "/"
}