@alignco/opensolar-mcp

MCPattestato
v0.1.3io.github.Align-Software-CompanyMITAggiornato 12 g fanpmGitHub

Unofficial, self-hosted MCP server for the documented OpenSolar API.

Funziona in
ClaudeCursorCopilotGemini

Dedotto dai trasporti dichiarati da questo annuncio (stdio). Un client che non compare qui non è escluso — semplicemente Forge non è in grado di confermarlo.

Build attestato
Un’attestation di provenienza verificata lega questo artefatto al repository indicato. Nessuno ha ancora rivendicato l’annuncio — questo dimostra dove è stato costruito il codice, non chi lo sostiene.
89Download/sett.
12 g faUltimo aggiornamento
Richiede 1 credenziale prima di poter funzionare
  • OPENSOLAR_API_TOKENChiave APIobbligatoria

    OpenSolar bearer token

Dichiarato dall’autore nel registro MCP ufficiale. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.

Pacchetto
Autoreio.github.Align-Software-Company
LicenzaMIT
Versione0.1.3
Fontenpm+mcp-registry
Stato di fiducia
A
85/100Affidabile
✓Presente nell’indice di Forge+10/10
✓Identità verificata · build attestato+20/20
—Firma di pubblicazione Ed25519+0/5
→ Inclusa automaticamente quando il publisher esegue `forge publish`
—Verifica del dominio+0/5
→ Publisher: ospita /.well-known/forge.json sulla homepage del pacchetto con { "publisher": "<github-login>" }
✓npm Trusted Publishing (Sigstore)+5/5
—Corrispondenza del maintainer npm+0/5
→ Publisher: aggiungi il login GitHub verificato ai maintainer del pacchetto npm (npm owner add <login>)
✓Analisi CVE · pulita+30/30
✓Analisi statica · pulita+20/20
Incollalo in Claude Code, Cursor o qualsiasi assistente di IA per colmare tutte le lacune
StatoIdentità verificata
PublisherNon verificato
FirmaNon firmato
Dominio—
Provenienza✓ Verificato con Sigstore · 1dbf69b
Dipendenze✓ 7 risolte · nessuna vulnerabile
Superficie di strumenti40 strumenti · 6 privilegiati
Analisi di sicurezza✓ Pulitov0.1.3 · oggiQuanto è efficace questa analisi?
ValutazioniNessuna
Indicizzato9 ott 2026

La verifica conferma l’identità del publisher (la proprietà del repo), non la sicurezza del codice. L’analisi di sicurezza copre i CVE noti e gli script di installazione sospetti.

Strumenti

40 strumenti · 6 privilegiati
Estratto staticamente dal pacchetto pubblicatov0.1.3 · 16h ago

Letto dal codice che npm distribuisce davvero, al momento dell’analisi. Il pacchetto non è mai stato eseguito. Gli strumenti registrati dinamicamente a runtime, o nascosti in codice impacchettato o minificato, possono sfuggire — quindi questo è un limite inferiore della superficie di strumenti, non un censimento completo.

list_costingsLists one page of costings as `{ costings, page, limit }`. The only optional filter is boolean priority. Per-unit rates are omitted.

Lists one page of costings as `{ costings, page, limit }`. The only optional filter is boolean priority. Per-unit rates are omitted.

Per questo strumento non è stato pubblicato alcuno schema di input.

get_costingReturns one costing by id: title, description, and boolean priority. Per-unit rates are omitted.

Returns one costing by id: title, description, and boolean priority. Per-unit rates are omitted.

Per questo strumento non è stato pubblicato alcuno schema di input.

delete_costingprivilegiatoRemoves the costing from the live org. This call is not retried.

Removes the costing from the live org. This call is not retried.

Per questo strumento non è stato pubblicato alcuno schema di input.

list_contactsLists one page of contacts as `{ contacts }`. Each contact includes `is_synthetic_email` for `@os.code` addresses. Passport, licence, and date of birth are redacted. Contacts have no created_date or modified_date.

Lists one page of contacts as `{ contacts }`. Each contact includes `is_synthetic_email` for `@os.code` addresses. Passport, licence, and date of birth are redacted. Contacts have no created_date or modified_date.

Per questo strumento non è stato pubblicato alcuno schema di input.

search_contactsNessuna descrizione pubblicata

Questo strumento non ha pubblicato alcuna descrizione. Forge non se la inventa.

