Skip to main content
Glama
saxyguy81

claude-safe-mcp

by saxyguy81

Keap MCP 서버

Coverage Python License

HTTP/2 지원, 포괄적인 진단, 대량 작업 등 고급 기능을 포함하여 Keap CRM 데이터와 상호 작용하기 위한 고성능 MCP(Model Context Protocol) 서버입니다.

기능

핵심 연락처 및 태그 관리

  • 포괄적인 연락처 관리 - 연락처 목록 조회, 검색, 필터링 및 상세 정보 가져오기

  • 고급 태그 작업 - 생성, 쿼리, 배치 작업을 포함한 전체 태그 수명 주기 관리

  • 배치 태그 작업 - 여러 연락처에 여러 태그를 효율적으로 적용하거나 제거

  • 사용자 지정 필드 작업 - 사용자 지정 필드 값으로 연락처 검색 및 사용자 지정 필드 대량 업데이트

  • 복합 논리 필터링 - 중첩된 조건을 포함한 AND, OR, NOT 연산자 지원

성능 및 최적화

  • HTTP/2 지원 - 연결 풀링을 통한 향상된 연결 성능

  • 지능형 속도 제한 - 적응형 백오프 전략을 사용한 일일 요청 제한

  • 쿼리 최적화 - 성능 분석을 통한 지능형 서버 측 대 클라이언트 측 필터링

  • 성능 모니터링 - 실시간 쿼리 분석 및 최적화 제안

  • 영구 캐싱 - API 호출을 줄이고 성능을 향상하기 위한 SQLite 기반 캐싱

고급 기능

  • 포괄적인 진단 - API 성능 지표, 시스템 모니터링 및 상태 확인

  • 향상된 오류 처리 - 다양한 오류 유형에 대한 지수 백오프를 포함한 강력한 재시도 로직

  • 대량 사용자 지정 필드 업데이트 - 여러 연락처에 걸쳐 사용자 지정 필드 값을 효율적으로 설정

  • 고급 필터 연산자 - BETWEEN, IN, SINCE, STARTS_WITH 등을 포함한 15개 이상의 연산자

  • ID 목록 작업 - 연락처 및 태그 ID 세트 작업을 위한 유틸리티 함수

Related MCP server: claude-cli-mcp

아키텍처

Keap MCP 서버는 간소화된 고성능 아키텍처를 사용합니다:

  • API 클라이언트 (src/api/client.py) - HTTP/2, 속도 제한 및 진단을 포함한 향상된 Keap API 통신

  • MCP 도구 (src/mcp/) - 최적화가 포함된 포괄적인 MCP 프로토콜 구현

  • 캐시 관리자 (src/cache/) - 지능형 무효화 기능을 갖춘 SQLite 기반 영구 캐싱

  • 최적화 엔진 (src/mcp/optimization/) - 쿼리 최적화 및 성능 분석

  • 스키마 (src/schemas/) - 데이터 유효성 검사 및 모델

  • 유틸리티 (src/utils/) - 연락처 처리 및 필터링을 위한 공유 유틸리티

MCP 도구

이 서버는 17개의 포괄적인 MCP 도구를 제공합니다:

연락처 작업

  1. list_contacts - 필터링 및 페이지 매김을 통한 연락처 목록 조회 (최적화됨)

  2. search_contacts_by_email - 이메일 주소로 연락처 찾기

  3. search_contacts_by_name - 이름으로 연락처 찾기

  4. get_contact_details - 특정 연락처에 대한 상세 정보 가져오기

  5. query_contacts_by_custom_field - 사용자 지정 필드 값으로 연락처 쿼리

태그 작업

  1. get_tags - 선택적 필터링을 사용하여 태그 검색

  2. get_tag_details - 특정 태그에 대한 상세 정보 가져오기

  3. get_contacts_with_tag - 특정 태그가 있는 연락처 가져오기

  4. create_tag - 새 태그 생성

태그 관리 (배치 작업)

  1. modify_tags - 연락처에서 태그 추가 또는 제거

  2. apply_tags_to_contacts - 배치 작업을 사용하여 여러 연락처에 여러 태그 적용

  3. remove_tags_from_contacts - 여러 연락처에서 여러 태그 제거

