AccuLynx 지붕 공사 CRM을 AI 클라이언트와 통합하여 작업, 연락처, 견적 및 재무 데이터를 관리합니다.
다른 이름 opsrev/acculynx-cli, @opsrev/acculynx-cli, acculynx-mcp
- 스타
- 0
- Tools
- 34
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 10월 27일
- 라이선스
- MIT
AccuLynx MCP란?
AccuLynx은(는) MCP server입니다. AccuLynx 지붕 공사 CRM을 AI 클라이언트와 통합하여 작업, 연락처, 견적 및 재무 데이터를 관리합니다. 34개 도구를 제공합니다. 예: acculynx_ping, acculynx_jobs_list, acculynx_jobs_get.
프로젝트 README에서 생성된 요약
AccuLynx MCP server 정보
이 서버는 AccuLynx CRM을 사용하는 계약업체가 AI를 통해 지붕 공사 비즈니스 운영을 관리할 수 있도록 지원합니다. Claude Desktop 또는 Cursor와 같은 클라이언트에 연결하면 사용자는 자연어를 사용하여 비즈니스 데이터와 상호작용하며 작업, 연락처, 견적 및 재무 기록을 처리할 수 있습니다. 이 서버는 acculynx_jobs_list 및 acculynx_contacts_search와 같은 30가지 특정 도구를 제공하며, 모든 도구는 AI 에이전트가 정확한 파라미터를 사용하도록 강제된 JSON Schema를 따릅니다.
설정에는 계정 관리자 설정에서 얻은 AccuLynx API 키가 필요합니다. 서버는 npx 또는 글로벌 npm 설치를 통해 로컬에서 실행되며 stdio를 통해 통신합니다. 표준 MCP 기능 외에도 이 패키지에는 고급 스크립팅 및 데이터 처리가 가능한 명령줄 인터페이스가 포함되어 있습니다. 여기에는 작업 마일스톤 모니터링, 잠재 고객 체류 기간 추적 또는 정확한 재무 수치(센트 단위)를 포함한 마케팅 증빙 보고서 생성을 위한 특화된 스캔 기능이 포함됩니다.
활용 사례
- 1최근 작업 상세 정보 조회AI 클라이언트에게 AccuLynx 계정에서 가장 최근에 완료된 작업 5개를 나열하도록 요청합니다.
- 2잠재 고객 체류 기간 분석특정 달력 일수 구간을 사용하여 현재 잠재 고객이 시스템에 머문 기간을 확인하는 보고서를 생성합니다.
- 3작업 결제 감사특정 마일스톤 내의 모든 작업을 스캔하여 수령한 결제가 정확하게 기록되었는지 확인합니다.
- 4연락처 관리 자동화CLI를 사용하여 특정 날짜 범위 내의 연락처를 검색하고 그 결과를 other 도구로 전달합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
AccuLynx MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 AccuLynx MCP 설치
$ claude mcp add acculynx-cli -- npx -y @opsrev/acculynx-cliCursor에 AccuLynx MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"acculynx-cli": {
"command": "npx",
"args": [
"-y",
"@opsrev/acculynx-cli"
]
}
}
}VS Code에 AccuLynx MCP 설치
.vscode/mcp.json
{
"servers": {
"acculynx-cli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@opsrev/acculynx-cli"
]
}
}
}VS Code CLI에 AccuLynx MCP 설치
$ code --add-mcp '{"name":"acculynx-cli","type":"stdio","command":"npx","args":["-y","@opsrev/acculynx-cli"]}'Claude Desktop에 AccuLynx MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"acculynx-cli": {
"command": "npx",
"args": [
"-y",
"@opsrev/acculynx-cli"
]
}
}
}Codex에 AccuLynx MCP 설치
$ codex mcp add acculynx-cli -- npx -y @opsrev/acculynx-cliCodex config.toml에 AccuLynx MCP 설치
~/.codex/config.toml
[mcp_servers.acculynx-cli] command = "npx" args = ["-y", "@opsrev/acculynx-cli"]
Gemini CLI에 AccuLynx MCP 설치
$ gemini mcp add -s user acculynx-cli npx -- -y @opsrev/acculynx-cliGemini settings.json에 AccuLynx MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"acculynx-cli": {
"command": "npx",
"args": [
"-y",
"@opsrev/acculynx-cli"
]
}
}
}AccuLynx MCP 도구 34
README에서 감지됨acculynx_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 | — |
도구 34개 모두 보기도구 수 줄이기
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 | — |
구성
ACCULYNX_API_KEYJOB_ID
| 이름 | 설명 | 유형 |
|---|---|---|
| ACCULYNX_API_KEY | — | |
| JOB_ID | — |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능opsrev/acculynx-cli is public and reachablegithub.com/opsrev/acculynx-cli ↗통과
- 패키지가 이 저장소를 소스로 명시@opsrev/acculynx-cli, acculynx-mcp name opsrev/acculynx-cli as sourcenpmjs.com/package/@opsrev/acculynx-cli ↗통과
- 빌드 출처(Sigstore 증명)Sigstore attestation for @opsrev/acculynx-cli, acculynx-mcpnpmjs.com/package/@opsrev/acculynx-cli/v/1.18.2#provenance ↗통과
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-10-27github.com/opsrev/acculynx-cli ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from @opsrev/acculynx-cli, acculynx-mcp통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음34 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨No tool named like delete, drop or exec통과
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기AccuLynx 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 질문
AccuLynx MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add acculynx-cli -- npx -y @opsrev/acculynx-cli를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
AccuLynx MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
AccuLynx MCP는 어떤 도구를 제공하나요?
34개 도구를 제공합니다. 예: acculynx_ping, acculynx_jobs_list, acculynx_jobs_get, acculynx_jobs_create, acculynx_jobs_search.
MCP 도구를 통해 어떤 데이터에 접근할 수 있나요?
작업, 연락처, 견적, 사용자, 재무, 인보이스 등을 포함하는 30가지의 다양한 도구에 접근할 수 있습니다.
명령줄 인터페이스(CLI)로 사용할 수 있나요?
네, @opsrev/acculynx-cli 패키지를 통해 스크립팅 및 터미널용 JSON CLI를 제공합니다.
AccuLynx API 키는 어디에서 발급받나요?
AccuLynx 계정 관리자가 Account Settings → API 메뉴에서 API 키를 생성할 수 있습니다.