Enerflo MCP by usefulapi

Read customers, installs, tasks and notes; add leads and notes in Enerflo.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
86%
Calidad de los nombres
79%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (1)

  • LOWTool 'enerflo_list_customer_appointments' name length outside 3-30 rangeen enerflo_list_customer_appointments

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~3,549Tokens (definiciones de herramientas)
~1.4 KBTamaño de respuesta típico
Impacto significativo en la atención (2.77% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "enerflo": {
      "url": "https://enerflo.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://enerflo.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (20)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢enerflo_get_company

Return the company that owns the API key (id, name, contact, address, slug). Good first call. Enerflo API: GET /v3/authcheck.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada20 herramientas