사용자 지정 필드 관리

  1. set_custom_field_values - 여러 연락처에 걸쳐 사용자 지정 필드 값을 대량 업데이트

고급 쿼리 및 성능 작업

  1. query_contacts_optimized - 최적화 및 성능 분석을 포함한 고급 연락처 쿼리

  2. analyze_query_performance - 쿼리 성능 및 최적화 잠재력 분석

시스템 작업

  1. get_api_diagnostics - 포괄적인 API 진단 및 성능 지표

유틸리티 작업

  1. intersect_id_lists - 여러 ID 목록의 교집합 찾기

시작하기

사전 요구 사항

  • Python 3.9 이상

  • Keap API 자격 증명

설치

  1. 저장소 복제:

    git clone https://github.com/yourusername/keapmcp.git
    cd keapmcp
  2. 종속성 설치:

    pip install -r requirements.txt
  3. Keap API 자격 증명 구성:

    • 애플리케이션은 구성을 위해 .env 파일을 사용합니다.

    • API 키는 keapsync에서 복사되었지만 필요한 경우 수정할 수 있습니다.

    • 구성에는 다음이 포함됩니다:

      KEAP_API_KEY=your_api_key_here
      KEAP_API_BASE_URL=https://api.infusionsoft.com/crm/rest/v1
      KEAP_MCP_HOST=127.0.0.1
      KEAP_MCP_PORT=5000
      KEAP_MCP_LOG_LEVEL=INFO
      KEAP_MCP_LOG_FILE=keap_mcp_server.log
      KEAP_MCP_CACHE_ENABLED=true
      KEAP_MCP_CACHE_TTL=3600

서버 실행

python run.py --host 127.0.0.1 --port 5000

명령줄 옵션:

  • --host - 바인딩할 호스트 (기본값: 127.0.0.1)

  • --port - 수신할 포트 (기본값: 5000)

  • --log-level - 로깅 수준 (기본값: INFO)

  • --log-file - 로그 파일 경로 (기본값: keap_mcp_server.log)

  • --no-console-log - 콘솔 로깅 비활성화

테스트 및 커버리지

Keap MCP 서버는 전체 CI/CD 파이프라인 통합을 통해 신뢰성과 올바른 작동을 보장하는 포괄적인 테스트 제품군을 포함합니다.

빠른 테스트

간편한 테스트 실행을 위해 Makefile을 사용하세요:

# Run all unit tests
make test

# Run tests with coverage reporting  
make coverage

# Generate HTML coverage report
make coverage-html

# Run service-specific tests
make test-services
make test-models

# Full development workflow
make dev-test

CI/CD 통합

이 프로젝트에는 자동화된 테스트 및 커버리지 보고가 포함되어 있습니다:

  • 지속적 통합: Python 3.9, 3.10, 3.11에서 테스트 실행

  • 커버리지 추적: 최소 60% 커버리지 강제 적용

  • 커밋 전 검사: 코드 서식 지정, 린팅 및 보안 검사

  • 커버리지 배지: 메인 브랜치에서 자동 업데이트

테스트 범주

  • 단위 테스트 (tests/unit/) - 포괄적인 모킹을 통한 개별 구성 요소 테스트

  • 통합 테스트 (tests/integration/) - 종단 간 기능 검증

  • 성능 테스트 (tests/performance/) - 로드 및 최적화 검증

  • API 검증 - Keap API 응답 형식 검증

커버리지 요구 사항

  • 현재 커버리지: 55% 통합 커버리지 (구성 요소별로 다름)

  • API 클라이언트: 포괄적인 모킹을 통해 핵심 기능 테스트 완료

  • MCP 도구: 모의 종속성을 사용한 통합 테스트

  • 캐시 시스템: 포괄적인 지속성 및 성능 테스트

  • 유틸리티: 연락처 처리 및 필터링 기능 테스트 완료

  • 최적화: 성능 분석 및 쿼리 최적화 포함