get_contactReturns one contact by id, including `is_synthetic_email`. Passport, licence, and date of birth are redacted. Contacts have no created_date or modified_date.

Returns one contact by id, including `is_synthetic_email`. Passport, licence, and date of birth are redacted. Contacts have no created_date or modified_date.

Per questo strumento non è stato pubblicato alcuno schema di input.

create_contactAdds a person to the live org. Send only first_name, family_name, email, and phone. This call is not retried.

Adds a person to the live org. Send only first_name, family_name, email, and phone. This call is not retried.

Per questo strumento non è stato pubblicato alcuno schema di input.

update_contactUpdates a person in the live org. Send at least one of first_name, family_name, email, and phone. This call is not retried.

Updates a person in the live org. Send at least one of first_name, family_name, email, and phone. This call is not retried.

Per questo strumento non è stato pubblicato alcuno schema di input.

delete_contactprivilegiatoRemoves the person from the live org. This call is not retried.

Removes the person from the live org. This call is not retried.

Per questo strumento non è stato pubblicato alcuno schema di input.

get_eventReturns one event by id. Adds `event_type_name` and omits `url` and `org`. Use an id from get_project events. Unknown types become `Unknown event type`.

Returns one event by id. Adds `event_type_name` and omits `url` and `org`. Use an id from get_project events. Unknown types become `Unknown event type`.

Per questo strumento non è stato pubblicato alcuno schema di input.

list_event_typesReturns the OpenSolar event type ids and titles, including gaps. This is a copied docs table, not an API call.

Returns the OpenSolar event type ids and titles, including gaps. This is a copied docs table, not an API call.

Per questo strumento non è stato pubblicato alcuno schema di input.

list_private_filesLists one page of private files as `{ private_files, page, limit }`. Each row is id, title, file tag titles, and project id. The download URL is omitted.

Lists one page of private files as `{ private_files, page, limit }`. Each row is id, title, file tag titles, and project id. The download URL is omitted.

Per questo strumento non è stato pubblicato alcuno schema di input.

get_private_fileReturns one private file by id: title, file tag titles, project id, and size when OpenSolar sent it. The download URL stays on the server. `include_contents: true` downloads the file and refuses a body over 10 MB. Text is included for the model, capped at 100,000 characters. Images are image conten…

Returns one private file by id: title, file tag titles, project id, and size when OpenSolar sent it. The download URL stays on the server. `include_contents: true` downloads the file and refuses a body over 10 MB. Text is included for the model, capped at 100,000 characters. Images are image conten…

Per questo strumento non è stato pubblicato alcuno schema di input.

create_private_fileCreates a private file in the live org from a path confined to OPENSOLAR_UPLOAD_ROOT on this server. Uploads are disabled until that root is configured. The resolved real path must remain inside the root, including through symlinks. The server reads that file as multipart title and file_contents. F…

Creates a private file in the live org from a path confined to OPENSOLAR_UPLOAD_ROOT on this server. Uploads are disabled until that root is configured. The resolved real path must remain inside the root, including through symlinks. The server reads that file as multipart title and file_contents. F…

Per questo strumento non è stato pubblicato alcuno schema di input.

update_private_fileUpdates a private file title in the live org. The published sample sends only title. The download URL is omitted. This call is not retried.

Updates a private file title in the live org. The published sample sends only title. The download URL is omitted. This call is not retried.

Per questo strumento non è stato pubblicato alcuno schema di input.

delete_private_fileprivilegiatoRemoves the private file from the live org. This call is not retried.

Removes the private file from the live org. This call is not retried.

Per questo strumento non è stato pubblicato alcuno schema di input.

generate_project_documentCreates a project document in the live org and returns the private file id. Omit format for the document type's default. pdf and csv set file_format on generate_document; docx calls generate_document_docx. The call sends action=save so OpenSolar stores a private file. File bytes are not returned. U…

Creates a project document in the live org and returns the private file id. Omit format for the document type's default. pdf and csv set file_format on generate_document; docx calls generate_document_docx. The call sends action=save so OpenSolar stores a private file. File bytes are not returned. U…

Per questo strumento non è stato pubblicato alcuno schema di input.

get_orgReturns the connected OpenSolar org: id, name, address, contact info, and measurement units. `verbose: true` returns the full redacted payload.

Returns the connected OpenSolar org: id, name, address, contact info, and measurement units. `verbose: true` returns the full redacted payload.

