Skip to main content
Glama

QuickBooks Time MCP 서버(V2 업데이트)

이는 단일 인터페이스를 통해 모든 QuickBooks Time API 기능에 액세스할 수 있는 통합 MCP 서버입니다. 4개의 개별 서버 기능을 결합했습니다.

  1. JobCode 도구

  2. 보고서 및 핵심 도구

  3. 근무 시간표 도구

  4. 사용자 도구

이 프로젝트 개선에 정말 도움을 드리고 싶어요! 드디어 뭔가 보답할 수 있어서 정말 기뻐요!

이 프로젝트는 인공지능(Anthropic, OpenAI, Llama/META)을 활용하여 개발 및 배포되었습니다. 저는 개인적으로 도움 없이는 많은 코드를 작성할 수 없기 때문입니다. 품질과 기능을 보장하기 위해 최선을 다했지만, 불완전하거나 개선이 필요한 부분이 있을 수 있습니다. 커뮤니티의 피드백, 수정 사항 또는 제안을 환영합니다.

  1. 종속성 설치:

지엑스피1

  1. QuickBooks Time 액세스 토큰으로 .env 파일을 만듭니다.

QB_TIME_ACCESS_TOKEN=your_access_token_here NODE_ENV=development

클로드 데스크톱 구성

이 서버를 Claude Desktop과 함께 사용하려면 Claude Desktop 설정에서 서버를 구성해야 합니다. 구성 예시는 다음과 같습니다.

{ "globalShortcut": "Ctrl+Q", "mcpServers": { "qb-time-tools": { "command": "python", "args": [ "./qb-time-mcp-server/main.py" ], "env": { "QB_TIME_ACCESS_TOKEN": "your_quickbooks_time_access_token_here" } } } }

Related MCP server: whattimeisit-mcp

사용 가능한 도구

JobCode 도구

  • get_jobcodes : 고급 필터링 옵션을 사용하여 작업 코드 가져오기

    • 기본 필터:

      • ids : (숫자 배열, 선택 사항) 작업 코드 ID의 쉼표로 구분된 목록

      • name : (문자열, 선택 사항) jobcode 이름으로 필터링, 문자열 시작부터 와일드카드(*) 매칭 지원

      • active : (문자열, 선택 사항) 상태별 필터링: "예", "아니요", "둘 다" (기본값: "예")

    • 유형 및 계층 필터:

      • type : (문자열, 선택 사항) 유형별 필터링: "일반", "휴가", "유급휴가", "무급휴가", "모두"(기본값: "일반")

      • parent_ids : (숫자 배열, 선택 사항) 상위 작업 코드 ID로 필터링합니다. 특수 값: 0(최상위 레벨만), -1(모든 레벨)

    • 추가 필터:

      • customfields : (부울, 선택 사항) 응답에 사용자 정의 필드 포함

      • modified_before : (문자열, 선택 사항) 수정 날짜로 필터링(ISO 8601 형식)

      • modified_since : (문자열, 선택 사항) 수정 날짜로 필터링(ISO 8601 형식)

      • page : (번호) 페이지 번호

      • limit : (숫자) 페이지당 결과 (최대 200개)

  • get_jobcode : ID로 특정 jobcode를 가져옵니다.

    • 필수 매개변수:

      • id : (숫자) 검색할 작업 코드의 ID

  • get_jobcode_hierarchy : 전체 jobcode 계층 구조를 가져옵니다.

    • 매개변수:

      • parent_ids : (숫자 배열, 선택 사항) 부모 ID로 필터링합니다. 값: 0(최상위), -1(전체), 또는 특정 ID

      • active : (문자열, 선택 사항) 상태별 필터링: "예", "아니요", "둘 다" (기본값: "예")

      • type : (문자열, 선택 사항) 유형별 필터링: "일반", "휴가", "유급휴가", "무급휴가", "모두"(기본값: "일반")

      • customfields : (부울, 선택 사항) 응답에 사용자 정의 필드 포함

