BaaS MCP 서버 회의
회의 내용, 녹음 내용, 일정 이벤트, 검색 기능 등 회의 데이터를 관리하기 위한 도구를 제공하는 MCP(Model Context Protocol) 서버입니다.
개요
이 프로젝트는 Claude와 Cursor와 같은 AI 비서가 회의 데이터에 접근하고 조작할 수 있도록 하는 모델 컨텍스트 프로토콜(MCP) 서버를 구현합니다. 다음과 같은 용도로 사용할 수 있는 도구와 리소스 세트를 제공합니다.
- 회의 봇 초대 : 회의를 자동으로 녹화하고 기록하는 봇을 비디오 회의에 생성하고 초대합니다.지엑스피1
- 회의 데이터 쿼리 : 전체 녹음을 보지 않고도 회의 기록을 검색하고 특정 정보를 찾을 수 있습니다.
- 캘린더 이벤트 관리 : 캘린더 항목과 예정된 회의를 보고 구성합니다.
- 녹음 정보 액세스 : 회의 녹음 및 해당 상태에 대한 메타데이터 가져오기
필수 조건
- Node.js(v16 이상)
- 엔피엠
- MeetingBaaS 계정 : 회사 이메일 주소를 사용하여 MeetingBaaS 계정에 액세스해야 합니다.
- 모든 로그, 봇 및 공유 링크는 동일한 회사 도메인(gmail.com과 같은 개인 이메일 제외)을 사용하는 동료가 사용할 수 있습니다.
- 이를 통해 모든 팀원이 조직의 모든 사람이 만든 회의 녹음 및 대본에 액세스할 수 있는 원활한 협업이 가능해집니다.
설치
- 저장소를 복제합니다.
- 종속성 설치:
- 프로젝트를 빌드하세요:
용법
서버를 시작합니다:
기본적으로 서버는 포트 7017에서 실행되며 MCP 엔드포인트는 http://localhost:7017/mcp
에 노출됩니다.
사용 가능한 도구
서버는 MCP 프로토콜을 통해 여러 도구를 제공합니다.
캘린더 도구
oauthGuidance
: Google 또는 Microsoft 캘린더에 대한 OAuth 설정에 대한 자세한 단계별 지침을 확인하세요.- 매개변수가 필요하지 않습니다
- OAuth 자격 증명을 얻고 캘린더 통합을 설정하기 위한 포괄적인 지침을 반환합니다.
listRawCalendars
: 통합 전에 Google 또는 Microsoft에서 사용 가능한 캘린더를 나열합니다.- 매개변수:
platform
("Google" 또는 "Microsoft"),clientId
,clientSecret
,refreshToken
- 사용 가능한 캘린더 목록을 ID와 기본 상태와 함께 반환합니다.
- 매개변수:
setupCalendarOAuth
: OAuth 자격 증명을 사용하여 캘린더를 통합합니다.- 매개변수:
platform
("Google" 또는 "Microsoft"),clientId
,clientSecret
,refreshToken
,rawCalendarId
(선택 사항) - 캘린더 세부 정보와의 성공적인 통합 확인을 반환합니다.
- 매개변수:
listCalendars
: 통합된 모든 캘린더를 나열합니다.- 매개변수가 필요하지 않습니다
- 이름, 이메일 주소, UUID가 포함된 모든 달력 목록을 반환합니다.
getCalendar
: 특정 캘린더 통합에 대한 자세한 정보를 가져옵니다.- 매개변수:
calendarId
(캘린더의 UUID) - 포괄적인 일정 세부 정보를 반환합니다.
- 매개변수:
deleteCalendar
: 캘린더 통합을 영구적으로 제거합니다.- 매개변수:
calendarId
(캘린더의 UUID) - 삭제 성공 확인이 반환됩니다.
- 매개변수:
resyncAllCalendars
: 연결된 모든 캘린더를 강제로 새로 고칩니다.- 매개변수가 필요하지 않습니다
- 동기화 작업의 상태를 반환합니다.
listUpcomingMeetings
: 캘린더에서 예정된 회의를 나열합니다.- 매개변수:
calendarId
,status
(선택 사항: "예정", "지난", "모두"),limit
(선택 사항) - 이름, 시간 및 녹음 상태가 포함된 회의 목록을 반환합니다.
- 매개변수:
listEvents
: 포괄적인 필터링 옵션을 사용하여 캘린더 이벤트를 나열합니다.- 매개변수:
calendarId
,startDateGte
,startDateLte
,attendeeEmail
등의 선택적 필터 - 풍부한 정보가 포함된 자세한 이벤트 목록을 반환합니다.
- 매개변수:
listEventsWithCredentials
: 쿼리에서 직접 제공된 자격 증명을 사용하여 캘린더 이벤트를 나열합니다.- 매개변수:
calendarId
,apiKey
,listEvents
와 동일한 선택적 필터 listEvents
와 동일한 세부 정보를 반환하지만 직접 인증을 사용합니다.
- 매개변수:
getEvent
: 특정 캘린더 이벤트에 대한 자세한 정보를 가져옵니다.- 매개변수:
eventId
(이벤트의 UUID) - 참석자 및 녹화 상태를 포함한 포괄적인 이벤트 세부 정보를 반환합니다.
- 매개변수:
scheduleRecording
: 봇이 다가올 회의를 녹화하도록 예약합니다.- 매개변수:
eventId
,botName
,botImage
,recordingMode
등의 선택적 설정 - 성공적인 일정 예약 확인을 반환합니다.
- 매개변수:
scheduleRecordingWithCredentials
: 쿼리에서 직접 제공된 자격 증명을 사용하여 녹음을 예약합니다.- 매개변수:
eventId
,apiKey
,botName
, 그리고scheduleRecording
과 동일한 선택적 설정 - 성공적인 일정 예약 확인을 반환합니다.
- 매개변수:
cancelRecording
: 이전에 예약된 녹음을 취소합니다.- 매개변수:
eventId
,allOccurrences
(선택 사항, 반복 이벤트의 경우) - 취소 성공 확인이 반환됩니다.
- 매개변수:
cancelRecordingWithCredentials
: 쿼리에서 직접 제공된 자격 증명을 사용하여 녹음을 취소합니다.- 매개변수:
eventId
,apiKey
,allOccurrences
(선택 사항) - 취소 성공 확인이 반환됩니다.
- 매개변수:
checkCalendarIntegration
: 캘린더 통합 상태를 확인하고 진단합니다.- 매개변수가 필요하지 않습니다
- 포괄적인 상태 보고서와 문제 해결 팁을 반환합니다.
회의 도구
createBot
: 화상 회의에 참여하여 회의를 녹화하고 필사할 수 있는 회의 봇을 생성합니다.- 매개변수:
meeting_url
(참여할 회의의 URL)name
(선택적 봇 이름)botImage
(봇 아바타 이미지에 대한 선택적 URL)entryMessage
(봇이 참여할 때 보낼 선택적 메시지)deduplicationKey
(동일한 회의에 참석하는 데 5분 제한을 무시하는 선택적 키)nooneJoinedTimeout
(아무도 참여하지 않을 경우 봇이 떠나는 시간 초과(초))waitingRoomTimeout
(봇이 대기실에 갇혔을 때 대기실을 떠나기 위한 시간 초과(초))speechToTextProvider
(선택적 전사 제공자: "Gladia", "Runpod" 또는 "Default")speechToTextApiKey
(음성-텍스트 제공자를 위한 선택적 API 키)streamingInputUrl
(오디오 입력을 스트리밍하기 위한 선택적 WebSocket URL)streamingOutputUrl
(오디오 출력을 스트리밍하기 위한 선택적 WebSocket URL)streamingAudioFrequency
(스트리밍을 위한 선택 주파수: "16khz" 또는 "24khz")extra
(회의 유형, 사용자 정의 요약 프롬프트, 검색 키워드 등 회의에 대한 추가 메타데이터가 포함된 선택적 개체)
- 반환: ID 및 참여 상태를 포함한 봇 세부 정보
- 매개변수:
getBots
: 모든 봇과 관련 회의를 나열합니다.getBotsByMeeting
: 특정 회의 URL에 대한 봇을 가져옵니다.getRecording
: 특정 봇/미팅에 대한 녹음 정보를 검색합니다.getRecordingStatus
: 진행 중인 녹음 상태를 확인합니다.getMeetingData
: 특정 회의에 대한 대본 및 녹음 데이터를 가져옵니다.- 매개변수:
meetingId
(데이터를 가져올 회의 ID) - 반환: 회의 녹화에 대한 정보(기간 및 대본 세그먼트 수 포함)
- 매개변수:
getMeetingDataWithCredentials
: 직접 API 자격 증명을 사용하여 대본 및 녹음 데이터를 가져옵니다.- 매개변수:
meetingId
(회의 ID),apiKey
(인증을 위한 API 키) - 반환:
getMeetingData
와 동일한 정보이지만 직접 인증을 사용합니다.
- 매개변수:
필사 도구
getMeetingTranscript
: 발표자 이름과 발표자별로 그룹화된 콘텐츠가 포함된 회의 기록을 가져옵니다.- 매개변수:
botId
(회의를 기록한 봇) - 반환: 화자 정보가 포함된 전체 대본(화자별로 그룹화된 문단 형식)
- 출력 예:
- 매개변수:
findKeyMoments
: 회의에서 중요한 순간을 자동으로 식별하고 링크를 공유합니다.- 매개변수:
botId
, 선택적meetingTitle
, 찾을topics
목록(선택 사항), 선택적maxMoments
- 반환: 주요 순간의 마크다운 형식 목록(링크 포함), 대본을 기반으로 자동 감지
- 수동 타임스탬프 선택 없이 AI 기반 분석을 사용하여 중요한 순간을 찾습니다.
- 매개변수:
QR 코드 도구
generateQRCode
: 봇 아바타로 사용할 수 있는 AI 생성 QR 코드 이미지를 생성합니다.- 매개변수:
type
: QR 코드 유형(URL, 이메일, 전화, SMS, 텍스트)to
: QR 코드의 목적지(URL, 이메일, 전화번호 또는 문자 메시지)prompt
: QR 코드를 맞춤 설정하는 AI 프롬프트입니다(최대 1000자). "API key: qrc_your_key" 또는 이와 유사한 문구를 입력하여 프롬프트 텍스트에 API 키를 직접 포함할 수 있습니다.style
: QR 코드의 스타일(style_default, style_dots, style_rounded, style_crystal)useAsBotImage
: 생성된 QR 코드를 봇 아바타로 사용할지 여부(기본값: true)template
: QR 코드에 대한 템플릿 ID(선택 사항)apiKey
: QR 코드 AI API 키(선택 사항, 제공하지 않으면 기본값 사용)
- 반환: joinMeeting 도구에서 직접 사용할 수 있는 생성된 QR 코드 이미지의 URL
- 사용 예:
- 프롬프트에 API 키가 있는 예:
- 형식 매개변수를 사용한 예:
- 매개변수:
링크 공유 도구
shareableMeetingLink
: 회의 녹화에 대한 깔끔하게 포맷된 공유 가능한 링크를 생성합니다.- 매개변수:
botId
, 선택 사항인timestamp
,title
,speakerName
및description
- 반환: 채팅에서 직접 공유할 수 있는 메타데이터가 포함된 마크다운 형식의 링크
- 예:
- 매개변수:
shareMeetingSegments
: 회의의 여러 중요한 순간에 대한 링크 목록을 만듭니다.- 매개변수:
botId
및 타임스탬프, 스피커, 설명이 포함된segments
배열 - 반환: 각 순간에 대한 직접 링크가 포함된 마크다운 형식의 세그먼트 목록
- 긴 회의의 목차를 만드는 데 유용합니다.
- 매개변수:
예제 워크플로
회의 녹음
- 다가오는 회의를 위한 봇을 만들어보세요:
- 봇은 자동으로 회의에 참여하고 녹음을 시작합니다.
- 녹음 상태 확인:
캘린더 통합 및 자동 기록
- OAuth 자격 증명을 얻는 방법에 대한 지침을 받으세요.
- 통합 전에 사용 가능한 캘린더를 나열하세요.
- 특정 캘린더와 캘린더 통합을 설정합니다.
- 다가오는 회의를 확인하세요:
- 다가오는 회의에 대한 녹화 일정을 예약하세요:
- 캘린더에 예약된 모든 녹화를 확인하세요:
- 이전에 예약된 녹화를 취소합니다.
- 회의가 누락된 경우 일정 데이터를 새로 고칩니다.
간소화된 캘린더 통합
캘린더 통합을 더 간편하게 하려면 Claude Desktop 구성 파일에서 캘린더 OAuth 자격 증명을 직접 구성할 수 있습니다.
- 구성 파일을 편집하세요:
- botConfig에
calendarOAuth
섹션을 추가합니다. - 파일을 저장하고 Claude Desktop을 다시 시작하면 일정이 자동으로 통합됩니다.
이 방법을 사용하면 OAuth 설정 도구를 수동으로 호출할 필요가 없으므로 일정 통합을 한 번의 구성 작업으로 처리할 수 있습니다.
참고: 캘린더 통합은 완전히 선택 사항입니다. 설정에서
calendarOAuth
섹션을 생략하면 캘린더를 연결하지 않고도 Meeting BaaS를 사용할 수 있습니다. 캘린더 통합은 예정된 회의에 대한 액세스를 제공하고 캘린더 일정을 자동으로 기록하여 사용자 경험을 향상시킵니다.
회의 내용 분석
- 회의의 전체 내용을 확인하세요:
- 회의에서 중요한 순간을 찾으세요.
- 회의의 특정 순간을 공유하세요.
직접 자격 증명 도구 사용
API 자격 증명을 쿼리에 직접 제공할 수 있습니다.
- 직접 자격 증명이 있는 이벤트 나열:
- 직접 자격 증명으로 녹음 일정을 예약하세요.
- 직접 자격 증명을 사용하여 녹음을 취소합니다.
- 직접 자격 증명을 사용하여 회의 데이터를 가져옵니다.
AI가 생성한 QR 코드를 봇 아바타로 활용
- 귀하의 연락처 정보와 맞춤형 디자인을 담은 QR 코드를 생성하세요.
- 생성된 QR 코드를 회의에서 봇 아바타로 사용하세요.
- 간편한 공유를 위해 회의 링크가 포함된 QR 코드를 생성하세요.
회의 녹화에 액세스하기
회의 녹화 내용은 봇 ID를 사용하여 Meeting BaaS 뷰어를 통해 직접 액세스할 수 있습니다.
예를 들어:
이 뷰어는 다음을 제공합니다.
- 회의 영상 녹화
- 화자 식별을 통한 동기화된 대본
- 스피커 또는 주제별 탐색
- 팀원과 직접 링크 공유
createBot
, getBots
, 검색 도구를 사용하면 녹화본에 쉽게 액세스할 수 있는 뷰어 URL을 구성하는 데 사용할 수 있는 봇 ID를 받게 됩니다.
중요 : 모든 회의 녹화본과 링크는 동일한 회사 이메일 도메인(예: @yourcompany.com)을 사용하는 동료와 자동으로 공유됩니다. 이를 통해 전체 팀이 개별적인 권한 없이 녹화본에 액세스할 수 있으며, 조직 내 모든 구성원이 회의 관련 정보에 접근할 수 있는 협업 환경을 조성할 수 있습니다.
구성
서버는 환경 변수를 통해서 구성하거나 src/config.ts
파일을 편집하여 구성할 수 있습니다.
주요 구성 옵션:
PORT
: 서버가 수신하는 포트(기본값: 7017)API_BASE_URL
: Meeting BaaS API의 기본 URLDEFAULT_API_KEY
: 테스트를 위한 기본 API 키
Claude Desktop과 통합
Claude Desktop과 통합하려면:
- Claude Desktop 구성 파일을 편집합니다.
- Meeting BaaS MCP 서버 구성을 추가합니다.참고:
/path/to/meeting-mcp
로컬 저장소 경로로 바꾸고YOUR_API_KEY
실제 API 키로 바꾸세요.중요: 회사 이메일 계정과 연결된 API 키를 사용하고 있는지 확인하세요. 모든 녹음 파일, 봇 로그 및 공유 링크는 동일한 이메일 도메인을 사용하는 동료가 자동으로 접근하여 원활한 팀 협업을 지원합니다.
QR 코드 API에 대한 참고 사항: QR 코드 API는 Meeting BaaS API와 동일한 헤더 이름(
x-api-key
)을 사용하지만, 별도로 설정해야 합니다. QR 코드 생성 기능을 사용하려면 아래 "QR 코드 API 키 구성" 섹션에 설명된 방법 중 하나를 사용해야 합니다. 예를 들어 환경 변수를 설정하거나 프롬프트에 키를 직접 포함하는 방법이 있습니다. - Claude Desktop을 다시 시작합니다.
구성 설명:
command
사용할 셸을 지정합니다.args
에는 명령줄 인수가 포함됩니다.- 프로젝트 디렉토리로
cd
- 오류 출력을 stderr로 리디렉션하여 프로젝트를 빌드합니다.
- Claude Desktop에서 실행 중임을 나타내기 위해
MCP_FROM_CLAUDE=true
환경 변수로 서버를 실행합니다.
- 프로젝트 디렉토리로
headers
인증을 위한 API 키가 포함되어 있습니다.x-api-key
: 미팅 서비스에 접속하기 위한 Meeting BaaS API 키
botConfig
사용하면 봇의 모양과 동작을 사용자 지정할 수 있습니다.name
: 회의에서 봇에 표시되는 이름(기본값: "Claude Assistant")image
: 봇의 아바타로 사용할 공개적으로 접근 가능한 이미지의 URL(선택 사항)entryMessage
: 봇이 회의에 참여할 때 보낼 메시지(선택 사항)deduplicationKey
: 동일한 회의에 참석하는 데 5분 제한을 무시하는 고유 키(선택 사항)nooneJoinedTimeout
: 참가자가 참여하지 않을 경우 봇이 종료되는 시간(초) (선택 사항)waitingRoomTimeout
: 봇이 대기실에 갇혔을 때 나갈 때까지의 시간 제한(초) (선택 사항)speechToTextProvider
: 텍스트 변환에 사용할 공급자("Gladia", "Runpod", "Default")(선택 사항)speechToTextApiKey
: 필요한 경우 음성-텍스트 제공자의 API 키(선택 사항)calendarOAuth
: OAuth 자격 증명을 통한 직접 캘린더 통합(선택 사항)platform
: "Google" 또는 "Microsoft"clientId
: OAuth 클라이언트 IDclientSecret
: OAuth 클라이언트 비밀번호refreshToken
: OAuth 새로 고침 토큰rawCalendarId
: 통합할 특정 달력의 선택적 ID
extra
: AI 기능을 향상시키기 위한 회의에 대한 추가 메타데이터(선택 사항)- 예: GXP38
extra
필드는 매우 유연합니다. 조직과 사용 사례에 적합한 구조화된 메타데이터를 추가할 수 있습니다.
커서와의 통합
커서와 통합하려면:
- 커서 열기
- 설정으로 이동
- "모델 컨텍스트 프로토콜"로 이동
- 다음을 사용하여 새 서버를 추가합니다.
- 이름: "BaaS MCP 회의"
- 유형: "sse"
- 서버 URL: " http://localhost:7017/mcp "
- 인증이 필요한 경우 헤더를 추가하세요.
개발
짓다
MCP Inspector로 테스트
개발 모드(자동 재로드 포함)
로그 관리
서버에는 다음과 같은 최적화된 로깅이 포함되어 있습니다.
이 명령은:
- 불필요한 로그 파일과 캐시된 데이터를 정리합니다.
- 로그에서 반복되는 ping 메시지를 필터링합니다.
- 중요한 로그 정보를 보존하면서 디스크 사용량을 줄입니다.
- 장기 실행 서버에 대해 더 작은 로그 공간을 유지합니다.
프로젝트 구조
src/index.ts
: 메인 진입점src/tools/
: 도구 구현src/resources/
: 리소스 정의src/api/
: Meeting BaaS 백엔드용 API 클라이언트src/types/
: TypeScript 유형 정의src/config.ts
: 서버 구성src/utils/
: 유틸리티 함수logging.ts
: 로그 필터링 및 관리tinyDb.ts
: 영구적인 봇 추적 데이터베이스
입증
서버는 인증을 위해 x-api-key
헤더에 API 키가 있어야 합니다. 구성 파일에서 기본 API 키를 설정할 수 있습니다.
또한 "WithCredentials"라는 이름의 많은 도구에서 직접 인증을 지원하며, 이를 통해 헤더가 아닌 매개변수로 API 키를 직접 제공할 수 있습니다.
특허
QR 코드 API 키 구성
QR 코드 생성 도구를 사용하려면 QR Code AI API의 API 키가 필요합니다. API 키를 제공하는 방법은 여러 가지가 있습니다.
- 프롬프트에 직접 입력:
generateQRCode
도구를 사용할 때 API 키를 프롬프트 텍스트에 직접 포함합니다. 예: "API 키: qrc_your_key를 사용하여 내 웹사이트 https://example.com 에 대한 QR 코드를 생성하세요" - 매개변수로 :
generateQRCode
도구를 사용할 때 API 키를apiKey
매개변수로 제공하세요. - 환경 변수 :
QRCODE_API_KEY
환경 변수를 설정합니다. - Claude Desktop 구성 : API 키를 다음 위치에 있는 Claude Desktop 구성 파일에 추가하세요.
- Mac/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
구성 예:
- Mac/Linux:
도구는 위에 나열된 순서대로 API 키를 확인합니다. API 키가 제공되지 않으면 기본 API 키가 사용 가능한 경우 해당 키가 사용됩니다.
QR Code AI API 에 가입하면 API 키를 얻을 수 있습니다.
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
AI 도우미가 회의 봇 생성, 대본 검색, 일정 이벤트 구성 등 회의 데이터를 관리할 수 있도록 하는 모델 컨텍스트 프로토콜 서버입니다.
Related MCP Servers
- -securityFlicense-qualityA versatile Model Context Protocol server that enables AI assistants to manage calendars, track tasks, handle emails, search the web, and control smart home devices.Last updated -2Python
- -securityFlicense-qualityA Model Context Protocol server that provides persistent task management capabilities for AI assistants, allowing them to create, update, and track tasks beyond their usual context limitations.Last updated -1TypeScript
- -security-license-qualityA Model Context Protocol server that enables AI assistants like Claude to track events, page views, user signups, set user properties, and track revenue in Amplitude analytics.Last updated -JavaScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI agents to join and interact with online meetings (Zoom and Google Meet), capturing transcripts and recordings to generate meeting summaries.Last updated -3TypeScriptMIT License