Per questo strumento non è stato pubblicato alcuno schema di input.

list_rolesLists roles in the connected org as `{ roles }`: id, display, email, phone, job title, and is_admin. Chat API keys are omitted.

Lists roles in the connected org as `{ roles }`: id, display, email, phone, job title, and is_admin. Chat API keys are omitted.

Per questo strumento non è stato pubblicato alcuno schema di input.

get_roleReturns one role by id: display, email, phone, job title, and is_admin. Chat API keys are omitted. Optional fieldset is list only.

Returns one role by id: display, email, phone, job title, and is_admin. Chat API keys are omitted. Optional fieldset is list only.

Per questo strumento non è stato pubblicato alcuno schema di input.

list_payment_optionsLists one page of payment options as `{ payment_options, page, limit }`. Optional filters are payment_type, auto_apply_enabled, and priority. `configuration_json` is omitted.

Lists one page of payment options as `{ payment_options, page, limit }`. Optional filters are payment_type, auto_apply_enabled, and priority. `configuration_json` is omitted.

Per questo strumento non è stato pubblicato alcuno schema di input.

get_payment_optionReturns one payment option by id: title, payment type, priority, auto-apply, and archived. `configuration_json` is omitted.

Returns one payment option by id: title, payment type, priority, auto-apply, and archived. `configuration_json` is omitted.

Per questo strumento non è stato pubblicato alcuno schema di input.

delete_payment_optionprivilegiatoRemoves the payment option from the live org. This call is not retried.

Removes the payment option from the live org. This call is not retried.

Per questo strumento non è stato pubblicato alcuno schema di input.

list_pricing_schemesLists one page of pricing schemes as `{ pricing_schemes, page, limit }`. Optional filters are priority, auto_apply_enabled, and pricing_formula. `configuration_json` is omitted.

Lists one page of pricing schemes as `{ pricing_schemes, page, limit }`. Optional filters are priority, auto_apply_enabled, and pricing_formula. `configuration_json` is omitted.

Per questo strumento non è stato pubblicato alcuno schema di input.

get_pricing_schemeReturns one pricing scheme by id: title, formula, priority, auto-apply, and archived. `configuration_json` is omitted.

Returns one pricing scheme by id: title, formula, priority, auto-apply, and archived. `configuration_json` is omitted.

Per questo strumento non è stato pubblicato alcuno schema di input.

delete_pricing_schemeprivilegiatoRemoves the pricing scheme from the live org. This call is not retried.

Removes the pricing scheme from the live org. This call is not retried.

Per questo strumento non è stato pubblicato alcuno schema di input.

list_projectsLists one page of projects in the connected org. Default result is `{ projects, page, limit }` with id, title, address, dates, stage, stage_milestone, and workflow ids when OpenSolar sent them. `verbose: true` returns `{ projects, page, limit }` with the full redacted list objects. Use search_proje…

Lists one page of projects in the connected org. Default result is `{ projects, page, limit }` with id, title, address, dates, stage, stage_milestone, and workflow ids when OpenSolar sent them. `verbose: true` returns `{ projects, page, limit }` with the full redacted list objects. Use search_proje…

Per questo strumento non è stato pubblicato alcuno schema di input.

search_projectsNessuna descrizione pubblicata

Questo strumento non ha pubblicato alcuna descrizione. Forge non se la inventa.

get_projectReturns one project by id: address, stage, stage_milestone, workflow ids, contacts, assigned role, system_count, design_available, and events. Use it for fields a search row does not include. When search_projects reports `resolution: unique`, that target does not need this call before a write. `ver…

Returns one project by id: address, stage, stage_milestone, workflow ids, contacts, assigned role, system_count, design_available, and events. Use it for fields a search row does not include. When search_projects reports `resolution: unique`, that target does not need this call before a write. `ver…

Per questo strumento non è stato pubblicato alcuno schema di input.

get_project_snapshotNessuna descrizione pubblicata

Questo strumento non ha pubblicato alcuna descrizione. Forge non se la inventa.

create_projectCreates a project in the live org. A new project can be blocked when the wallet is empty. API Access uses project-level paid entitlement while it is enabled. This call is not retried.

Creates a project in the live org. A new project can be blocked when the wallet is empty. API Access uses project-level paid entitlement while it is enabled. This call is not retried.

Per questo strumento non è stato pubblicato alcuno schema di input.

