Enerflo MCP by usefulapi
Read customers, installs, tasks and notes; add leads and notes in Enerflo.
사용해야 할까요
품질 및 안전성
발견 사항 (1)
- LOWenerflo_list_customer_appointments에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"enerflo": {
"url": "https://enerflo.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://enerflo.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (20)
🟢enerflo_get_company
Return the company that owns the API key (id, name, contact, address, slug). Good first call. Enerflo API: GET /v3/authcheck.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_list_offices
List the offices of the company. Enerflo API: GET /v3/offices.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_list_loan_products
List the finance options (lenders and loan products) of the company. Enerflo API: GET /v3/loan-products.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_list_products(company_id, active, is_battery)
List products (equipment and adders) of the company or of authorized companies. Enerflo API: GET /v3/company/products.
입력 스키마
{
"type": "object",
"properties": {
"company_id": {
"description": "Only products of this Enerflo company id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"active": {
"description": "true = only active products, false = only inactive.",
"type": "boolean"
},
"is_battery": {
"description": "true = only battery products, false = no batteries.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_list_install_statuses(company_id)
List all possible install project statuses. Enerflo API: GET /v3/install-statuses.
입력 스키마
{
"type": "object",
"properties": {
"company_id": {
"description": "Optional Enerflo company id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_list_users(company_id, user_role, pageSize, page)
List users of the company (and of authorized companies when company_id is not set). Enerflo API: GET /v3/users.
입력 스키마
{
"type": "object",
"properties": {
"company_id": {
"description": "Only users of this Enerflo company id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"user_role": {
"description": "Only users with this role.",
"type": "string",
"enum": [
"callcenter",
"callcentermanager",
"company",
"dealapproval",
"learnupon",
"officeadmin",
"ops",
"projectmanager",
"regionalmanager",
"agent",
"manager",
"scheduler",
"setter",
"sitesurveyor",
"solardesigns",
"solarinstaller",
"subcontractor",
"supercompany",
"surveyor"
]
},
"pageSize": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_get_user(user_id)
Get one user by Enerflo user id. Enerflo API: GET /v3/users/{id}.
입력 스키마
{
"type": "object",
"properties": {
"user_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Enerflo user id (from enerflo_list_users)."
}
},
"required": [
"user_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_list_customers(search, page, pageSize)
List customers and leads. The search term matches name, email or phone. Use pageSize and page for large lists. Enerflo API: GET /v1/customers.
입력 스키마
{
"type": "object",
"properties": {
"search": {
"description": "Search text for name, email or phone.",
"type": "string"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Records per page (1-100). Always set it: without it the API tries to return everything.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_get_customer(customer_id)
Get one customer by Enerflo customer id. Enerflo API: GET /v3/customers/{id}.
입력 스키마
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Enerflo customer id (from enerflo_list_customers)."
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_list_customer_notes(customer_id)
List all notes of a customer. Enerflo API: GET /v3/customers/{id}/notes.
입력 스키마
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Enerflo customer id."
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_list_customer_appointments(customer_id)
List all appointments of a customer. Enerflo API: GET /v3/customers/{id}/appointments.
입력 스키마
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Enerflo customer id."
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_list_customer_tasks(customer_id, page, pageSize)
List the tasks of one customer. Enerflo API: GET /v1/tasks/{customerId}.
입력 스키마
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Enerflo customer id."
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_list_installs(per_page, page, sort_by, filter_field, filter_operator, ...)
List install projects (default 25 per page, newest first). Optional single filter on one field, for example status_name eq 'Permitting'. Enerflo API: GET /v3/installs.
입력 스키마
{
"type": "object",
"properties": {
"per_page": {
"description": "Records per page (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"sort_by": {
"description": "Field to sort by; default order is descending. Prefix with '-' for ascending, for example '-created_at'.",
"type": "string"
},
"filter_field": {
"description": "Field to filter on.",
"type": "string",
"enum": [
"id",
"agent_user.email",
"agent_user.name",
"company.name",
"created_at",
"customer.email",
"customer.id",
"customer.name",
"customer.phone",
"customer.state",
"customer.city",
"customer.zip",
"customer.lead_source",
"current_milestone.title",
"last_completed_milestone.title",
"deal_type",
"epc_company.name",
"loan.lender",
"office.name",
"panel_count",
"progress",
"project_age",
"setter_user.email",
"setter_user.name",
"status_name",
"system_size",
"task_count",
"utility.company.name"
]
},
"filter_operator": {
"description": "Filter operator (default eq).",
"type": "string",
"enum": [
"contains",
"doesnotcontain",
"endswith",
"eq",
"gt",
"gte",
"in",
"isempty",
"isnotempty",
"isnullorempty",
"isnotnullorempty",
"isnull",
"isnotnull",
"lt",
"lte",
"neq",
"startswith"
]
},
"filter_value": {
"description": "Filter value.",
"type": "string"
},
"report_id": {
"description": "Id of a saved install report to apply.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_get_install(install_id)
Get one install project: company, customer, milestones and uploaded files. Enerflo API: GET /v3/installs/{id}.
입력 스키마
{
"type": "object",
"properties": {
"install_id": {
"type": "string",
"minLength": 1,
"description": "Install id (from enerflo_list_installs)."
}
},
"required": [
"install_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_find_install(customer_id, survey_id)
Find the install record of a customer. Give exactly one of customer_id or survey_id. Enerflo API: GET /v1/search/find_install.
입력 스키마
{
"type": "object",
"properties": {
"customer_id": {
"description": "Enerflo customer id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"survey_id": {
"description": "Enerflo survey id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_list_install_notes(epc_install_id, author_email, created_after, created_before, days, ...)
List install notes of the company, newest first, with optional filters. Enerflo API: GET /v3/installs/notes.
입력 스키마
{
"type": "object",
"properties": {
"epc_install_id": {
"description": "Only notes of this install id.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"author_email": {
"description": "Only notes by this author email.",
"type": "string"
},
"created_after": {
"description": "Only notes created after this date-time.",
"type": "string"
},
"created_before": {
"description": "Only notes created before this date-time.",
"type": "string"
},
"days": {
"description": "Only notes of the last N days.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Records per page (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢enerflo_list_tasks(orderBy, orderDir, pageSize, page, filter_field, ...)
List tasks of the whole company. Optional single filter, for example completed eq 0. Enerflo API: GET /v3/tasks/all.
입력 스키마
{
"type": "object",
"properties": {
"orderBy": {
"description": "Sort field (default created_at).",
"type": "string",
"enum": [
"created_at",
"customer_id",
"user_id",
"due_date",
"completed"
]
},
"orderDir": {
"description": "Sort direction (default desc).",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"pageSize": {
"description": "Records per page (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"filter_field": {
"description": "Field to filter on.",
"type": "string",
"enum": [
"completed",
"completed_at",
"customer.first",
"customer.id",
"customer.last",
"customer.name",
"created_at",
"due_date",
"user_id"
]
},
"filter_operator": {
"description": "Filter operator (default eq).",
"type": "string",
"enum": [
"contains",
"doesnotcontain",
"endswith",
"eq",
"gt",
"gte",
"in",
"isempty",
"isnotempty",
"isnullorempty",
"isnotnullorempty",
"isnull",
"isnotnull",
"lt",
"lte",
"neq",
"startswith"
]
},
"filter_value": {
"description": "Filter value.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴enerflo_add_customer_note(customer_id, note)
WRITE: add a note to a customer record. Each call creates a new note (not idempotent). Enerflo API: POST /v3/customers/{id}/notes.
입력 스키마
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Enerflo customer id."
},
"note": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "The note text."
}
},
"required": [
"customer_id",
"note"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴enerflo_add_install_note(install_id, note, customer_facing, milestone_id)
WRITE: add a note to an install project. Each call creates a new note (not idempotent). Set customer_facing to true only when the customer may read it in the customer portal. Enerflo API: POST /v3/installs/{id}/notes.
입력 스키마
{
"type": "object",
"properties": {
"install_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Install id (from enerflo_list_installs)."
},
"note": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "The note text."
},
"customer_facing": {
"description": "true = visible to the customer in the portal (default false).",
"type": "boolean"
},
"milestone_id": {
"description": "Optional milestone id to link the note to.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"install_id",
"note"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴enerflo_add_lead(first_name, last_name, address, unit, city, ...)
WRITE: create a customer/lead in Enerflo. Each call may create a new record (not idempotent): search with enerflo_list_customers first to avoid duplicates. Enerflo API: POST /v1/partner/action/lead/add.
입력 스키마
{
"type": "object",
"properties": {
"first_name": {
"type": "string",
"minLength": 1,
"description": "First name."
},
"last_name": {
"type": "string",
"minLength": 1,
"description": "Last name."
},
"address": {
"description": "Street address.",
"type": "string"
},
"unit": {
"description": "Unit or apartment.",
"type": "string"
},
"city": {
"description": "City.",
"type": "string"
},
"state": {
"description": "State code, for example NV.",
"type": "string"
},
"zip": {
"description": "ZIP code.",
"type": "string"
},
"email": {
"description": "Email address.",
"type": "string"
},
"mobile": {
"description": "Mobile phone number.",
"type": "string"
},
"lead_source": {
"description": "Lead source name.",
"type": "string"
},
"lead_status": {
"description": "Lead status name.",
"type": "string"
},
"office_name": {
"description": "Name of the office that owns the lead.",
"type": "string"
},
"assign_to_email": {
"description": "Email of the user to assign the lead to.",
"type": "string"
},
"add_note": {
"description": "Note to add to the lead.",
"type": "string"
},
"integration_record_id": {
"description": "Your own external id for the record.",
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}커뮤니티
증거