Skip to main content
Glama
alihaider663

superoffice-mcp-server

by alihaider663

SuperOffice CRM Onsite — Model Context Protocol (MCP) 서버

SuperOffice CRM Onsite 설치 환경을 위해 TypeScript로 구축된 프로덕션 준비 완료 Model Context Protocol (MCP) 서버입니다. LLM 어시스턴트(Claude Desktop, Antigravity IDE, Cursor 및 기타 MCP 클라이언트)가 표준 SuperOffice REST WebAPI 엔드포인트를 통해 연락처, 개인, 약속, 지원 티켓, 사용자 정의 추가 테이블(y_*), 감사 로그를 원활하게 조회할 수 있게 해줍니다.


🌟 주요 기능

  • 네이티브 MCP stdio 전송: 데스크톱 및 터미널 AI 클라이언트와 직접 통합됩니다.

  • 🏢 회사 및 연락처 조회: 상세 회사 정보를 가져옵니다 (get_contact_by_id).

  • 👥 개인 검색: 이름과 이메일을 대상으로 퍼지 및 필터 기반 검색을 수행합니다 (search_persons).

  • 📅 캘린더 및 약속 인텔리전스: 사용자 할당과 함께 날짜 범위 필터링을 지원합니다 (get_recent_appointments).

  • 🎫 지원 티켓 관리: 최근 티켓을 가져오고 전체 티켓 메타데이터를 확인합니다 (get_latest_tickets, get_ticket_by_id).

  • 📊 사용자 정의 추가 테이블 엔진: 모든 사용자 정의 y_* 테이블을 동적으로 탐색하고 조회합니다 (list_extra_tables, query_extra_table).

  • 🛡️ 감사 및 로그 테이블 탐색기: y_logticket, y_logactivity, 시스템 이벤트 등의 감사 추적을 검사합니다 (list_log_tables).

  • 🔒 Onsite 지원: 강력한 기본 인증, 타임아웃 가드, 구성 가능한 자체 서명 인증서 처리를 제공합니다.

  • 🛡️ 우아한 장애 허용: 다중 계층 폴백 쿼리 전략(Archive Provider ➔ REST Entity API)으로 제로 크래시 동작을 보장합니다.


🏗️ 아키텍처

flowchart LR
    subgraph Client["Local Workstation / MCP Client"]
        Claude["Claude Desktop / Antigravity / Cursor"]
        MCP["SuperOffice MCP Server\n(Node.js / TypeScript)"]
        Claude <-->|stdio JSON-RPC| MCP
    end

    subgraph Server["SuperOffice Onsite Environment (VM)"]
        IIS["IIS Web Server / REST WebAPI\n/api/v1/"]
        SOApp["SuperOffice CRM Core"]
        SODb[("SuperOffice Database\n(Core + y_* Extra Tables)")]

        IIS --> SOApp --> SODb
    end

    MCP <-->|HTTP(S) Basic Auth\nREST / Archive / Entities| IIS

🛠️ 사용 가능한 MCP 도구

도구 이름

매개변수

설명

get_contact_by_id

contactId (숫자, 필수)

전체 회사/연락처 레코드를 가져옵니다 (부서, 사업자등록번호, 이메일, 전화, 카테고리, 업종).

search_persons

query (문자열, 필수)limit (숫자, 선택, 기본값: 25)

전체 이름, 이름/성 또는 이메일 주소로 개인을 검색하며 다중 전략 폴백을 사용합니다.

get_recent_appointments

fromDate (ISO 날짜, 선택)toDate (ISO 날짜, 선택)associateId (숫자, 선택)limit (숫자, 선택, 기본값: 50)

작업, 위치, 연락처, 완료 상태와 함께 날짜 범위 내의 캘린더 약속을 검색합니다.

get_ticket_by_id

ticketId (숫자, 필수)

카테고리, 상태, 생성자, 담당자, 연락처를 포함한 상세 지원 티켓 정보를 검색합니다.

get_latest_tickets

limit (숫자, 선택, 기본값: 10)

티켓 ID 기준 내림차순으로 최신 지원 티켓을 나열합니다.

list_extra_tables

없음

CRM 데이터베이스에 정의된 모든 사용자 정의 추가 테이블(y_* 테이블)을 나열합니다.

list_log_tables

없음

전용 로깅 및 감사 테이블(y_logticket, y_logactivity, y_msisdn_search_log 등)을 나열합니다.

query_extra_table

tableName (문자열, 필수)fields (문자열, 선택)limit (숫자, 선택, 기본값: 25)

Dynamic archive provider를 통해 모든 사용자 정의 추가 테이블에서 레코드를 동적으로 조회합니다.


🚀 빠른 시작

1. 사전 요구 사항

  • Node.js: v18.0.0 이상

  • SuperOffice CRM Onsite: REST WebAPI(/api/v1/)가 활성화된 상태로 설치

  • API 권한이 있는 활성 SuperOffice 사용자 계정