근무 시간표 도구

  • get_timesheets : 필터링을 통해 타임시트 가져오기

    • 필수 매개변수(최소 하나):

      • ids : (숫자 배열) 쉼표로 구분된 타임시트 ID 목록

      • start_date : (문자열) 이 날짜(YYYY-MM-DD) 이후의 근무표를 반환합니다.

      • modified_before : (문자열) 이 시간 이전에 수정된 타임시트를 반환합니다(ISO 8601)

      • modified_since : (문자열) 이 시간 이후 수정된 타임시트를 반환합니다(ISO 8601)

    • 선택적 매개변수:

      • end_date : (문자열) 이 날짜(YYYY-MM-DD) 또는 그 이전의 근무 시간표를 반환합니다.

      • user_ids : (숫자 배열) 특정 사용자 ID로 필터링

      • group_ids : (숫자 배열) 특정 그룹 ID로 필터링

      • jobcode_ids : (숫자 배열) 특정 jobcode ID로 필터링(자식 포함)

      • payroll_ids : (숫자 배열) 특정 급여 ID로 필터링

      • on_the_clock : (문자열) 현재 작업 상태별 필터링: "예", "아니요", "둘 다"(기본값: "아니요")

      • jobcode_type : (문자열) 유형별 필터링: "정규", "휴가", "유급휴가", "무급휴가", "모두"(기본값: "모두")

      • page : (번호) 페이지 번호

      • limit : 페이지당 결과 수 (개수)

  • get_timesheet : ID로 특정 타임시트 가져오기

    • 필수 매개변수:

      • id : (숫자) 검색할 타임시트의 ID

  • get_current_timesheets : 현재 활성화된 타임시트를 가져옵니다.

    • 필수 매개변수:

      • on_the_clock : (문자열) "yes"로 설정해야 합니다.

    • 선택적 매개변수:

      • user_ids : (숫자 배열) 특정 사용자에 대한 활성 근무 시간표를 필터링합니다.

      • group_ids : (숫자 배열) 특정 그룹의 사용자에 대한 활성 근무 시간표를 필터링합니다.

      • jobcode_ids : (숫자 배열) 특정 jobcode에 대한 활성 근무 시간표를 필터링합니다.

      • supplemental_data : (문자열) 보충 데이터 포함: "yes", "no"(기본값: "yes")

사용자 도구

  • get_users : 필터링을 통해 모든 사용자 가져오기

    • 사용자 식별 필터:

      • ids : (숫자 배열, 선택 사항) 특정 사용자 ID로 필터링

      • not_ids : (숫자 배열, 선택 사항) 특정 사용자 ID 제외

      • employee_numbers : (숫자 배열, 선택 사항) 직원 번호로 필터링

      • usernames : (문자열 배열, 선택 사항) 특정 사용자 이름으로 필터링

    • 그룹 필터:

      • group_ids : (숫자 배열, 선택 사항) 그룹 멤버십으로 필터링

      • not_group_ids : (숫자 배열, 선택 사항) 특정 그룹의 사용자를 제외합니다.

    • 상태 및 식별 필터:

      • payroll_ids : (문자열 배열, 선택 사항) 급여 식별 번호로 필터링

      • active : (문자열, 선택 사항) 상태별 필터링: "예", "아니요", "둘 다"(기본값: "예")

    • 이름 필터:

      • first_name : (문자열, 선택 사항) 이름으로 필터링(와일드카드 * 지원)

      • last_name : (문자열, 선택 사항) 성으로 필터링(와일드카드 * 지원)

    • 시간 기반 필터:

      • modified_before : (문자열, 선택 사항) 수정 날짜로 필터링(ISO 8601)

      • modified_since : (문자열, 선택 사항) 수정 날짜로 필터링(ISO 8601)

    • 쪽수 매기기:

      • page : (번호, 선택사항) 페이지 번호 (기본값: 1)

      • per_page : (숫자, 선택 사항) 페이지당 결과(기본값: 50, 최대값: 50)

  • get_user : ID로 특정 사용자를 가져옵니다

    • 필수 매개변수:

      • id : (숫자) 검색할 사용자의 ID

  • get_current_user : 현재 인증된 사용자를 가져옵니다

    • 매개변수가 필요하지 않습니다

    • 다음을 포함한 자세한 사용자 정보를 반환합니다.

      • 기본 프로필 정보

      • 회사 세부 정보

      • PTO 잔액

      • 권한

      • 사용자 정의 필드

  • get_groups : QuickBooks Time에서 모든 그룹 가져오기

    • 선택적 매개변수:

      • ids : (숫자 배열) 특정 그룹 ID로 필터링

      • active : (문자열) 상태별 필터링: "예", "아니요", "둘 다"(기본값: "예")

      • manager_ids : (숫자 배열) 관리자 사용자 ID로 그룹 필터링

      • supplemental_data : (문자열) 보충 데이터 포함: "yes", "no"(기본값: "yes")

    • 다음을 포함한 그룹 정보를 반환합니다.

      • 기본 그룹 세부 정보

      • 관리자 배정

      • 근무표 설정

      • 시간 입력 설정

      • 브레이크 설정

