생산성 통합 도구
Notion, Jira, Google Workspace, Microsoft 365, Composio, LinkedIn 도구.
이 페이지는 Revka 에이전트가 팀에서 이미 사용 중인 SaaS 시스템을 읽고 쓸 수 있도록 지원하는 생산성 통합 도구(notion, jira, google_workspace, microsoft365, composio, linkedin)를 설명합니다. 각 도구는 다수의 액션을 디스패치하는 단일 도구이며, 모두 opt-in 방식으로 자격 증명이 필요합니다. 즉, config.toml에서 활성화하거나(Composio의 경우 API 키 설정) 하지 않으면 에이전트에게 표시되지 않습니다.
이 페이지는 도구가 허용하는 정확한 액션과 이를 활성화하는 설정 키를 확인할 때 참조하십시오. 전체 도구 카탈로그는 도구 개요를 참조하고, MCP를 통해 외부 CLI에 동일한 도구를 노출하는 방법은 Revka를 MCP 서버로 및 통합 카탈로그를 참조하십시오. 대시보드의 통합 페이지에서 실시간 상태를 확인할 수 있습니다(스킬, 도구 및 통합 페이지 참조). 여기서 설명하는 설정 키는 설정: 채널, 도구 및 통합에서도 다룹니다.
자격 증명 해석 방식
섹션 제목: “자격 증명 해석 방식”대부분의 도구는 설정 시크릿을 두 곳에서 허용합니다. config.toml의 설정 키와 환경 변수입니다. 둘 다 설정된 경우 설정 키가 비어 있지 않으면 설정 키가 우선하며, 그렇지 않으면 환경 변수가 사용됩니다. Revka는 .env를 자동으로 로드하지 않으므로 직접 변수를 내보내거나 direnv 같은 도구를 사용하십시오. secrets.encrypt = true로 시크릿을 저장 시 암호화하십시오(시크릿, 페어링 및 기기 인증 참조).
| 도구 | 설정 키 | 환경 변수 |
|---|---|---|
notion | notion.api_key | NOTION_API_KEY |
jira | jira.api_token | JIRA_API_TOKEN |
composio | composio.api_key | COMPOSIO_API_KEY |
microsoft365 | microsoft365.client_secret | — (Azure 앱 시크릿) |
linkedin | ([linkedin] 참조) | LINKEDIN_* |
google_workspace | — (gws CLI 자체 인증 사용) | — |
Notion
섹션 제목: “Notion”notion 도구는 Notion REST API(https://api.notion.com/v1, API 버전 2022-06-28, 타임아웃 30초)를 통해 Notion 워크스페이스를 읽고 씁니다.
[notion]enabled = trueapi_key = "" # or set NOTION_API_KEY접근하려는 Notion 워크스페이스 또는 페이지에 통합을 초대해야 합니다. 공유 설정은 Revka가 아닌 Notion에서 관리합니다.
액션 (action 필드):
| 액션 | 정책 | 목적 |
|---|---|---|
search | Read | 워크스페이스에서 페이지 및 데이터베이스 검색 |
query_database | Read | 필터로 데이터베이스 쿼리 |
read_page | Read | 페이지 속성 읽기 |
read_block_children | Read | 페이지 내부 블록 읽기 |
create_page | Act | 새 페이지 생성 |
update_page | Act | 페이지 속성 업데이트 |
append_block | Act | 페이지에 블록 추가 |
{ "action": "search", "query": "product roadmap" }Jira
섹션 제목: “Jira”jira 도구는 Jira REST API v3를 통해 이슈를 읽고 검색하며 댓글을 작성합니다. 이메일과 API 토큰을 사용하여 Atlassian Cloud(https://yourcompany.atlassian.net)와 연동됩니다.
[jira]enabled = truebase_url = "https://yourcompany.atlassian.net"email = "[email protected]"api_token = "" # or set JIRA_API_TOKENtimeout_secs = 30allowed_actions = ["get_ticket", "search_tickets", "comment_ticket", "list_projects", "myself"]액션은 allowed_actions로 제한됩니다 — get_ticket만 항상 사용 가능하며, 다른 액션은 명시적으로 목록에 추가해야 합니다.
| 액션 | allowed_actions 필요 여부 | 정책 | 목적 |
|---|---|---|---|
get_ticket | 항상 허용 | Read | 키로 이슈 가져오기 |
search_tickets | opt-in | Read | JQL로 이슈 검색 |
comment_ticket | opt-in | Act | 이슈에 댓글 작성 |
list_projects | opt-in | Read | 접근 가능한 프로젝트 목록 조회 |
myself | opt-in | Read | 설정된 자격 증명 확인 |
comment_ticket은 Jira를 변경하므로 approved: true 또는 감독 모드 승인이 필요합니다. 이슈 키는 요청 전에 형식 유효성이 검사됩니다.
{ "action": "search_tickets", "jql": "project = BACKEND AND status = 'In Progress'" }Google Workspace
섹션 제목: “Google Workspace”google_workspace 도구는 외부 gws CLI를 래핑하여 에이전트가 Drive, Gmail, Calendar, Sheets, Docs 등에 구조화된 방식으로 접근할 수 있게 합니다. 셸 접근이 필요하며, gws 바이너리를 먼저 설치하고 인증해야 합니다.
npm install -g @googleworkspace/cligws auth login[google_workspace]enabled = truedefault_account = "[email protected]"allowed_services = ["gmail", "drive", "calendar", "sheets", "docs"]credentials_path = ""rate_limit_per_minute = 60timeout_secs = 30audit_log = false
[[google_workspace.allowed_operations]]service = "gmail"resource = "users"sub_resource = "messages"methods = ["list", "get"]| 키 | 타입 | 기본값 | 설명 |
|---|---|---|---|
enabled | bool | false | 도구 등록 |
allowed_services | array | (내장 기본 세트) | 에이전트가 호출할 수 있는 서비스 |
allowed_operations | array of tables | [] | 리소스별 세부 메서드 허용 목록 |
default_account | string | "" | 대리 실행할 계정 |
credentials_path | string | "" | 자격 증명 경로 |
rate_limit_per_minute | int | 60 | 클라이언트 측 요청 속도 제한 |
timeout_secs | int | 30 | 호출당 타임아웃 |
audit_log | bool | false | 모든 Workspace 작업의 감사 로그 기록 |
호출 시 service, resource, method를 지정합니다.
{ "service": "gmail", "resource": "messages", "method": "list", "params": { "maxResults": 10, "q": "is:unread" }}Microsoft 365
섹션 제목: “Microsoft 365”microsoft365 도구는 Microsoft Graph API를 호출하여 Outlook 메일, Teams 메시지, Calendar, OneDrive, SharePoint에 접근합니다. 관련 Graph 권한이 있는 Azure AD 앱 등록이 필요합니다.
[microsoft365]enabled = truetenant_id = "your-tenant-id"client_id = "your-app-id"client_secret = "" # required for client_credentials flowauth_flow = "device_code" # "client_credentials" | "device_code"scopes = ["Mail.Read", "Calendars.Read", "Files.Read"]token_cache_encrypted = trueuser_id = "me"| 키 | 설명 |
|---|---|
tenant_id / client_id | Azure AD 앱 등록 정보 |
client_secret | client_credentials 플로우에 필요 |
auth_flow | client_credentials(앱 전용) 또는 device_code(첫 사용 시 대화형) |
scopes | 앱이 보유한 Graph 권한 스코프 |
token_cache_encrypted | 캐시된 토큰을 저장 시 암호화 |
user_id | 대리 실행할 사용자(기본값 me) |
토큰 캐시는 워크스페이스가 아닌 config.toml 옆에 저장됩니다. device_code 플로우는 처음 실행 시 브라우저 인증을 요청하며, client_credentials는 비대화형이지만 시크릿이 필요합니다.
액션 (action 필드): mail_list, mail_send, teams_message_list, calendar_list, calendar_create, onedrive_list, onedrive_download, sharepoint_list. 목록은 기본적으로 최대 25개 항목을 반환하며, OneDrive 다운로드는 10MB로 제한됩니다.
{ "action": "mail_list", "folder": "inbox" }Composio
섹션 제목: “Composio”composio 도구는 Composio 플랫폼을 통해 1,000개 이상의 OAuth 연결 앱(Gmail, GitHub, Slack, Notion, Jira 등)에 접근합니다. 원시 OAuth 토큰은 로컬에 저장되지 않으며, 연결은 Composio 대시보드에서 관리되고 entity_id로 범위가 지정됩니다. 액션은 Composio의 v3 API에서 런타임에 탐색되며 HTTPS가 강제됩니다.
[composio]enabled = trueapi_key = "comp_..." # or set COMPOSIO_API_KEYentity_id = "default"액션 (action 필드):
| 액션 | 목적 |
|---|---|
list | 앱에서 사용 가능한 액션 목록 조회 |
execute | 특정 액션 실행 |
list_accounts | 연결된 계정 목록 조회 |
connected_accounts | 연결된 계정 확인 |
connect | 앱의 OAuth 연결 시작 |
execute는 정확한 params 또는 자연어 text 필드를 허용합니다. 정확한 스키마를 모를 때 text를 사용하면 Composio가 텍스트에서 파라미터를 해석합니다. connected_account_id를 생략하면 자동으로 해석됩니다.
{ "action": "execute", "action_name": "GMAIL_SEND_EMAIL",linkedin 도구는 LinkedIn 프로필을 읽고 콘텐츠를 게시합니다. 쓰기 액션에는 LinkedIn API OAuth 액세스 토큰이 필요하며, 자격 증명은 LINKEDIN_* 환경 변수로 제공합니다.
[linkedin]enabled = trueapi_version = "202502"
[linkedin.content]persona = "tech founder"topics = ["AI", "Rust", "open source"]rss_feeds = ["https://example.com/feed.xml"]github_users = ["octocat"]github_repos = ["owner/repo"]instructions = "Post 2-3x per week in first person"
[linkedin.image]# image-generation config for post images액션 (action 필드): create_post, list_posts, add_comment, react, delete_post, get_engagement, get_profile, get_content_strategy.
쓰기 액션(create_post, add_comment, react, delete_post)은 LinkedIn을 변경하므로 approved: true 또는 감독 모드 승인이 필요합니다. [linkedin.content] 블록은 도구 호출 시 에이전트에 요약되어 페르소나, 주제, 게시 빈도에 맞게 게시물을 작성할 수 있습니다. 예약된 자동 게시 워크플로에 유용합니다.
{ "action": "create_post", "content": "Excited to share our new open-source project!" }설정 확인
섹션 제목: “설정 확인”config.toml을 편집한 후 데몬을 재시작하고 도구가 등록되었는지 확인하십시오. 가장 빠른 확인 방법은 대시보드의 통합 페이지(스킬, 도구 및 통합 페이지 참조)이며, 각 통합의 상태를 보여줍니다. 통합이 등록되지 않은 경우 데몬 로그에서 도구 건너뜀 메시지를 확인하십시오. 일반적인 원인은 자격 증명 누락, enabled = true 미설정, 또는 google_workspace의 경우 gws CLI가 PATH에 없는 것입니다. 더 넓은 설정 유효성 검사는 revka doctor를 실행하십시오.