update_projectUpdates address, notes, and related fields on one project in the live org. Send at least one field besides id. Stage, design, workflow, and usage are not accepted. This call is not retried.

Updates address, notes, and related fields on one project in the live org. Send at least one field besides id. Stage, design, workflow, and usage are not accepted. This call is not retried.

Per questo strumento non è stato pubblicato alcuno schema di input.

update_project_stageSets the workflow stage on a project in the live org. Send active_stage_id with workflow_id, or stage_name. A stage title is resolved on that workflow and never matches an archived stage. No match or two matches with the same title do not PATCH. The deprecated stage field is not accepted. This call…

Sets the workflow stage on a project in the live org. Send active_stage_id with workflow_id, or stage_name. A stage title is resolved on that workflow and never matches an archived stage. No match or two matches with the same title do not PATCH. The deprecated stage field is not accepted. This call…

Per questo strumento non è stato pubblicato alcuno schema di input.

update_project_usageSets energy consumption on a project in the live org. Only the usage object is sent. values must match the source: one integer for annual, 12, 6, or 4 integers for the period sources, or Low, Medium, or High for estimate. This call is not retried.

Sets energy consumption on a project in the live org. Only the usage object is sent. values must match the source: one integer for annual, 12, 6, or 4 integers for the period sources, or Low, Medium, or High for estimate. This call is not retried.

Per questo strumento non è stato pubblicato alcuno schema di input.

delete_projectprivilegiatoRemoves the project from the live org. This call is not retried.

Removes the project from the live org. This call is not retried.

Per questo strumento non è stato pubblicato alcuno schema di input.

get_proposal_dataReturns proposal figures for one project: system name, annual kWh, monthly kWh, payback year, net present value, IRR, and return on investment. Requires Raw Data API Access. A 402 means this org does not have that plan. One inaccessible project returns 403. A compressed output string is decoded on…

Returns proposal figures for one project: system name, annual kWh, monthly kWh, payback year, net present value, IRR, and return on investment. Requires Raw Data API Access. A 402 means this org does not have that plan. One inaccessible project returns 403. A compressed output string is decoded on…

Per questo strumento non è stato pubblicato alcuno schema di input.

get_project_designNessuna descrizione pubblicata

Questo strumento non ha pubblicato alcuna descrizione. Forge non se la inventa.

list_roof_typesReturns the OpenSolar roof type ids and titles. This is a copied docs table, not an API call.

Returns the OpenSolar roof type ids and titles. This is a copied docs table, not an API call.

Per questo strumento non è stato pubblicato alcuno schema di input.

list_file_tagsReturns private-file tag titles. The title is the identifier. This is a copied docs table, not an API call.

Returns private-file tag titles. The title is the identifier. This is a copied docs table, not an API call.

Per questo strumento non è stato pubblicato alcuno schema di input.

list_project_systemsLists one page of systems for a project as `{ systems, page, limit }`. Each row has id, name, size, module count, battery kWh, annual output, and price. Not the full pricing breakdown.

Lists one page of systems for a project as `{ systems, page, limit }`. Each row has id, name, size, module count, battery kWh, annual output, and price. Not the full pricing breakdown.

Per questo strumento non è stato pubblicato alcuno schema di input.

36 strumenti su 40 hanno pubblicato una descrizione.

I nomi e le descrizioni degli strumenti sono scritti dal publisher e mostrati alla lettera come testo inerte. Sono le stringhe che un client MCP passa a un modello, quindi Forge vi cerca schemi di prompt injection — ogni rilievo compare insieme all’analisi di sicurezza qui sopra. «Privilegiato» è una corrispondenza di parola chiave sul nome dello strumento, non una verifica di ciò che fa: un nome innocuo può comunque fare qualsiasi cosa.

Descrizione

Unofficial, self-hosted MCP server for the documented OpenSolar API.

Parole chiave
mcp
Alternative
Confronto delle superfici di strumenti…

Albero delle dipendenze

Ciò che una scansione di Forge ha risolto dai metadati npm il 2026-10-10: risoluzione osservata, non una dichiarazione dell'editore.

7 pacchetti risolti · 6 diretti · nessuno con avvisi di sicurezza La risoluzione si ferma alla profondità 4 e a 60 pacchetti.

Non seguite: peerDependencies. Questo albero copre solo le dipendenze di runtime, quindi ciò che queste comportano non è mai stato risolto.