프로젝트 관리 도구

  • get_projects : 필터링을 통해 프로젝트 가져오기

    • 선택적 매개변수:

      • ids : (숫자 배열) 특정 프로젝트 ID로 필터링

      • active : (문자열) 상태별 필터링: "예", "아니요", "둘 다"(기본값: "예")

      • client_id : (숫자) 클라이언트 ID로 필터링

      • jobcode_id : (숫자) 연관된 jobcode ID로 필터링

      • modified_before : (문자열) 수정 날짜로 필터링(ISO 8601)

      • modified_since : (문자열) 수정 날짜로 필터링(ISO 8601)

      • page : (번호) 페이지 번호 (기본값: 1)

      • per_page : (숫자) 페이지당 결과 (기본값: 50, 최대값: 50)

    • 다음을 포함한 프로젝트 정보를 반환합니다.

      • 기본 프로젝트 세부 정보

      • 클라이언트 및 작업 코드 연결

      • 예산 정보

      • 날짜 및 상태

      • 사용자 정의 필드

  • get_project_activities : 프로젝트 활동 로그 가져오기

    • 선택적 매개변수:

      • project_ids : (숫자 배열) 특정 프로젝트에 대한 활동 필터링

      • user_ids : (숫자 배열) 특정 사용자별로 활동을 필터링합니다.

      • activity_types : (문자열 배열) 활동 유형별 필터링: "status_change", "note_added", "budget_change", "date_change", "custom_field_change"

      • modified_before : (문자열) 수정 날짜로 필터링(ISO 8601)

      • modified_since : (문자열) 수정 날짜로 필터링(ISO 8601)

      • page : (번호) 페이지 번호 (기본값: 1)

      • per_page : (숫자) 페이지당 결과 (기본값: 50, 최대값: 50)

    • 다음을 포함한 활동 정보를 반환합니다.

      • 활동 유형 및 세부 정보

      • 변경을 한 사용자

      • 오래된 가치와 새로운 가치

      • 타임스탬프