2. 클론 및 빌드

# Clone the repository
git clone https://github.com/your-username/superoffice-mcp-server.git
cd superoffice-mcp-server

# Install dependencies
npm install

# Compile TypeScript to dist/
npm run build

⚙️ 구성

환경 변수

변수

필수

설명

예시

SUPEROFFICE_API_URL

SuperOffice WebAPI의 기본 URL (끝에 슬래시 없음)

https://osl-so-iis2.ls.local/SuperOffice

SUPEROFFICE_USERNAME

SuperOffice 사용자 이름

admin

SUPEROFFICE_PASSWORD

SuperOffice 사용자 비밀번호

YourPassword123

NODE_TLS_REJECT_UNAUTHORIZED

아니요

자체 서명 또는 내부 CA SSL 인증서의 경우 0으로 설정

0

SUPEROFFICE_TIMEOUT_MS

아니요

HTTP 요청 타임아웃(밀리초)

30000


🔌 클라이언트 설정 가이드

1. Claude Desktop

claude_desktop_config.json에 다음 항목을 추가하세요:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "superoffice": {
      "command": "node",
      "args": [
        "C:\\path\\to\\superoffice-mcp-server\\dist\\index.js"
      ],
      "env": {
        "NODE_TLS_REJECT_UNAUTHORIZED": "0",
        "SUPEROFFICE_API_URL": "https://your-crm-server/SuperOffice",
        "SUPEROFFICE_USERNAME": "admin",
        "SUPEROFFICE_PASSWORD": "your-password"
      }
    }
  }
}

2. Antigravity IDE / 사용자 정의 MCP 구성 (mcp_config.json)

{
  "mcpServers": {
    "superoffice": {
      "command": "node",
      "args": [
        "C:\\Users\\aliha\\.gemini\\antigravity-ide\\scratch\\superoffice-mcp-server\\dist\\index.js"
      ],
      "env": {
        "NODE_TLS_REJECT_UNAUTHORIZED": "0",
        "SUPEROFFICE_API_URL": "https://osl-so-iis2.ls.local/SuperOffice",
        "SUPEROFFICE_USERNAME": "admin",
        "SUPEROFFICE_PASSWORD": "your-password"
      }
    }
  }
}

🧪 테스트 및 검증

PowerShell 또는 bash를 사용하여 터미널에서 직접 연결을 테스트할 수 있습니다:

# Set test environment
$env:SUPEROFFICE_API_URL="https://osl-so-iis2.ls.local/SuperOffice"
$env:SUPEROFFICE_USERNAME="admin"
$env:SUPEROFFICE_PASSWORD="your-password"
$env:NODE_TLS_REJECT_UNAUTHORIZED="0"

# Run server (logs to stderr, listens on stdin)
node dist/index.js

다음과 같은 결과가 표시되어야 합니다:

[superoffice-mcp] Server v1.1.0 started — connected to https://osl-so-iis2.ls.local/SuperOffice

📂 프로젝트 구조

superoffice-mcp-server/
├── .github/
│   └── workflows/
│       └── ci.yml               # Automated multi-version build testing
├── src/
│   └── index.ts                 # Main MCP Server implementation (8 tools)
├── .env.example                 # Environment variables template
├── .gitignore                   # Git ignore specifications
├── LICENSE                      # MIT License
├── package.json                 # Project manifest and scripts
├── tsconfig.json                # TypeScript compiler configuration
└── README.md                    # Comprehensive documentation

🛡️ 문제 해결

온사이트 서버가 내부 인증 기관(CA) 또는 자체 서명 인증서를 사용하는 경우, Node.js fetch는 기본적으로 중단됩니다. 다음을 확인하세요:

"NODE_TLS_REJECT_UNAUTHORIZED": "0"

MCP 구성의 env 섹션에 포함되어 있는지 확인하세요.

다음을 확인하세요:

  • 사용자 계정에 SuperOffice Admin에서 REST WebAPI 권한이 있는지 확인합니다.

  • IIS의 SuperOffice WebAPI 애플리케이션 풀에 기본 인증이 활성화되어 있는지 확인합니다.

서버는 표현력이 풍부한 쿼리를 위해 SuperOffice의 풍부한 Archive/DynamicArchive/FindPerson provider를 활용합니다. 특정 provider가 설치 환경의 사용자 역할에서 제한된 경우, 서버는 자동으로 간단한 REST entity 엔드포인트로 우아하게 대체됩니다.


📜 라이선스

이 프로젝트는 MIT License에 따라 라이선스가 부여됩니다.

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • Connect AI assistants to Stellary projects, boards, documents, and governed agent workflows.

  • Give AI agents access to form submissions — read, search, update, and process file attachments.

  • Connect AI to your Attio CRM. Manage contacts, companies, deals, and sales pipelines. Create tasks…

View all MCP Connectors

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/alihaider663/superoffice-mcp-server'

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