콘텐츠로 이동

생산성 통합 도구

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로 시크릿을 저장 시 암호화하십시오(시크릿, 페어링 및 기기 인증 참조).

도구설정 키환경 변수
notionnotion.api_keyNOTION_API_KEY
jirajira.api_tokenJIRA_API_TOKEN
composiocomposio.api_keyCOMPOSIO_API_KEY
microsoft365microsoft365.client_secret— (Azure 앱 시크릿)
linkedin([linkedin] 참조)LINKEDIN_*
google_workspace— (gws CLI 자체 인증 사용)

notion 도구는 Notion REST API(https://api.notion.com/v1, API 버전 2022-06-28, 타임아웃 30초)를 통해 Notion 워크스페이스를 읽고 씁니다.

[notion]
enabled = true
api_key = "" # or set NOTION_API_KEY

접근하려는 Notion 워크스페이스 또는 페이지에 통합을 초대해야 합니다. 공유 설정은 Revka가 아닌 Notion에서 관리합니다.

액션 (action 필드):

액션정책목적
searchRead워크스페이스에서 페이지 및 데이터베이스 검색
query_databaseRead필터로 데이터베이스 쿼리
read_pageRead페이지 속성 읽기
read_block_childrenRead페이지 내부 블록 읽기
create_pageAct새 페이지 생성
update_pageAct페이지 속성 업데이트
append_blockAct페이지에 블록 추가
{ "action": "search", "query": "product roadmap" }

jira 도구는 Jira REST API v3를 통해 이슈를 읽고 검색하며 댓글을 작성합니다. 이메일과 API 토큰을 사용하여 Atlassian Cloud(https://yourcompany.atlassian.net)와 연동됩니다.

[jira]
enabled = true
base_url = "https://yourcompany.atlassian.net"
api_token = "" # or set JIRA_API_TOKEN
timeout_secs = 30
allowed_actions = ["get_ticket", "search_tickets", "comment_ticket", "list_projects", "myself"]

액션은 allowed_actions로 제한됩니다get_ticket만 항상 사용 가능하며, 다른 액션은 명시적으로 목록에 추가해야 합니다.

액션allowed_actions 필요 여부정책목적
get_ticket항상 허용Read키로 이슈 가져오기
search_ticketsopt-inReadJQL로 이슈 검색
comment_ticketopt-inAct이슈에 댓글 작성
list_projectsopt-inRead접근 가능한 프로젝트 목록 조회
myselfopt-inRead설정된 자격 증명 확인

comment_ticket은 Jira를 변경하므로 approved: true 또는 감독 모드 승인이 필요합니다. 이슈 키는 요청 전에 형식 유효성이 검사됩니다.

{ "action": "search_tickets", "jql": "project = BACKEND AND status = 'In Progress'" }

google_workspace 도구는 외부 gws CLI를 래핑하여 에이전트가 Drive, Gmail, Calendar, Sheets, Docs 등에 구조화된 방식으로 접근할 수 있게 합니다. 셸 접근이 필요하며, gws 바이너리를 먼저 설치하고 인증해야 합니다.

Terminal window
npm install -g @googleworkspace/cli
gws auth login
[google_workspace]
enabled = true
default_account = "[email protected]"
allowed_services = ["gmail", "drive", "calendar", "sheets", "docs"]
credentials_path = ""
rate_limit_per_minute = 60
timeout_secs = 30
audit_log = false
[[google_workspace.allowed_operations]]
service = "gmail"
resource = "users"
sub_resource = "messages"
methods = ["list", "get"]
타입기본값설명
enabledboolfalse도구 등록
allowed_servicesarray(내장 기본 세트)에이전트가 호출할 수 있는 서비스
allowed_operationsarray of tables[]리소스별 세부 메서드 허용 목록
default_accountstring""대리 실행할 계정
credentials_pathstring""자격 증명 경로
rate_limit_per_minuteint60클라이언트 측 요청 속도 제한
timeout_secsint30호출당 타임아웃
audit_logboolfalse모든 Workspace 작업의 감사 로그 기록

호출 시 service, resource, method를 지정합니다.

{
"service": "gmail",
"resource": "messages",
"method": "list",
"params": { "maxResults": 10, "q": "is:unread" }
}

microsoft365 도구는 Microsoft Graph API를 호출하여 Outlook 메일, Teams 메시지, Calendar, OneDrive, SharePoint에 접근합니다. 관련 Graph 권한이 있는 Azure AD 앱 등록이 필요합니다.

[microsoft365]
enabled = true
tenant_id = "your-tenant-id"
client_id = "your-app-id"
client_secret = "" # required for client_credentials flow
auth_flow = "device_code" # "client_credentials" | "device_code"
scopes = ["Mail.Read", "Calendars.Read", "Files.Read"]
token_cache_encrypted = true
user_id = "me"
설명
tenant_id / client_idAzure AD 앱 등록 정보
client_secretclient_credentials 플로우에 필요
auth_flowclient_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 플랫폼을 통해 1,000개 이상의 OAuth 연결 앱(Gmail, GitHub, Slack, Notion, Jira 등)에 접근합니다. 원시 OAuth 토큰은 로컬에 저장되지 않으며, 연결은 Composio 대시보드에서 관리되고 entity_id로 범위가 지정됩니다. 액션은 Composio의 v3 API에서 런타임에 탐색되며 HTTPS가 강제됩니다.

[composio]
enabled = true
api_key = "comp_..." # or set COMPOSIO_API_KEY
entity_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",
"text": "Send an email to [email protected] saying the report is ready" }

linkedin 도구는 LinkedIn 프로필을 읽고 콘텐츠를 게시합니다. 쓰기 액션에는 LinkedIn API OAuth 액세스 토큰이 필요하며, 자격 증명은 LINKEDIN_* 환경 변수로 제공합니다.

[linkedin]
enabled = true
api_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를 실행하십시오.