특정 테스트 실행

# Run all tests
python -m pytest tests/ -v

# With coverage reporting
python -m pytest tests/ --cov=src --cov-fail-under=90

# Integration tests (requires running server)
python -m pytest tests/integration/ -v

MCP 서버 사용

예시: 연락처 목록 조회 (최적화됨)

{
  "function": "list_contacts",
  "params": {
    "filters": [
      { "field": "email", "operator": "contains", "value": "@company.com" }
    ],
    "limit": 50,
    "include": ["id", "given_name", "family_name", "email"]
  }
}

참고: list_contacts는 이제 더 나은 성능을 위해 내부적으로 최적화 엔진을 사용합니다. 자세한 성능 지표는 query_contacts_optimized를 직접 사용하세요.

예시: 이메일로 검색

{
  "function": "search_contacts_by_email",
  "params": {
    "email": "john.doe@company.com",
    "include": ["id", "given_name", "family_name", "email", "tags"]
  }
}

예시: 태그 가져오기

{
  "function": "get_tags",
  "params": {
    "include_categories": true,
    "limit": 100
  }
}

예시: 배치 태그 작업

{
  "function": "apply_tags_to_contacts",
  "params": {
    "tag_ids": ["123", "456"],
    "contact_ids": ["1001", "1002", "1003"]
  }
}

예시: 사용자 지정 필드 쿼리

{
  "function": "query_contacts_by_custom_field",
  "params": {
    "field_id": "7",
    "field_value": "Engineering",
    "operator": "contains",
    "include": ["id", "given_name", "family_name", "email"]
  }
}

예시: 새 태그 생성

{
  "function": "create_tag",
  "params": {
    "name": "VIP Customer",
    "description": "High-value customer segment",
    "category_id": "2"
  }
}

예시: 대량 사용자 지정 필드 업데이트

{
  "function": "set_custom_field_values",
  "params": {
    "field_id": "7",
    "contact_ids": ["1001", "1002", "1003"],
    "common_value": "VIP Customer"
  }
}

또는 연락처별 개별 값 사용:

{
  "function": "set_custom_field_values",
  "params": {
    "field_id": "7",
    "contact_values": {
      "1001": "Gold Tier",
      "1002": "Silver Tier", 
      "1003": "Bronze Tier"
    }
  }
}

예시: API 진단

{
  "function": "get_api_diagnostics",
  "params": {}
}

예시: ID 목록 교집합

{
  "function": "intersect_id_lists",
  "params": {
    "lists": [
      {"list_id": "active_contacts", "item_ids": ["1", "2", "3", "4"]},
      {"list_id": "newsletter_subscribers", "item_ids": ["2", "3", "5", "6"]}
    ],
    "id_field": "item_ids"
  }
}

성능 기능

HTTP/2 지원

서버는 연결 풀링 및 keepalive 연결을 통해 향상된 성능을 위해 HTTP/2를 사용합니다.

속도 제한

  • 일일 요청 제한 (기본적으로 하루 25,000건)

  • 지능형 백오프 전략

  • 속도 제한 모니터링 및 진단

캐싱 전략

  • SQLite 기반 영구 캐싱

  • 지능형 캐시 무효화

  • TTL 기반 만료

  • 캐시 적중/미적중 추적

오류 처리

  • 재시도를 위한 지수 백오프

  • 시간 초과, 네트워크 및 HTTP 오류에 대한 다양한 전략

  • 포괄적인 오류 추적 및 진단

라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

F
license - not found
Not graded
quality - not tested
D
maintenance

Maintenance

0Releases (12mo)

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A security-focused tool that implements least-privilege credential injection for Claude Code by intercepting Bash and MCP tool calls to swap in minimum-privilege tokens. It enables secure execution of CLI commands and MCP operations by matching tool arguments against declarative YAML policies to prevent unauthorized access.
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables sandboxed file operations via MCP tools, resources, and prompts, with a Claude CLI client and Groq-powered web UI for file CRUD, search, code review, and documentation generation.
    MIT

View all related MCP servers

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/saxyguy81/claude-proxy'

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