보고서 도구

  • get_current_totals : 교대근무와 일일근무를 포함한 현재 총계 스냅샷을 가져옵니다.

    • 선택적 매개변수:

      • user_ids : (숫자 배열) 특정 사용자에 대한 총계를 필터링합니다.

      • group_ids : (숫자 배열) 특정 그룹의 사용자에 대한 총계를 필터링합니다.

      • jobcode_ids : (숫자 배열) 특정 jobcode에 대한 총계를 필터링합니다.

      • customfield_query : (문자열) <customfield_id>|| 형식으로 사용자 정의 필드 값으로 필터링합니다.

    • 보고:

      • 활성 시간 항목에 대한 실시간 총계

      • 기간 및 시작 시간

      • 연관된 작업 코드 및 사용자 정보

      • 사용자 정의 필드 값

  • get_payroll : 급여 보고서 받기

    • 필수 매개변수:

      • start_date : (문자열) 급여 기간 시작일(YYYY-MM-DD)

      • end_date : (문자열) 급여 기간 종료일(YYYY-MM-DD)

    • 선택적 매개변수:

      • user_ids : (숫자 배열) 특정 사용자에 대한 급여 필터링

      • group_ids : (숫자 배열) 특정 그룹의 사용자에 대한 급여 필터링

      • include_zero_time : (부울) 시간 항목이 없는 사용자를 포함합니다(기본값: false)

    • 보고:

      • 유형별 총 근무 시간(정규, 초과 근무, 이중 근무, 유급 휴가)

      • 사용자별 일일 분석

      • 근무표 카운트

  • get_payroll_by_jobcode : jobcode별로 그룹화된 급여 보고서 가져오기

    • 필수 매개변수:

      • start_date : (문자열) 급여 기간 시작일(YYYY-MM-DD)

      • end_date : (문자열) 급여 기간 종료일(YYYY-MM-DD)

    • 선택적 매개변수:

      • user_ids : (숫자 배열) 특정 사용자에 대한 급여 필터링

      • group_ids : (숫자 배열) 특정 그룹의 사용자에 대한 급여 필터링

      • jobcode_ids : (숫자 배열) 특정 jobcode에 대한 급여 필터링

      • jobcode_type : (문자열) 유형별 필터링: "정규", "휴가", "유급휴가", "무급휴가"

      • include_zero_time : (부울) 시간 항목이 없는 작업 코드를 포함합니다(기본값: false)

    • 보고:

      • 작업 코드별 총 시간

      • 각 작업 코드 내 사용자별 세부 정보

      • 작업 코드별 일일 총계

  • get_project_report : 시간 항목이 포함된 자세한 프로젝트 보고서 받기

    • 필수 매개변수:

      • start_date : (문자열) YYYY-MM-DD 형식의 시작 날짜

      • end_date : (문자열) YYYY-MM-DD 형식의 종료 날짜

    • 선택적 매개변수:

      • user_ids : (숫자 배열) 특정 사용자별로 시간 항목을 필터링합니다.

      • group_ids : (숫자 배열) 특정 그룹별로 시간 항목을 필터링합니다.

      • jobcode_ids : (숫자 배열) 특정 jobcode로 시간 항목을 필터링합니다.

      • jobcode_type : (문자열) 유형별 필터링: "정규", "유급휴가", "무급휴가", "유급휴가", "모두"(기본값: "모두")

      • customfielditems : (객체) {"customfield_id": ["value1", "value2"]} 형식의 사용자 정의 필드 값으로 필터링합니다.

    • 보고:

      • 프로젝트 시간 총계

      • 사용자 및 그룹별 세부 정보

      • 기준에 따라 필터링된 시간 항목

추가 도구

  • get_custom_fields : 타임카드에 구성된 사용자 정의 추적 필드 가져오기

    • 매개변수:

      • ids : (숫자 배열) 특정 사용자 정의 필드 ID로 필터링

      • active : (문자열) 상태별 필터링: "예", "아니요", "둘 다"

      • applies_to : (문자열) 애플리케이션 유형별 필터링: "timesheet", "jobcode", "user"

      • value_type : (문자열) 값 유형으로 필터링: "managed-list", "free-form"

      • page : (번호) 페이지 번호

      • limit : 페이지당 결과 수 (개수)

  • get_last_modified : 객체의 마지막 수정 타임스탬프를 가져옵니다.

    • 매개변수:

      • types : (문자열 배열) 확인할 객체 유형(예: ["timesheets", "jobcodes", "users"])

  • get_notifications : 알림 받기

    • 매개변수:

      • page : (번호) 페이지 번호

      • limit : 페이지당 결과 수 (개수)

  • get_managed_clients : 관리되는 클라이언트 가져오기

    • 매개변수:

      • page : (번호) 페이지 번호

      • limit : 페이지당 결과 수 (개수)

서버 실행

python main.py

서버가 시작되어 stdin/stdout에서 JSON-RPC 요청을 수신합니다.

특허

MIT 라이선스 - 자세한 내용은 라이선스 파일을 참조하세요.

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요. 이 프로젝트는 AI의 지원을 받아 개발되었으므로, 코드베이스 개선 및 유지 관리에 커뮤니티의 의견이 특히 중요합니다.

지원하다

이슈 및 기능 요청이 있으시면 GitHub 이슈 페이지를 이용하시거나 github.com/aallsbury에서 직접 연락해 주세요.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aallsbury/qb-time-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server