Integriert das AccuLynx Roofing-CRM mit KI-Clients, um Aufträge, Kontakte, Kostenvoranschläge und Finanzen zu verwalten.
Auch bekannt als opsrev/acculynx-cli, @opsrev/acculynx-cli, acculynx-mcp
- Stars
- 0
- Tools
- 34
- Downloads, 30 Tage
- —
- Neueste Version
- —
- Letzter Commit
- 27. Okt. 2026
- Lizenz
- MIT
Was ist AccuLynx MCP?
AccuLynx ist ein MCP server. Integriert das AccuLynx Roofing-CRM mit KI-Clients, um Aufträge, Kontakte, Kostenvoranschläge und Finanzen zu verwalten. Er stellt 34 Tools bereit, etwa acculynx_ping, acculynx_jobs_list, acculynx_jobs_get.
Zusammenfassung generiert aus dem README des Projekts
Über AccuLynx MCP server
Dieser Server ermöglicht es Dachdeckerbetrieben, ihre Geschäftsabläufe über KI zu steuern, wenn sie das AccuLynx CRM nutzen. Durch die Verbindung mit Clients wie Claude Desktop oder Cursor können Nutzer mit ihrer Geschäftsdaten mittels natürlicher Sprache interagieren, um Aufträge, Kontakte, Kostenvoranschläge und Finanzdaten zu verwalten. Der Server stellt 30 spezifische Tools bereit, wie zum Beispiel acculynx_jobs_list und acculynx_contacts_search, die alle durch strikte JSON Schemas gesteuert werden, damit KI-Agenten die korrekten Parameter verwenden.
Die Einrichtung erfordert einen AccuLynx API Key, den du über die Einstellungen des Account-Administrators erhältst. Der Server läuft lokal via npx oder einer globalen npm Installation und kommuniziert über stdio. Über die Standard-MCP-Funktionalität hinaus enthält das Package ein Command Line Interface, das fortgeschrittenes Scripting und Datenverarbeitung ermöglicht. Dies umfasst spezialisierte Scanning-Funktionen, um Meilensteine von Aufträgen zu überwachen, das Alter von Leads (Prospect Aging) zu tracken oder Marketing-Berichte mit exakten Finanzwerten in Cent zu erstellen.
Was du damit machen kannst
- 1Aktuelle Auftragsdetails abrufenBitte deinen KI-Client, die fünf neuesten Aufträge aus deinem AccuLynx-Account aufzulisten.
- 2Prospect Aging analysierenErstelle einen Bericht, um zu sehen, wie lange aktuelle Leads bereits im System sind, unterteilt in spezifische Kalendertage.
- 3Auftragszahlungen prüfenScanne alle Aufträge innerhalb bestimmter Meilensteine, um sicherzustellen, dass eingegangene Zahlungen korrekt erfasst wurden.
- 4Kontaktmanagement automatisierenNutze das CLI, um nach Kontakten innerhalb eines bestimmten Datumsbereichs zu suchen und die Ergebnisse an andere Tools weiterzuleiten.
Geschrieben aus dem README des Projekts. Jeder Use Case wurde gegen ein Zitat daraus geprüft.
So installierst du AccuLynx MCP
Formate geprüft am 10. Nov. 2026Zu Cursor hinzufügenZu Goose hinzufügenAccuLynx MCP in Claude Code installieren
$ claude mcp add acculynx-cli -- npx -y @opsrev/acculynx-cliAccuLynx MCP in Cursor installieren
~/.cursor/mcp.json
{
"mcpServers": {
"acculynx-cli": {
"command": "npx",
"args": [
"-y",
"@opsrev/acculynx-cli"
]
}
}
}AccuLynx MCP in VS Code installieren
.vscode/mcp.json
{
"servers": {
"acculynx-cli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@opsrev/acculynx-cli"
]
}
}
}AccuLynx MCP in VS Code CLI installieren
$ code --add-mcp '{"name":"acculynx-cli","type":"stdio","command":"npx","args":["-y","@opsrev/acculynx-cli"]}'AccuLynx MCP in Claude Desktop installieren
claude_desktop_config.json
{
"mcpServers": {
"acculynx-cli": {
"command": "npx",
"args": [
"-y",
"@opsrev/acculynx-cli"
]
}
}
}AccuLynx MCP in Codex installieren
$ codex mcp add acculynx-cli -- npx -y @opsrev/acculynx-cliAccuLynx MCP in Codex config.toml installieren
~/.codex/config.toml
[mcp_servers.acculynx-cli] command = "npx" args = ["-y", "@opsrev/acculynx-cli"]
AccuLynx MCP in Gemini CLI installieren
$ gemini mcp add -s user acculynx-cli npx -- -y @opsrev/acculynx-cliAccuLynx MCP in Gemini settings.json installieren
~/.gemini/settings.json
{
"mcpServers": {
"acculynx-cli": {
"command": "npx",
"args": [
"-y",
"@opsrev/acculynx-cli"
]
}
}
}AccuLynx MCP tools 34
Erkannt aus dem READMEacculynx_pingacculynx_jobs_listacculynx_jobs_getacculynx_jobs_createacculynx_jobs_searchacculynx_jobs_contactsacculynx_jobs_estimatesacculynx_jobs_financialsacculynx_jobs_invoicesacculynx_jobs_milestonesacculynx_jobs_paymentsacculynx_jobs_history
| acculynx_ping | — | |
| acculynx_jobs_list | — | |
| acculynx_jobs_get | — | |
| acculynx_jobs_create | — | |
| acculynx_jobs_search | — | |
| acculynx_jobs_contacts | — | |
| acculynx_jobs_estimates | — | |
| acculynx_jobs_financials | — | |
| acculynx_jobs_invoices | — | |
| acculynx_jobs_milestones | — | |
| acculynx_jobs_payments | — | |
| acculynx_jobs_history | — |
Alle 34 Tools anzeigenWeniger Tools anzeigen
acculynx_jobs_repsacculynx_jobs_reps_assignacculynx_jobs_work_typesacculynx_jobs_trade_typesacculynx_jobs_set_work_typeacculynx_jobs_set_trade_typesacculynx_jobs_document_foldersacculynx_jobs_add_expenseacculynx_jobs_upload_documentacculynx_contacts_listacculynx_contacts_getacculynx_contacts_createacculynx_contacts_searchacculynx_contacts_emailsacculynx_contacts_phonesacculynx_contacts_phone_addacculynx_estimates_listacculynx_estimates_getacculynx_estimates_sectionsacculynx_estimates_sectionacculynx_estimates_itemsacculynx_users_list
| acculynx_jobs_reps | — | |
| acculynx_jobs_reps_assign | — | |
| acculynx_jobs_work_types | — | |
| acculynx_jobs_trade_types | — | |
| acculynx_jobs_set_work_type | — | |
| acculynx_jobs_set_trade_types | — | |
| acculynx_jobs_document_folders | — | |
| acculynx_jobs_add_expense | — | |
| acculynx_jobs_upload_document | — | |
| acculynx_contacts_list | — | |
| acculynx_contacts_get | — | |
| acculynx_contacts_create | — | |
| acculynx_contacts_search | — | |
| acculynx_contacts_emails | — | |
| acculynx_contacts_phones | — | |
| acculynx_contacts_phone_add | — | |
| acculynx_estimates_list | — | |
| acculynx_estimates_get | — | |
| acculynx_estimates_sections | — | |
| acculynx_estimates_section | — | |
| acculynx_estimates_items | — | |
| acculynx_users_list | — |
Konfiguration
ACCULYNX_API_KEYJOB_ID
| Name | Beschreibung | Typ |
|---|---|---|
| ACCULYNX_API_KEY | — | |
| JOB_ID | — |
Automatisierte Checks
Geluften am 14. Nov. 2026Vollständiger Bericht →Unsere automatisierten Checks bestanden. Das ist kein Security-Audit: Lies den Code und gib dem Server nur den minimal notwendigen Zugriff. Wie die Checks funktionieren
- Source Repository verknüpft und erreichbaropsrev/acculynx-cli is public and reachablegithub.com/opsrev/acculynx-cli ↗Bestanden
- Paket nennt dieses Repository als Quelle@opsrev/acculynx-cli, acculynx-mcp name opsrev/acculynx-cli as sourcenpmjs.com/package/@opsrev/acculynx-cli ↗Bestanden
- Build-Provenienz (Sigstore-Attestierung)Sigstore attestation for @opsrev/acculynx-cli, acculynx-mcpnpmjs.com/package/@opsrev/acculynx-cli/v/1.18.2#provenance ↗Bestanden
- Open Source Lizenz (OSI)MITspdx.org/licenses/MIT.html ↗Bestanden
- Commit oder Release im letzten JahrLast commit or release 2026-10-27github.com/opsrev/acculynx-cli ↗Bestanden
- OpenSSF ScorecardNicht geprüft
- Package-Name ähnelt keinem populären PackageNo popular package one edit away from @opsrev/acculynx-cli, acculynx-mcpBestanden
- Keine kritischen Advisories im Paket oder seinen AbhängigkeitenNicht geprüft
- Keine versteckten Anweisungen an das Modell34 tool descriptions and the README read; no override phrases, credential paths or hidden charactersBestanden
- Destruktive Tools sind markiertNo tool named like delete, drop or execBestanden
- Remote-Endpoint beantwortet den MCP-HandshakeNicht geprüft
README
Auf GitHub ansehenAccuLynx MCP Server & CLI
npm:
acculynx-mcp(MCP server) ·@opsrev/acculynx-cli(CLI + MCP)
An MCP server for the AccuLynx roofing CRM — bring jobs, contacts, and estimates into Claude Desktop, Cursor, or any MCP client. Every tool is exposed with an enforced JSON Schema, so an AI agent can't invent a parameter or call a command that doesn't exist.
- 30 tools across jobs, contacts, estimates, and users.
acculynx-mcp— the MCP server, for Claude Desktop / Cursor / any MCP client.@opsrev/acculynx-cli— the same data as a JSON CLI (and it also ships theacculynx-mcpserver bin).
Use in Claude Desktop
- Get an AccuLynx API key (your AccuLynx account administrator creates it under Account Settings → API).
- Open your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- Add the server (zero-install via
npx):
{
"mcpServers": {
"acculynx": {
"command": "npx",
"args": ["-y", "acculynx-mcp"],
"env": { "ACCULYNX_API_KEY": "your-api-key" }
}
}
}
Prefer a global install? Run npm i -g acculynx-mcp, then use
"command": "acculynx-mcp" with no args.
- Restart Claude Desktop. Open a new chat and ask "List my 5 most recent
AccuLynx jobs" — you should see the
acculynx_*tools available.
Use in Cursor / other MCP clients
Any client that speaks MCP over stdio works. Point it at npx -y acculynx-mcp
(or a global acculynx-mcp) and set ACCULYNX_API_KEY in the environment.
Example (Cursor ~/.cursor/mcp.json):
{
"mcpServers": {
"acculynx": {
"command": "npx",
"args": ["-y", "acculynx-mcp"],
"env": { "ACCULYNX_API_KEY": "your-api-key" }
}
}
}
MCP tools
All tools are prefixed acculynx_ and return JSON.
| Tool | Description |
|---|---|
acculynx_ping |
Health check — verify the API key and connectivity |
acculynx_jobs_list |
List jobs (paginated, filterable) |
acculynx_jobs_get |
Get one job by id |
acculynx_jobs_create |
Create a job |
acculynx_jobs_search |
Search jobs by free-text term |
acculynx_jobs_contacts |
List a job's contacts |
acculynx_jobs_estimates |
List a job's estimates |
acculynx_jobs_financials |
Get a job's financials |
acculynx_jobs_invoices |
List a job's invoices |
acculynx_jobs_milestones |
List a job's milestone history |
acculynx_jobs_payments |
List a job's payments |
acculynx_jobs_history |
Get a job's change history |
acculynx_jobs_reps |
List a job's representatives |
acculynx_jobs_reps_assign |
Assign a representative to a job |
acculynx_jobs_work_types |
List the company's active work types (id + name) |
acculynx_jobs_trade_types |
List the company's active trade types (id + name) |
acculynx_jobs_set_work_type |
Set a job's work type — by workType name or workTypeId |
acculynx_jobs_set_trade_types |
Set a job's trade types — by tradeTypes names or tradeTypeIds (empty array unassigns all) |
acculynx_jobs_document_folders |
List the company's document folders |
acculynx_jobs_add_expense |
Record an additional expense on a job |
acculynx_jobs_upload_document |
Upload a local file to a job |
acculynx_contacts_list |
List contacts (paginated) |
acculynx_contacts_get |
Get one contact by id |
acculynx_contacts_create |
Create a contact |
acculynx_contacts_search |
Search contacts within a date range |
acculynx_contacts_emails |
List a contact's email addresses |
acculynx_contacts_phones |
List a contact's phone numbers |
acculynx_contacts_phone_add |
Add a phone number to a contact |
acculynx_estimates_list |
List estimates (paginated) |
acculynx_estimates_get |
Get one estimate by id |
acculynx_estimates_sections |
List an estimate's sections |
acculynx_estimates_section |
Get one estimate section |
acculynx_estimates_items |
List items in an estimate section |
acculynx_users_list |
List users (paginated, optional name/email search) |
Configuration
| Env Var | Flag | Required | Description |
|---|---|---|---|
ACCULYNX_API_KEY |
--api-key |
Yes | AccuLynx official API key (Account Settings → API) |
ACCULYNX_EMAIL |
— | No | Login email; only for tools that use AccuLynx's web API |
ACCULYNX_PASSWORD |
— | No | Login password; only for web-API tools |
ACCULYNX_COMPANY_ID |
— | No | Company GUID; only for web-API tools |
Also a CLI
@opsrev/acculynx-cli exposes the same data as a JSON CLI (and bundles the
acculynx-mcp server bin). All output is JSON to stdout; errors are
{"error": "..."} to stderr with exit code 1.
npm install -g @opsrev/acculynx-cli
acculynx ping # verify API key
acculynx jobs list --limit 5 # 25 results by default; --all to fetch everything
acculynx jobs get <jobId>
acculynx jobs search --query "smith"
acculynx jobs scan --milestones Approved # scan all jobs → digest + coverage receipt
acculynx contacts list --limit 10
acculynx estimates get <estimateId>
List commands default to 25 results; use --limit <n> or --all. Commands
that create resources read a JSON body from stdin:
echo '{"name": "New Job"}' | acculynx jobs create
Pipe to jq for scripting:
JOB_ID=$(acculynx jobs list --limit 1 | jq -r '.[0].id')
acculynx jobs get "$JOB_ID" | jq .
Prospect aging with complete readable rows
acculynx jobs scan --report prospect-aging --as-of 2026-10-20 --exclude-trade-type "Maintenance Program"
This bounded GET-only report ages current Prospect inventory by its full milestone date in America/New_York, with inclusive 0–30, 31–60, 61–90 and 91+ calendar-day buckets. It is not a historical inventory snapshot. Exclusions use exact case-insensitive trade-type names; missing classification stays unknown. Every eligible row includes its full ID, date, age and separate approved/worksheet values in exact cents. Missing values remain unavailable rather than zero.
Enumeration is strict and capped at 5,000 jobs before per-job financial reads. Reports above 180,000 characters return partial with no detailed list, keeping output below the retained process-log limit. No history, payment, message or write requests are made. Invalid/incomplete inventory withholds totals and rows; missing dates or financial evidence make the result partial (exit 3). Incompatible filters and output modes fail before provider access (exit 2). Read long stdout through bounded process-log pages.
Monitoring scans: payments with strict coverage
Scan every job in a set of milestones and fetch each one's received payments in one process, with a coverage line a script can check:
acculynx jobs scan --milestones Approved,Completed,Invoiced \
--enrich payments --strict --format jsonl --out payments.jsonl
Each job line carries payments: the job's full received-payment objects
(id, from, amount, paymentDate, checkNumber, notes, …). The last
line is the coverage receipt:
{"type":"coverage","scanned":299,"serverCount":299,"complete":true,"pageError":null,"enrichErrors":0}
--strict(implied by--enrich payments) treats any pagination anomaly (changing total, duplicate job IDs, overfull or malformed pages) as a partial scan. Partial scans exit 3 and reportcomplete: false. Never treat them as a full inventory.- A per-job payments failure doesn't abort the scan. It appears in that job's
errors({"jobId", "source": "payments", "message"}) and counts towardenrichErrors, so retry just those jobs withacculynx jobs payments <id>. - Without
--strictand withoutpayments,jsonloutput is unchanged: job lines only.
Development
cp .env.example .env # fill in your credentials
npm install
npm test # run unit tests (mocked fetch)
npm run dev -- --help # run the CLI in dev mode (auto-loads .env)
npm run build # build both bins to dist/
npm run dev auto-loads .env via Node's --env-file:
npm run dev -- jobs list --limit 5
License
MIT
Private marketing evidence from a native scan
Operators preparing approval-date reconciliation can preserve exact source fields without parsing the rounded human digest:
acculynx jobs scan --start-date 2026-07-01 --end-date 2026-09-04 --date-filter-type ModifiedDate --enrich dates,financials --format marketing-evidence
This emits one acculynx-marketing-evidence/v1 JSON object. It is private
operator evidence containing full job IDs and individual values; do not post
it in a vendor/customer channel. It excludes contacts, addresses, names,
notes, documents, unrelated financials and raw provider error bodies.
--out and other enrichers are rejected before reading. Redirect stdout only
into an appropriately protected operator workspace if retaining the artifact.
This format does not alter downstream agents' command allowlists or authorize
them to export records.
The receipt distinguishes query completeness from enrichment completeness. Strict pagination requires a numeric stable total, advancing offsets and unique job IDs. Exit 3 means partial evidence; never publish it as a complete result. Full source dates are preserved without timezone conversion, repeated approval milestones remain separate, and current approved value is represented in exact cents. Missing/invalid values and dates remain null with issue codes.
This is not an approval cohort, an original-acquisition attribution, a complete lead-delivery inventory or historical revenue. ModifiedDate is a candidate filter; confirm historical and unassigned/dead-lead coverage separately. Review source date semantics, repeated approvals, transfers and current-versus-original contract value before producing normalized results. A large historical scan reads history and financials for each candidate; bootstrap it separately from short daily marketing jobs, then validate an incremental refresh strategy.
AccuLynx MCP Fragen
Wie füge ich AccuLynx MCP zu Claude Code hinzu?
Führe claude mcp add acculynx-cli -- npx -y @opsrev/acculynx-cli in deinem Terminal aus. Füge --scope user hinzu, damit der Server in jedem Projekt verfügbar ist.
Wie füge ich AccuLynx MCP zu Cursor hinzu?
Öffne ~/.cursor/mcp.json und füge den Server unter mcpServers hinzu, mit der Cursor-Config aus dem Installationsabschnitt oben.
Welche Tools bietet AccuLynx MCP?
Er stellt 34 Tools bereit, darunter acculynx_ping, acculynx_jobs_list, acculynx_jobs_get, acculynx_jobs_create, acculynx_jobs_search.
Welche Art von Daten kann ich über die MCP Tools abrufen?
Du kannst auf 30 verschiedene Tools zugreifen, die Aufträge, Kontakte, Kostenvoranschläge, Benutzer, Finanzen, Rechnungen und mehr abdecken.
Kann ich das als Command Line Interface nutzen?
Ja, das @opsrev/acculynx-cli Package bietet ein JSON CLI für Scripting und die Nutzung im Terminal.
Woher bekomme ich einen API Key für AccuLynx?
Dein AccuLynx-Account-Administrator kann einen API Key unter Account Settings → API erstellen.