Servidor MCP de tiempo de QuickBooks (actualización V2)
Este es un servidor MCP combinado que proporciona acceso a todas las funciones de la API de QuickBooks Time a través de una única interfaz. Combina la funcionalidad de cuatro servidores independientes:
- Herramientas de JobCode
- Informes y herramientas principales
- Herramientas de hoja de horas
- Herramientas de usuario
¡Me encantaría ayudar a mejorar este proyecto! ¡Me alegra poder finalmente contribuir!
Todo este proyecto se desarrolló y publicó utilizando inteligencia artificial (Anthropic, OpenAI, Llama/META), ya que personalmente no puedo escribir mucho código sin ayuda. Si bien se ha hecho todo lo posible para garantizar la calidad y la funcionalidad, puede haber imperfecciones o áreas de mejora. Agradezco cualquier comentario, corrección o sugerencia de la comunidad.
- Instalar dependencias:
- Cree un archivo
.env
con su token de acceso de QuickBooks Time:
Configuración del escritorio de Claude
Para usar este servidor con Claude Desktop, deberá configurarlo en la configuración de Claude Desktop. A continuación, se muestra un ejemplo de configuración:
Herramientas disponibles
Herramientas de JobCode
get_jobcodes
: Obtenga códigos de trabajo con opciones de filtrado avanzadas- Filtros básicos:
ids
: (matriz de números, opcional) Lista separada por comas de identificaciones de códigos de trabajoname
: (cadena, opcional) Filtrar por nombre de código de trabajo, admite coincidencia con comodín (*) desde el inicio de la cadenaactive
: (cadena, opcional) Filtrar por estado: "sí", "no", "ambos" (predeterminado: "sí")
- Filtros de tipo y jerarquía:
type
: (cadena, opcional) Filtrar por tipo: "regular", "pto", "paid_break", "unpaid_break", "all" (predeterminado: "regular")parent_ids
: (matriz de números, opcional) Filtrar por ID de código de trabajo principal. Valores especiales: 0 (solo nivel superior), -1 (todos los niveles)
- Filtros adicionales:
customfields
: (booleano, opcional) Incluir campos personalizados en la respuestamodified_before
: (cadena, opcional) Filtrar por fecha de modificación (formato ISO 8601)modified_since
: (cadena, opcional) Filtrar por fecha de modificación (formato ISO 8601)page
: (número) Número de página para paginaciónlimit
: (número) Resultados por página (máximo 200)
- Filtros básicos:
get_jobcode
: Obtener un código de trabajo específico por ID- Parámetros requeridos:
id
: (número) El ID del código de trabajo a recuperar
- Parámetros requeridos:
get_jobcode_hierarchy
: Obtener la estructura jerárquica completa del código de trabajo- Parámetros:
parent_ids
: (matriz de números, opcional) Filtrar por ID de padre. Valores: 0 (nivel superior), -1 (todos) o ID específicos.active
: (cadena, opcional) Filtrar por estado: "sí", "no", "ambos" (predeterminado: "sí")type
: (cadena, opcional) Filtrar por tipo: "regular", "pto", "paid_break", "unpaid_break", "all" (predeterminado: "regular")customfields
: (booleano, opcional) Incluir campos personalizados en la respuesta
- Parámetros:
Herramientas de hoja de horas
get_timesheets
: Obtener hojas de horas con filtrado- Parámetros obligatorios (al menos uno):
ids
: (matriz de números) Lista separada por comas de identificaciones de hojas de horasstart_date
: (cadena) Devuelve las hojas de horas en o después de esta fecha (AAAA-MM-DD)modified_before
: (cadena) Devuelve las hojas de horas modificadas antes de este momento (ISO 8601)modified_since
: (cadena) Devuelve las hojas de horas modificadas desde este momento (ISO 8601)
- Parámetros opcionales:
end_date
: (cadena) Devuelve las hojas de horas en o antes de esta fecha (AAAA-MM-DD)user_ids
: (matriz de números) Filtrar por ID de usuario específicosgroup_ids
: (matriz de números) Filtrar por ID de grupo específicosjobcode_ids
: (matriz de números) Filtrar por ID de código de trabajo específicos (incluye elementos secundarios)payroll_ids
: (matriz de números) Filtrar por ID de nómina específicoson_the_clock
: (cadena) Filtrar por estado de funcionamiento actual: "sí", "no", "ambos" (predeterminado: "no")jobcode_type
: (cadena) Filtrar por tipo: "regular", "pto", "paid_break", "unpaid_break", "all" (predeterminado: "all")page
: (número) Número de páginalimit
: (número) Resultados por página
- Parámetros obligatorios (al menos uno):
get_timesheet
: Obtener una hoja de horas específica por ID- Parámetros requeridos:
id
: (número) El ID de la hoja de horas a recuperar
- Parámetros requeridos:
get_current_timesheets
: Obtener las hojas de horas activas actualmente- Parámetros requeridos:
on_the_clock
: (cadena) Debe establecerse en "sí"
- Parámetros opcionales:
user_ids
: (matriz de números) Filtrar hojas de horas activas para usuarios específicosgroup_ids
: (matriz de números) Filtrar planillas de horas activas para usuarios en grupos específicosjobcode_ids
: (matriz de números) Filtrar hojas de horas activas para códigos de trabajo específicossupplemental_data
: (cadena) Incluye datos suplementarios: "sí", "no" (predeterminado: "sí")
- Parámetros requeridos:
Herramientas de usuario
get_users
: Obtener todos los usuarios con filtrado- Filtros de identificación de usuario:
ids
: (matriz de números, opcional) Filtrar por ID de usuario específicosnot_ids
: (matriz de números, opcional) Excluye identificaciones de usuario específicasemployee_numbers
: (matriz de números, opcional) Filtrar por números de empleadosusernames
: (matriz de cadenas, opcional) Filtrar por nombres de usuario específicos
- Filtros de grupo:
group_ids
: (matriz de números, opcional) Filtrar por membresía de gruponot_group_ids
: (matriz de números, opcional) Excluye usuarios de grupos específicos
- Filtros de estado e identificación:
payroll_ids
: (matriz de cadenas, opcional) Filtrar por números de identificación de nóminaactive
: (cadena, opcional) Filtrar por estado: "sí", "no", "ambos" (predeterminado: "sí")
- Filtros de nombre:
first_name
: (cadena, opcional) Filtrar por nombre (admite comodines *)last_name
: (cadena, opcional) Filtrar por apellido (admite comodines *)
- Filtros basados en el tiempo:
modified_before
: (cadena, opcional) Filtrar por fecha de modificación (ISO 8601)modified_since
: (cadena, opcional) Filtrar por fecha de modificación (ISO 8601)
- Paginación:
page
: (número, opcional) Número de página (predeterminado: 1)per_page
: (número, opcional) Resultados por página (predeterminado: 50, máximo: 50)
- Filtros de identificación de usuario:
get_user
: Obtener un usuario específico por ID- Parámetros requeridos:
id
: (número) El ID del usuario a recuperar
- Parámetros requeridos:
get_current_user
: Obtener el usuario autenticado actualmente- No se requieren parámetros
- Devuelve información detallada del usuario, que incluye:
- Información básica del perfil
- Datos de la empresa
- Saldos de PTO
- Permisos
- Campos personalizados
get_groups
: Obtener todos los grupos de QuickBooks Time- Parámetros opcionales:
ids
: (matriz de números) Filtrar por ID de grupo específicosactive
: (cadena) Filtrar por estado: "sí", "no", "ambos" (predeterminado: "sí")manager_ids
: (matriz de números) Filtra grupos por ID de usuario de administradorsupplemental_data
: (cadena) Incluye datos suplementarios: "sí", "no" (predeterminado: "sí")
- Devuelve información del grupo que incluye:
- Detalles básicos del grupo
- Asignaciones de gerente
- Configuración de la hoja de horas
- Configuración de entrada de tiempo
- Configuración de descanso
- Parámetros opcionales:
Herramientas de gestión de proyectos
get_projects
: Obtener proyectos con filtrado- Parámetros opcionales:
ids
: (matriz de números) Filtrar por ID de proyecto específicosactive
: (cadena) Filtrar por estado: "sí", "no", "ambos" (predeterminado: "sí")client_id
: (número) Filtrar por ID de clientejobcode_id
: (número) Filtrar por ID de código de trabajo asociadomodified_before
: (cadena) Filtrar por fecha de modificación (ISO 8601)modified_since
: (cadena) Filtrar por fecha de modificación (ISO 8601)page
: (número) Número de página (predeterminado: 1)per_page
: (número) Resultados por página (predeterminado: 50, máximo: 50)
- Devuelve información del proyecto, incluyendo:
- Detalles básicos del proyecto
- Asociaciones de clientes y códigos de trabajo
- Información presupuestaria
- Fechas y estado
- Campos personalizados
- Parámetros opcionales:
get_project_activities
: Obtener registros de actividad del proyecto- Parámetros opcionales:
project_ids
: (matriz de números) Filtrar actividades para proyectos específicosuser_ids
: (matriz de números) Filtrar actividades por usuarios específicosactivity_types
: (matriz de cadenas) Filtrar por tipos de actividad: "cambio_de_estado", "nota_añadida", "cambio_de_presupuesto", "cambio_de_fecha", "cambio_de_campo_personalizado"modified_before
: (cadena) Filtrar por fecha de modificación (ISO 8601)modified_since
: (cadena) Filtrar por fecha de modificación (ISO 8601)page
: (número) Número de página (predeterminado: 1)per_page
: (número) Resultados por página (predeterminado: 50, máximo: 50)
- Devuelve información de la actividad, incluyendo:
- Tipo de actividad y detalles
- Usuario que realizó el cambio
- Valores antiguos y nuevos
- Marcas de tiempo
- Parámetros opcionales:
Herramientas de informes
get_current_totals
: Obtener una instantánea de los totales actuales, incluidos los totales de turno y día- Parámetros opcionales:
user_ids
: (matriz de números) Filtrar totales para usuarios específicosgroup_ids
: (matriz de números) Filtrar totales para usuarios en grupos específicosjobcode_ids
: (matriz de números) Filtrar totales para códigos de trabajo específicoscustomfield_query
: (cadena) Filtrar por valores de campos personalizados en formato: <customfield_id>||
- Devoluciones:
- Totales en tiempo real para entradas de tiempo activas
- Duración y horas de inicio
- Código de trabajo asociado e información de usuario
- Valores de campos personalizados
- Parámetros opcionales:
get_payroll
: Obtener informe de nómina- Parámetros requeridos:
start_date
: (cadena) Inicio del período de pago (AAAA-MM-DD)end_date
: (cadena) Fin del período de pago (AAAA-MM-DD)
- Parámetros opcionales:
user_ids
: (matriz de números) Filtrar la nómina para usuarios específicosgroup_ids
: (matriz de números) Filtrar la nómina para usuarios en grupos específicosinclude_zero_time
: (booleano) Incluye usuarios sin entradas de tiempo (valor predeterminado: falso)
- Devoluciones:
- Tiempo total por tipo (regular, horas extra, tiempo doble, PTO)
- Desgloses diarios por usuario
- Recuentos de la hoja de horas
- Parámetros requeridos:
get_payroll_by_jobcode
: Obtener el informe de nómina agrupado por código de trabajo- Parámetros requeridos:
start_date
: (cadena) Inicio del período de pago (AAAA-MM-DD)end_date
: (cadena) Fin del período de pago (AAAA-MM-DD)
- Parámetros opcionales:
user_ids
: (matriz de números) Filtrar la nómina para usuarios específicosgroup_ids
: (matriz de números) Filtrar la nómina para usuarios en grupos específicosjobcode_ids
: (matriz de números) Filtrar la nómina para códigos de trabajo específicosjobcode_type
: (cadena) Filtrar por tipo: "regular", "pto", "receso remunerado", "receso no remunerado"include_zero_time
: (booleano) Incluye códigos de trabajo sin entradas de tiempo (valor predeterminado: falso)
- Devoluciones:
- Totales de tiempo por código de trabajo
- Desgloses por usuario dentro de cada código de trabajo
- Totales diarios por código de trabajo
- Parámetros requeridos:
get_project_report
: Obtenga un informe detallado del proyecto con entradas de tiempo- Parámetros requeridos:
start_date
: (cadena) Fecha de inicio en formato AAAA-MM-DDend_date
: (cadena) Fecha de finalización en formato AAAA-MM-DD
- Parámetros opcionales:
user_ids
: (matriz de números) Filtrar entradas de tiempo por usuarios específicosgroup_ids
: (matriz de números) Filtrar entradas de tiempo por grupos específicosjobcode_ids
: (matriz de números) Filtrar entradas de tiempo por códigos de trabajo específicosjobcode_type
: (cadena) Filtrar por tipo: "regular", "pto", "unpaid_break", "paid_break", "all" (predeterminado: "all")customfielditems
: (objeto) Filtrar por valores de campos personalizados en formato: {"customfield_id": ["valor1", "valor2"]}
- Devoluciones:
- Totales de tiempo del proyecto
- Desgloses por usuario y grupo
- Entradas de tiempo filtradas según criterios
- Parámetros requeridos:
Herramientas adicionales
get_custom_fields
: Obtener campos de seguimiento personalizados configurados en las tarjetas de tiempo- Parámetros:
ids
: (matriz de números) Filtrar por ID de campos personalizados específicosactive
: (cadena) Filtrar por estado: "sí", "no", "ambos"applies_to
: (cadena) Filtrar por tipo de aplicación: "hoja de horas", "código de trabajo", "usuario"value_type
: (cadena) Filtrar por tipo de valor: "lista administrada", "formato libre"page
: (número) Número de páginalimit
: (número) Resultados por página
- Parámetros:
get_last_modified
: Obtener las marcas de tiempo de la última modificación de los objetos- Parámetros:
types
: (matriz de cadenas) Tipos de objetos a comprobar (por ejemplo, ["hojas de tiempo", "códigos de trabajo", "usuarios"])
- Parámetros:
get_notifications
: Recibir notificaciones- Parámetros:
page
: (número) Número de páginalimit
: (número) Resultados por página
- Parámetros:
get_managed_clients
: Obtener clientes administrados- Parámetros:
page
: (número) Número de páginalimit
: (número) Resultados por página
- Parámetros:
Ejecución del servidor
El servidor se iniciará y escuchará las solicitudes JSON-RPC en stdin/stdout.
Licencia
Licencia MIT: consulte el archivo LICENCIA para obtener más detalles
Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios. Dado que este proyecto se desarrolló con la ayuda de IA, las aportaciones de la comunidad son especialmente valiosas para mejorar y mantener el código base.
Apoyo
Para problemas y solicitudes de funciones, utilice la página de problemas de GitHub o contácteme directamente en github.com/aallsbury.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Proporciona acceso unificado a la API de QuickBooks Time. Este servidor consolida múltiples servicios de QuickBooks Time en una única interfaz eficiente.
Related MCP Servers
- AsecurityAlicenseAqualityProvides Excel file manipulation capabilities. This server enables workbook creation, data manipulation, formatting, and advanced Excel features.Last updated -201,007PythonMIT License
- -securityFlicense-qualityAn MCP server providing timezone conversions and time-related operations via RESTful API endpoints, featuring comprehensive error handling and timezone database integration.Last updated -Python
- AsecurityAlicenseAqualityIntegration with Timeplus, a database for streaming data, such as Apache Kafka/PulsarLast updated -67PythonApache 2.0
- -securityAlicense-qualityProvides a standardized interface for interacting with Quickbase's JSON RESTful API through Claude and other MCP clients, supporting operations like querying records, managing table relationships, and handling file attachments.Last updated -270TypeScriptMIT License