Webex 자동화
자연어 명령으로 Cisco Webex 협업 워크플로우를 자동화하세요. 메시지 전송, 룸 및 팀 관리, 웹훅 설정, 사용자 조회 등 모든 작업이 가능합니다.
툴킷 문서: composio.dev/toolkits/webex
설정
- 환경에 Rube MCP 서버를 추가하세요:
https://rube.app/mcp - 메시지가 표시되면 Webex 계정을 연결하세요 (Composio를 통한 OAuth 흐름)
- Webex 자동화를 위해 자연어 명령을 시작하세요
핵심 워크플로우
1. 룸 또는 개인에게 메시지 전송
모든 Webex 룸 또는 개인에게 일반 텍스트, 마크다운, 파일 첨부 또는 Adaptive Cards를 게시합니다.
도구: WEBEX_MESSAGING_CREATE_MESSAGE
주요 파라미터:
roomId-- 대상 룸 ID (WEBEX_MESSAGING_LIST_ROOMS로 찾기)toPersonEmail-- 대신 비공개 1:1 메시지 전송 (roomId와 상호 배타적)text-- 일반 텍스트 내용 (최대 7439바이트)markdown-- 마크다운 형식의 내용 (text보다 우선 적용)files-- 파일 첨부를 위한 공개 URL 목록 (메시지당 하나의 파일)attachments-- Adaptive Card JSON (메시지당 하나의 카드)parentId-- 스레드 응답으로 특정 메시지에 답장
예시 프롬프트:
"룸 Y2lz...에 배포 완료라는 마크다운 메시지와 릴리스 노트 링크를 보내줘"
2. 룸 목록 및 검색
속한 모든 룸을 유형, 팀별로 필터링하거나 활동별로 정렬하여 탐색합니다.
도구: WEBEX_MESSAGING_LIST_ROOMS
주요 파라미터:
type--direct(1:1) 또는group으로 필터링teamId-- 특정 팀의 룸으로 제한sortBy--id,lastactivity,created기준 정렬max-- 결과 제한 (1-1000, 기본값 100)
WEBEX_MESSAGING_GET_ROOM_DETAILS로 특정 룸의 전체 메타데이터(제목, 유형, 잠금 상태, 생성자, 타임스탬프)를 조회할 수 있습니다.
예시 프롬프트:
"Webex에서 가장 최근에 활동한 그룹 룸 10개를 보여줘"
3. 이벤트 기반 자동화를 위한 웹훅 관리
Webex 리소스가 변경될 때 실시간 HTTP POST 알림을 받는 웹훅을 만듭니다.
도구: WEBEX_WEBHOOKS_CREATE_WEBHOOK
주요 파라미터:
name-- 사람이 읽기 쉬운 웹훅 이름 (필수)targetUrl-- POST 알림을 수신할 URL (필수)resource-- 모니터링 대상:messages,rooms,memberships,meetings,recordings,meetingParticipants,telephony_calls등 (필수)event-- 트리거 유형:created,updated,deleted,started,ended,joined,left(필수)filter-- 알림 범위 지정 (예:roomId=<id>또는hostEmail=<email>)secret-- 페이로드 서명 검증을 위한 선택적 HMAC 비밀ownedBy-- 개인용creator또는 조직 전체 웹훅용org
지원 도구:
WEBEX_LIST_WEBHOOKS-- 선택적max및ownedBy필터로 등록된 모든 웹훅 나열WEBEX_WEBHOOKS_GET_WEBHOOK-- 특정 웹훅을webhookId로 조회
예시 프롬프트:
"'새 메시지'라는 웹훅을 만들어서 룸 Y2lz...에 메시지가 생성될 때마다 https://my-app.com/hook으로 POST하도록 해줘"
4. 팀 멤버십 관리
Webex 팀에 사람을 추가하고 선택적으로 중재자 권한을 부여합니다.
도구: WEBEX_MESSAGING_CREATE_TEAM_MEMBERSHIP
주요 파라미터:
teamId-- 사람을 추가할 팀 (필수)personEmail-- 추가할 사람의 이메일personId-- Webex 사람 ID (이메일 대체)isModerator-- 중재자 액세스 권한 부여 (기본값false)
WEBEX_LIST_TEAMS로 먼저 사용 가능한 팀을 확인하세요.
예시 프롬프트:
"[email protected]을 팀 Y2lz...의 중재자로 추가해줘"
5. 룸 멤버십 감사
룸에 누가 있는지 확인하고, 특정 사람의 멤버십을 확인하거나 팀별 멤버십을 나열합니다.
도구: WEBEX_MESSAGING_LIST_MEMBERSHIPS
주요 파라미터:
roomId-- 특정 룸의 모든 멤버 나열personEmail-- 사람이 멤버인지 확인 (roomId필요)personId-- Webex 사람 ID로 확인 (roomId필요)teamId-- 팀 연관성별 필터링max-- 결과 제한
예시 프롬프트:
"룸 Y2lz...의 모든 멤버를 나열하고 중재자가 누군지 알려줘"
6. 사람 검색 및 조회
Webex 조직에서 이메일, 표시 이름 또는 ID로 사람을 검색합니다.
도구: WEBEX_PEOPLE_LIST_PEOPLE
직접 메시지를 보내거나 팀에 멤버를 추가하기 전에 이름을 사람 ID로 확인하는 데 사용합니다.
예시 프롬프트:
"[email protected]의 Webex 사람 ID를 찾아줘"
알려진 문제점
| 문제점 | 세부 사항 |
|---|---|
| 웹훅 자동 비활성화 | 대상 URL이 HTTP 2xx로 응답해야 함; 5분 내 100회 실패 시 웹훅이 자동으로 비활성화됨 |
| 메시지 크기 제한 | text와 markdown 모두 최대 7439바이트 |
| 메시지당 하나의 파일 | files 배열은 목록을 받지만 실제로는 메시지당 하나의 첨부 파일만 지원됨 |
| 메시지당 하나의 카드 | 메시지당 하나의 Adaptive Card 첨부만 지원됨 |
| 상호 배타적 대상 | 메시지 전송 시 roomId와 toPersonEmail/toPersonId를 함께 사용할 수 없음 |
| 룸 업데이트 시 제목 필요 | WEBEX_UPDATE_ROOM은 잠금 상태나 팀만 변경할 때도 항상 title 파라미터가 필요함 |
| orgPublicSpaces 충돌 | 룸 목록 조회 시 orgPublicSpaces를 teamId, type, sortBy와 함께 사용할 수 없음 |
| 웹훅 읽기 권한 범위 | 웹훅을 만들려면 모니터링하는 리소스 유형에 대한 read 권한이 필요함 |
| 멤버십 필터에 roomId 필요 | Compliance Officer가 아닌 경우 personEmail과 personId 필터는 roomId가 필요함 |
빠른 참조
| 작업 | 도구 슬러그 | 주요 파라미터 |
|---|---|---|
| 메시지 전송 | WEBEX_MESSAGING_CREATE_MESSAGE | roomId, text/markdown, toPersonEmail |
| 룸 목록 | WEBEX_MESSAGING_LIST_ROOMS | type, sortBy, max |
| 룸 상세 조회 | WEBEX_MESSAGING_GET_ROOM_DETAILS | roomId |
| 룸 업데이트 | WEBEX_UPDATE_ROOM | roomId, title |
| 메시지 삭제 | WEBEX_MESSAGING_DELETE_MESSAGE | messageId |
| 메시지 상세 조회 | WEBEX_MESSAGING_GET_MESSAGE_DETAILS | messageId |
| 웹훅 생성 | WEBEX_WEBHOOKS_CREATE_WEBHOOK | name, targetUrl, resource, event |
| 웹훅 목록 | WEBEX_LIST_WEBHOOKS | max, ownedBy |
| 웹훅 조회 | WEBEX_WEBHOOKS_GET_WEBHOOK | webhookId |
| 팀 멤버 추가 | WEBEX_MESSAGING_CREATE_TEAM_MEMBERSHIP | teamId, personEmail, isModerator |
| 멤버십 목록 | WEBEX_MESSAGING_LIST_MEMBERSHIPS | roomId, personEmail, max |
| 사람 목록 | WEBEX_PEOPLE_LIST_PEOPLE | 이메일, displayName, ID 필터 |
| 팀 목록 | WEBEX_LIST_TEAMS | max |
Composio 제공