외부 서비스 연결하기
에이전트가 내 GitHub 저장소를 읽거나 Notion 페이지에 쓰려면 그 서비스의 로그인 정보가 필요합니다. UpServe는 이를 한 번만 연결해두면 되도록 설계되어 있습니다. 이후에 동일한 서비스를 쓰는 스킬을 설치할 때마다 다시 로그인할 필요가 없고, 에이전트가 작업할 때마다 자격증명이 자동으로 전달됩니다.
이런 외부 연결은 스킬 탭의 연동(Integrations ) 서브탭 한 곳에서 관리합니다. 웹·iOS·Android 모두 같은 구성입니다 — 서비스를 카테고리별로 모아 보여주고, 카드를 클릭하면 그 서비스의 연결·해제·조직 지정을 한 화면에서 처리할 수 있습니다.
한눈에 보기
| 궁금한 점 | 답 |
|---|---|
| 어떤 서비스를 연결할 수 있나요? | 로그인 한 번으로 붙는 GitHub, Linear, Notion, Slack, Google Drive, Google Calendar, Google Tasks 7종과, 카테고리별로 정리된 Zapier·Asana·ClickUp·HubSpot·Stripe·Figma·Canva 등 더 많은 서비스(아래 ‘더 많은 서비스 연결하기’ 참고) |
| Slack은 연결하면 뭐가 되나요? | 다른 연동과 달리 Slack에서 UpServe 쪽으로도 이어집니다 — 채널에서 @UpServe로 에이전트를 부르고 승인까지 스레드에서 처리할 수 있습니다. 연결한 뒤 채널에 봇을 초대해야 동작하므로 Slack에서 에이전트 부르기를 함께 읽어주세요. |
| 어디서 연결하나요? | 가장 빠른 길은 스킬 탭의 연동 서브탭입니다 — 카드를 클릭하면 연결·해제를 바로 할 수 있습니다. 그 밖에 (B) 내 서재에 설치한 스킬 카드의 연결 필요 표시, (C) 에이전트 설정 화면의 스킬 선택기에서 스킬을 켠 뒤 나타나는 연결 행의 연결 버튼, (D) 작업 도중 에이전트가 대화창에 띄우는 연결 카드로도 똑같이 연결됩니다. 자세한 내용은 아래 ‘연결하는 방법’을 참고하세요. |
| 연결되면 뭐가 달라지나요? | 그 서비스를 쓰는 스킬이 실행될 때 자격증명이 자동으로 주입됩니다. 매번 로그인하지 않아도 됩니다. |
| 연결을 해제하려면? | 연동 허브 에서 서비스 카드를 클릭하면 상세 패널에 연결 해제 버튼이 있습니다. 해당 서비스를 쓰는 스킬이 내 서재에 설치되어 있다면 그 스킬 카드에서도 해제할 수 있습니다. |
| 서비스당 몇 개 계정을 연결할 수 있나요? | 서비스당 1개 계정만 연결할 수 있습니다. 다른 계정으로 바꾸려면 기존 연결을 해제하고 새 계정으로 다시 연결하세요. |
| 내 자격증명을 다른 사람도 쓸 수 있나요? | 나 혼자 쓰는 에이전트라면 아니요 — 자격증명은 본인 계정에서만 사용되며, 다른 사용자·다른 팀과 공유되지 않습니다. 다만 조직이 함께 쓰는 에이전트에서 내 연결을 그 조직의 계정으로 직접 지정했다면, 그 뒤로는 다른 멤버가 그 에이전트와 대화하거나 그 에이전트가 자동으로 실행될 때도 내가 지정한 계정이 쓰입니다. 자세한 내용은 아래 ‘조직이 함께 쓰는 에이전트의 외부 서비스 계정’을 참고하세요. |
| 조직이 함께 쓰는 에이전트는 어느 계정을 쓰나요? | 기본은 조직 관리자(OWNER)가 지정해 둔 계정입니다. 누가 말을 걸었는지, 예약 실행인지와 무관하게 항상 같은 계정입니다. 다만 관리자가 특정 서비스에 대해 “멤버도 지정 가능”을 켜 두면, 아직 아무도 쓰지 않는 자리에 한해 멤버도 자기 계정을 지정할 수 있습니다. 자세한 내용은 아래 ‘조직이 함께 쓰는 에이전트의 외부 서비스 계정’을 참고하세요. |
| 조직이 함께 쓰는 에이전트에 저장한 키를 다른 멤버도 볼 수 있나요? | 이름과 용도만 보입니다. 값(실제 키)은 어떤 화면에서도 다시 표시되지 않으며, 삭제는 조직 관리자만 할 수 있습니다. 나 혼자 쓰는 에이전트에 저장한 키는 다른 사용자에게 전혀 보이지 않습니다. 자세한 내용은 아래 ‘저장된 키’ 섹션을 참고하세요. |
| 토큰이 만료되면? | UpServe가 자동으로 갱신합니다. 외부 서비스에서 권한을 거둬간 경우, 또는 연결은 살아 있지만 스킬에 새로 필요해진 권한이 기존 연결에 빠져 있는 경우에 재연결 안내가 표시됩니다. |
| 에이전트가 승인 없이 외부 API를 호출할 때도 있나요? | 있습니다. 저장된 자격증명으로 외부 서비스에 직접 요청을 보내야 하면 승인 카드가 한 번 뜨고, 승인하면 이후 같은 범위 안에서는 다시 묻지 않습니다. 무엇을 승인했는지 확인하거나 취소하려면 연동 허브 하단의 고급 영역에 있는 에이전트 직접 접근 승인 목록을 보세요. |
| 이메일로 알림을 받으려면? | Agent Email 스킬을 쓰려면 먼저 내 이메일을 인증해야 합니다. 설정 → 프로필 상단의 이메일 카드에서 인증하거나, 에이전트 설정의 스킬 선택기에서 Agent Email을 켰을 때 나타나는 인증 행, 또는 대화 중 에이전트가 띄우는 인증 카드로도 인증할 수 있습니다. 인증한 이메일 주소로만 알림을 받으며, 에이전트가 제3자에게 메일을 보낼 수는 없습니다. 예외는 엔터프라이즈(매니지드 계약) 조직에 소속된 에이전트로, 조직을 대신해 외부 수신자에게도 메일을 보낼 수 있고 그 상대의 답장으로 깨어납니다. |
| GitHub·Notion 말고 다른 서비스도 연결할 수 있나요? | 네. Zapier·Stripe·Figma·Canva 같은 서비스도 같은 연동 허브의 카테고리 목록에서 고르기만 하면 연결됩니다. 자세한 내용은 아래 ‘더 많은 서비스 연결하기’를 참고하세요. |
| 설치하기 전에도 어떤 연동이 필요한지 알 수 있나요? | 네. 마켓의 스킬 카드·상세 화면에 설치 전에도 연동 필요: 서비스명 배지가 보이고, 클릭하면 바로 연동 허브의 해당 서비스로 이동합니다. |
연결하는 방법
연결 진입점은 네 곳입니다. 어느 쪽을 사용해도 동일하게 연결됩니다.
경로 A — 연동 허브에서 연결 (가장 빠른 길)
- 스킬 탭 → 연동 서브탭(바로가기 )으로 이동합니다. 서비스가 문서·프로젝트·커뮤니케이션 같은 카테고리별로 카드로 모여 있습니다.
- 연결하려는 서비스 카드를 클릭하면 오른쪽에 상세 패널이 열립니다.
- 패널의
연결버튼을 누르면 외부 서비스의 로그인 창이 열립니다. 권한을 검토하고 승인하면 UpServe로 돌아옵니다. - 패널에 연결된 계정 이름이 표시되면 완료입니다. 같은 패널에서 조직 지정(아래 ‘조직이 함께 쓰는 에이전트의 외부 서비스 계정’ 참고), 관련 스킬 설치 여부, 그 서비스를 API 키로 붙이는 대안(MCP)까지 한 번에 볼 수 있습니다.

[1] 스킬 탭 → 연동 서브탭
│
▼
[2] 카드 클릭 → 상세 패널 열림
│
▼
[3] "연결" 클릭 → 외부 서비스 로그인 + 권한 승인
(그 서비스의 공식 화면)
│
▼
[4] UpServe로 자동 복귀
패널에 연결된 계정 이름이 표시됨경로 B — 설치한 스킬 카드에서 연결
- 스킬 탭 → 내 서재 로 이동하면, GitHub·Notion처럼 연결이 필요한 스킬을 이미 설치했을 경우 그 카드에
연결 필요표시가 보입니다. - 그 표시를 클릭하면 경로 A와 동일한 로그인·승인 화면이 열립니다.
- 카드에 연결된 계정 이름이 표시되면 완료입니다.
경로 C — 에이전트 설정에서 연결
스킬을 에이전트에 직접 장착하면서 바로 연결할 수 있습니다.
- 에이전트 페이지 →
설정탭 → 스킬 선택기 를 엽니다. - 연결이 필요한 스킬의 토글을 ON으로 켭니다.
- 스킬 카드 아래에 OAuth 행이 나타납니다. 버튼 상태는 다음과 같습니다.
연결— 아직 연결되지 않은 상태. 클릭하면 외부 서비스 로그인 창이 열립니다.연결 중...— 리디렉션 진행 중.다시 연결— 이미 연결되어 있거나 재인증이 필요한 상태. 클릭하면 다시 권한 승인 창이 열립니다.[서비스명] 연결됨— 정상 연결 완료.
연결을 눌러 외부 서비스의 권한을 승인하면 해당 스킬이 즉시 자격증명을 사용할 수 있게 됩니다.
[1] 에이전트 설정 → 스킬 선택기
│
▼
[2] 스킬 토글 ON
│
▼
[3] OAuth 행 표시 — "연결" 버튼 클릭
│
▼
[4] 외부 서비스 로그인 + 권한 승인
│
▼
[5] 자동 복귀 — 연결 행에 "[서비스명] 연결됨" 표시경로 D — 대화 중 연결 카드로 연결
가장 흔한 방법입니다. 에이전트가 아직 연결되지 않은 서비스를 써야 하는 작업을 만나면, 대화창에 바로 연결 카드를 띄웁니다.
- 작업 도중 에이전트가 채팅에
[서비스명] 연결버튼이 있는 카드를 보여줍니다. - 그 버튼을 누르면 외부 서비스의 로그인 창이 열립니다(다른 경로와 동일한 권한 승인 흐름).
- 권한을 승인하고 돌아오면 에이전트가 중단했던 작업을 이어서 진행합니다.
[1] 에이전트가 연결되지 않은 서비스를 필요로 함
│
▼
[2] 대화창에 "[서비스명] 연결" 카드 표시
│
▼
[3] 버튼 클릭 → 외부 서비스 로그인 + 권한 승인
│
▼
[4] 자동 복귀 — 에이전트가 작업을 이어서 진행스킬이 요구하는 것이 아래 ‘더 많은 서비스 연결하기’에서 설명하는 MCP 서버라면 버튼을 눌렀을 때의 동작이 조금 다릅니다. 이미 다른 곳에서 등록해 둔 서버라면 확인 창 한 번으로 바로 이 에이전트에 연결되어 외부 로그인 화면을 거치지 않고, 아직 등록 전인 서버라면 버튼이 연동 허브의 해당 서비스로 곧장 이동시켜 그곳에서 등록을 마치면 됩니다. 이 카드는 현재 웹 앱에서만 뜨고, iOS·Android 앱에는 아직 없습니다 — 앱에서는 에이전트가 이름을 알려준 서비스를 연동 허브에서 직접 연결하면 됩니다.
설치 전에도 마켓의 스킬 카드·상세 화면에 연동 필요: 서비스명 배지가 보이므로, 설치하기 전에 미리 연동 허브에서 연결해 둘 수 있습니다.
한 번 연결해 두면 같은 서비스를 쓰는 다른 스킬에도 동일한 자격증명이 그대로 적용됩니다. 예를 들어 GitHub을 한 번 연결하면, 나중에 GitHub을 쓰는 다른 스킬을 설치하거나 켤 때 다시 연결할 필요가 없습니다.
캠페인 링크로 들어가는 빠른 시작(퀵스타트) 화면(예: 지식 숏폼 제작)은 필요한 연결·API 키를 그 화면을 벗어나지 않고 바로 입력할 수 있게 되어 있습니다. 예전에는 새 창을 열어 연동 허브까지 갔다가 값을 복사해 돌아와야 했지만, 지금은 화면 안의 입력란에 키를 붙여넣으면 그 자리에서 바로 안전하게 저장되고, 외부 로그인이 필요한 연결은 창이 열려 있는 동안 자동으로 완료 여부를 확인해 별도로 “완료” 버튼을 누르지 않아도 다음 단계로 넘어갑니다.
이메일 알림 인증
GitHub·Notion 같은 외부 서비스뿐 아니라, 에이전트가 나에게 이메일로 보고서나 알림을 보내려면(Agent Email 스킬) 먼저 내 이메일 주소를 인증해야 합니다. 이 인증은 위의 연동 허브가 아니라 설정 → 프로필 에서 이뤄집니다 — (A) 프로필 화면 상단의 이메일 카드에서 6자리 인증 코드를 받아 입력, (B) 에이전트 설정의 스킬 선택기에서 Agent Email 스킬을 켜면 나타나는 ‘이메일 인증 필요’ 행의 인증 버튼, (C) 에이전트가 이 스킬을 쓰려는 순간 대화창에 뜨는 인증 카드. 한 번 인증해두면 그 이후로는 다시 인증할 필요가 없으며, 에이전트는 인증된 그 주소로만 메일을 보낼 수 있습니다(제3자에게는 보낼 수 없음). 단, 엔터프라이즈(매니지드 계약) 조직에 소속된 에이전트는 이 제한이 풀려 조직을 대신해 외부 수신자(고객·거래처 등)에게도 메일을 보낼 수 있습니다. 이때도 에이전트가 먼저 메일을 보낸 상대의 답장만 에이전트를 깨우며, 모르는 발신자의 메일은 저장만 되고 에이전트를 실행시키지 않습니다.
연결되면 무엇이 달라지나
- 에이전트가 그 서비스를 사용하는 스킬을 실행하면, UpServe가 유효한 액세스 토큰을 자동으로 가져와 스킬에 전달합니다.
- 토큰은 스킬 실행이 끝날 때 정리됩니다. 다음 실행 시점에 다시 가져옵니다.
- 토큰 갱신은 스킬이 실제로 실행되기 직전에 일어나므로, 작업 도중 끊기는 일이 거의 없습니다.
- 다음 두 경우에 스킬 카드에
재연결 필요안내가 표시됩니다. (1) 외부 서비스에서 권한을 직접 취소하거나 비밀번호 변경 등으로 토큰이 무효화된 경우, (2) 연결은 그대로 살아 있지만 스킬에 새로 추가된 기능이 요구하는 권한이 기존 연결에 빠져 있는 경우(예: 나중에 추가된 기능을 쓰려면 한 번 더 승인이 필요한 경우). 두 경우 모두 안내를 클릭하면 다시 권한 승인 창이 열립니다.
조직이 함께 쓰는 에이전트의 외부 서비스 계정
에이전트를 혼자가 아니라 조직(회사·팀) 이 함께 쓰는 경우, 그 에이전트가 Notion·Slack·GitHub 같은 외부 서비스에 접속할 때 어느 계정을 쓸지는 조직 관리자(OWNER)가 미리 정해 둡니다. 지금 누가 그 에이전트에게 말을 걸었는지, 예약된 시간에 혼자 움직인 건지와 상관없이 항상 같은 계정을 씁니다 — 낮에 멤버가 채팅할 때와 밤에 예약 작업이 돌 때 서로 다른 계정을 보는 일이 없도록 하기 위해서입니다.
- 조직 관리자(OWNER) 는 연동 허브에서 서비스 카드를 열면 나오는 조직 연결 섹션에서, 서비스별로 지금 어떤 계정이 지정되어 있는지 확인하고 본인의 연결을 그 조직의 계정으로 지정하거나 지정을 해제할 수 있습니다. 지정하려면 먼저 본인 계정으로 그 서비스에 연결되어 있어야 합니다. OWNER는 언제나 지정·교체·해제가 가능합니다.
- 멤버(MEMBER)도 특정 서비스에 한해 자기 계정을 지정할 수 있습니다. 관리자가 같은 섹션의 “멤버도 자기 계정을 지정할 수 있게 허용” 스위치를 그 서비스에 대해 켜면, 아직 아무도 쓰지 않는 빈 자리에 한해 멤버가 직접 자기 계정을 조직 계정으로 지정할 수 있습니다. 스위치를 켜는 순간 멤버 전원에게 알림이 가서 누가 먼저 나설지 알 수 있습니다.
- 이미 다른 사람의 계정이 지정된 서비스는 멤버가 덮어쓸 수 없습니다 — 먼저 지정한 사람의 자리를 빼앗는 일이 없도록, 빈 자리만 채울 수 있습니다. 계정을 바꾸려면 관리자에게 요청하세요.
- 자기 계정을 지정한 멤버는 관리자와 마찬가지로 그 지정을 스스로 해제할 수 있습니다. 다른 사람이 지정한 계정은 해제할 수 없습니다.
- 스위치를 꺼도 이미 지정되어 있는 멤버의 계정은 그대로 유지됩니다 — 예고 없이 조직 에이전트가 그 서비스를 잃지 않도록, 끄기는 앞으로의 새 지정만 막습니다.
- 스위치가 열려 있지 않은 서비스에서는 멤버가 지정 현황을 볼 수는 있지만, 바꾸거나 해제할 수는 없습니다.
- 아직 지정이 없는 서비스는 본인 계정을 연결해도 바뀌지 않습니다. 지정은 위 규칙에 따라 관리자 또는 허용된 멤버만 할 수 있는 별도의 절차라서, 아무나 자기 계정을 연결한다고 조직 에이전트가 쓰는 계정으로 자동으로 이어지지 않습니다. 이 경우 에이전트가 “관리자가 계정을 지정해야 합니다”라고 안내하며, 지정될 때까지 그 서비스를 쓰는 작업은 기다립니다.
- 이 섹션은 조직에 속한 사용자에게만 보입니다. 나 혼자 쓰는 에이전트에는 이 지정 절차가 필요 없습니다 — 본인이 연결한 계정을 그대로 씁니다.
참고 — 이 지정은 “어느 계정으로 접속할지”를 정하는 것이며, 아래 ‘저장된 키’ 섹션에서 다루는 API 키·토큰 저장과는 별개의 기능입니다.
연결 해제 / 재인증
연결 해제는 연동 허브에서 서비스 카드를 클릭하면 열리는 상세 패널의 연결 해제 버튼으로 할 수 있습니다. 해당 서비스를 쓰는 스킬을 설치했는지 여부와 무관하게 항상 사용할 수 있는 경로입니다.
해당 서비스를 쓰는 스킬이 내 서재에 설치되어 있다면, 그 스킬 카드에도 연결된 계정 이름과 함께 연결 해제 버튼이 표시되어 같은 자리에서 바로 해제할 수 있습니다.
에이전트 설정의 스킬 선택기 OAuth 행에는 다시 연결(재인증) 버튼만 있습니다. 이 버튼은 해제가 아니라 새로운 권한 승인 창을 여는 동작이며, 여기서는 연결을 해제할 수 없습니다.
해제 후 해당 서비스를 쓰는 스킬은 다음 실행에서 다시 연결을 요구합니다. 다른 계정으로 갈아끼우고 싶을 때는 한 번 해제하고 새 계정으로 연결하면 됩니다.
주의 — 연결을 해제하면 내 모든 에이전트에서 해당 서비스 기능이 동작하지 않게 됩니다. 나 혼자 쓰는 에이전트뿐이라면 다른 사용자에게는 영향이 없습니다. 하지만 이 연결이 위 ‘조직이 함께 쓰는 에이전트의 외부 서비스 계정’에서 지정한 계정이었다면, 해제하는 순간 그 조직의 에이전트도 이 서비스를 쓸 수 없게 됩니다 — 다른 멤버의 대화도, 예약된 자동 실행도 함께 멈춥니다. 해제 화면에서 어느 조직이 이 계정을 쓰고 있는지 함께 안내하며, 조직 관리자에게는 알림이 갑니다.
되돌리려면 — 14일 안에 같은 계정으로 다시 연결하면 지정이 자동으로 복구됩니다. 계정을 바꿔 연결하거나 14일이 지난 뒤에 연결하면 복구되지 않으며, 이때는 지정 권한이 있는 사람(관리자 또는 해당 서비스가 열려 있으면 멤버 본인)이 새 계정을 지정해야 합니다. (재인증을 위해 잠깐 해제했다 다시 연결하는 경우를 위한 장치입니다.)
더 많은 서비스 연결하기
위에서 다룬 GitHub·Linear·Notion·Slack 같은 서비스는 로그인 한 번으로 붙는 OAuth 방식과, 같은 서비스를 다른 접속 방식으로 붙이는 MCP(Model Context Protocol — 외부 서비스의 기능을 에이전트가 표준 방식으로 불러 쓰는 연결 규격) 방식을 모두 지원합니다 — 연동 허브에서 그 서비스 카드를 열면 두 방식이 함께 보이고, OAuth가 마찰이 적어 기본으로 추천됩니다. Google Calendar·Drive·Tasks처럼 로그인 방식만 있는 서비스도 있고, Zapier(자동화 허브), Asana·ClickUp(프로젝트 관리), Atlassian(문서·지식), HubSpot·Stripe(영업·결제), Canva·Figma·Higgsfield·OpusClip·VEED(디자인·영상 제작), Webflow(웹사이트 관리), Calendly(일정 관리) 등 MCP로만 붙는 서비스도 있습니다. 같은 서비스라도 OAuth로 연결한 것과 MCP로 연결한 것은 서로 다른 연결로 취급되며, 각각 따로 연결해야 합니다.
- 어디서 — 연동 허브 에서 카테고리별로 정리된 카드 중 원하는 서비스를 고르면 됩니다. 서비스의 접속 주소를 직접 찾아 입력할 필요는 없습니다. 목록에 없는 서비스는 허브 하단 고급 영역의
+ 카탈로그 밖 서버 직접 등록버튼으로 주소를 직접 넣어 연결할 수 있습니다. 이 직접 등록 화면은 웹·iOS·Android 3플랫폼 모두에서 같은 방식으로 쓸 수 있습니다. - 연결 완료까지 — 목록에서 고른 서비스는 대부분 로그인 방식이라, 고르는 즉시 그 서비스의 로그인 화면으로 이동해 권한을 승인하면 연결이 끝납니다(직접 입력한 서버가 API 키 방식이면, 키를 넣고
연결 테스트로 실제 쓸 수 있는 기능을 미리 확인한 뒤에만 등록할 수 있습니다). - 에이전트에서 쓰려면 — 서버를 등록해도 자동으로 모든 에이전트가 쓰게 되지는 않습니다. 에이전트 페이지 →
설정탭 →외부 MCP섹션에서 이 에이전트에 연결할 서버를 하나씩 켜야 합니다. 사용법은 도구 부여하기를 참고하세요.
도구 호출을 매번 승인받을지 정하기
에이전트 설정의 외부 MCP 섹션에서 서버를 펼치면, 그 서버가 제공하는 기능별 켬/끔과 함께 도구 호출 자동 승인 스위치가 있습니다.
- 꺼두면(기본값) 이 서버의 어떤 기능을 쓰든 매번 승인 카드가 뜨고, 사용자가 승인해야 실행됩니다.
- 켜두면 승인 카드 없이 바로 실행됩니다. 다만 그 호출이 위 ‘저장된 키’ 섹션의 자격 증명을 함께 써야 하면, 이 스위치를 켜 두었어도 그 자격 증명에 대한 승인은 별도로 진행됩니다.
기능뿐 아니라 참고 자료·미리 만든 질문도 함께 연결됨
서비스에 따라 바로 실행되는 기능(도구) 외에, 참고할 수 있는 자료(예: 문서·목록)나 미리 만든 질문 양식을 함께 제공하는 경우가 있습니다. 이런 항목이 있으면 외부 MCP 섹션에 함께 표시되며, 기능과 마찬가지로 개별적으로 켜고 끌 수 있습니다.
등록한 서버 관리
카탈로그에 없는(직접 주소를 입력한) 서버는 연동 허브 하단의 고급 영역에서 관리합니다. 카탈로그에 있는 서비스(예: Notion·Zapier)의 MCP 연결은 그 서비스 카드의 상세 패널에서 바로 관리할 수 있습니다.
- 각 서버의 연결 상태(정상 / 연결 안 됨 / 오류)와 마지막으로 기능 목록을 확인한 시각을 볼 수 있습니다. 오류 상태에는 원인이 함께 표시됩니다.
도구 갱신을 누르면 그 서비스에 새로 생기거나 없어진 기능을 다시 확인합니다. 바뀐 내용이 있으면 무엇이 추가·삭제·변경됐는지 먼저 보여주고,변경 적용을 눌러야 실제로 반영됩니다.- API 키로 연결한 서버는
토큰 교체로 키 값을 바꿀 수 있습니다. 삭제를 누르면 이 서버 연결이 없어지고, 이 서버를 쓰던 모든 에이전트가 그 기능을 더 이상 쓸 수 없습니다.
API 키로 연결하는 스킬 (자동 설정 카드)
GitHub·Slack처럼 로그인 창을 여는 대신, 직접 발급받은 API 키를 입력해야 쓸 수 있는 스킬도 있습니다(예: 문자 발송 스킬의 API 키·시크릿·발신번호). 이런 스킬은 필요한 값이 아직 없으면, 에이전트가 그 스킬을 쓰려는 순간 대화창에 설정 카드가 자동으로 나타나 무엇을 어디서 발급받아 넣어야 하는지 안내합니다.
- 에이전트가 해당 스킬을 쓰려는 순간, 채팅에 ”○○ 설정” 카드가 표시됩니다.
- 카드에는 필요한 값마다 이름·간단한 설명과, 발급 페이지로 바로 가는 링크가 함께 나옵니다.
- 링크에서 값을 발급받아 복사한 뒤, 카드의 입력란에 붙여넣고 저장을 누릅니다.
- 필요한 값을 모두 저장하면 그 스킬을 바로 쓸 수 있습니다. 일부 값만으로 동작하는 기능은 나머지가 남아 있어도 먼저 “사용 가능”으로 표시됩니다.
- 값 중에는 외부 서비스의 심사처럼 시간이 걸리는 절차가 포함될 수 있습니다. 이런 항목은 처리가 끝난 뒤 카드에서
완료했어요를 눌러 표시하면 됩니다.
이 카드에 입력한 값도 아래 ‘저장된 키’와 동일하게 그 에이전트 전용으로 안전하게 보관되며, 연동 허브 에서 그 서비스 카드를 열어도 같은 값을 입력·확인할 수 있습니다.
저장된 키 (직접 저장하는 자격 증명)
GitHub·Notion처럼 미리 만들어진 연결이 없는 서비스라도, API 키나 토큰을 직접 저장해 두면 에이전트가 계속 재사용할 수 있습니다. 예를 들어 결제 서비스 API 키를 한 번 저장해 두면, 그 에이전트가 매번 다시 물어보지 않고 작업에 사용합니다.
- 저장 방법 (대화 중) — 채팅 입력창의 자물쇠 버튼으로 값을 입력할 때 “이건 무엇에 쓰이나요?” 란에 짧은 설명(예: “Stripe 실전 API 키”)을 적어두면 됩니다. 설명을 적으면 기본적으로 저장되며, 이름은 그 설명을 바탕으로 UpServe가 자동으로 지어줍니다(예:
STRIPE_LIVE_API_KEY). 저장하지 않고 이번 한 번만 쓰려면 “일회성 이용(저장 안 함)” 체크박스를 켜세요. 이름을 직접 정하거나 기존에 저장한 키를 덮어쓰고 싶다면고급을 펼쳐 원하는 방식을 고를 수 있습니다.다른 자격 증명 추가를 누르면 아이디·비밀번호처럼 함께 쓰이는 값을 한 화면에서 최대 10개까지 나눠 입력해 한 번에 보낼 수 있습니다. 항목마다 설명을 따로 붙여 각각 저장할 수 있습니다. - 저장 방법 (허브에서 직접) — 연동 허브 하단의 고급 영역에 있는 저장된 키 섹션에서
+ 키 추가버튼을 눌러 에이전트·이름·값을 직접 입력해 저장할 수도 있습니다. - 관리 — 같은 섹션에서 에이전트별로 보고 삭제할 수 있습니다.
- 에이전트 전용 — 저장된 키는 그 에이전트만 실행에 사용합니다. 나 혼자 쓰는 에이전트라면 다른 사용자에게 전혀 보이지 않습니다. 조직이 함께 쓰는 에이전트에 저장한 키는 같은 조직 멤버도 이 목록에서 이름과 용도를 볼 수 있지만, 값은 어떤 화면에서도 보이지 않으며 삭제는 조직 관리자만 할 수 있습니다.
- 다시 표시되지 않음 — 저장한 값은 보안을 위해 다시 보여주지 않습니다. 바꾸려면 삭제하고 새로 저장하세요.
- 자동 갱신 없음 — 위의 OAuth 연결과 달리, 직접 저장한 키는 자동으로 갱신되지 않습니다. 만료되면 직접 교체해야 합니다.
- 자동으로 기억된 사용처 — 어떤 도구가 이 키를 쓰도록 한 번 허용하면(에이전트가 승인 카드를 띄웠을 때 동의), UpServe가 그 조합을 기억해 이후 예약 실행 등 자동 실행에서 다시 묻지 않습니다. 기억된 사용처는 같은 섹션에 태그로 표시되며, 태그의
×를 누르면 그 항목만 해제할 수 있습니다. 해제하면 다음에 그 키를 쓸 때 다시 승인을 요청합니다. - 값을 바꿀 때(덮어쓰기) — 같은 이름의 키에 새 값을 저장하면 확인 창이 뜨고, 위에서 기억해 둔 사용처(자동 승인 대상)를 그대로 유지할지 묻습니다. 기본은 해제입니다 — 같은 이름이라도 다른 서비스의 값으로 바뀌었을 가능성이 있어, 이전 값이 받아 뒀던 자동 승인을 새 값에 그대로 물려주지 않기 위해서입니다. 같은 비밀을 그대로 갱신하는 경우라면 확인 창의
기존 승인 유지체크박스를 켜면 됩니다.
에이전트 직접 접근 승인
에이전트가 저장된 자격증명이나 연결된 계정으로 외부 서비스에 직접 요청을 보내야 하는 경우가 있습니다(예: 특정 서비스의 API를 코드로 직접 호출). 이때도 에이전트가 실제 비밀번호나 토큰 값을 직접 보는 일은 없습니다 — UpServe가 중간에서 안전하게 전달합니다.
- 승인 카드 — 에이전트가 이런 접근이 필요한 순간, 대화창에 승인 카드가 뜹니다. 어떤 자격증명으로 어떤 서비스에 어떤 요청을 보낼지 요약해 보여주고, 승인하면 이후 같은 범위 안에서는 다시 묻지 않고 자동으로 요청을 처리합니다.
- 확인 — 연동 허브 하단의 고급 영역에 있는 에이전트 직접 접근 승인 섹션에서 지금까지 승인한 항목을 모두 볼 수 있습니다(한 번도 승인한 적이 없으면 이 섹션은 나타나지 않습니다). 각 항목에는 어떤 자격증명을, 어떤 에이전트가, 어떤 주소·요청에 대해 쓸 수 있는지와 오늘 사용 횟수(한도가 있으면 한도 대비)가 함께 표시됩니다.
- 해제 — 각 항목의
해제버튼을 누르면 즉시 그 접근이 차단됩니다. 다음에 같은 접근이 필요해지면 승인 카드가 다시 뜹니다.
주의 — 해제는 그 항목 하나에만 적용됩니다. 같은 서비스에 대해 다른 자격증명·다른 에이전트로 승인한 다른 항목에는 영향을 주지 않습니다.
일회성 비밀 (저장하지 않는 값)
비밀번호·인증 코드처럼 쓰고 남기지 않을 값은, 채팅 입력창의 자물쇠 버튼으로 보내되 저장 옵션을 끄면 됩니다. 입력한 평문 값은 저장되지 않으며, 암호화된 값은 잠시 후(최대 15분) 자동으로 삭제됩니다. 대화에는 라벨과 가려진 자리표시자만 남습니다. 이때도 다른 자격 증명 추가 로 아이디·비밀번호 같은 값을 최대 10개까지 함께 입력해 한 번에 보낼 수 있습니다.
보안
- 사용자 단위 분리 (값 기준) — 자격증명의 값(비밀번호·토큰 자체)은 본인 계정에 묶여 저장되며, 다른 사용자나 같은 팀의 다른 멤버가 그 값을 가져갈 수 없습니다. 조직이 함께 쓰는 에이전트에 저장한 키는 이름과 용도까지는 같은 조직 멤버에게 보일 수 있습니다 — 값은 여전히 가려집니다. 자세한 내용은 위 ‘저장된 키’ 섹션을 참고하세요.
- 저장된 키는 에이전트 단위 분리 — 직접 저장한 키는 그 에이전트 전용으로 암호화 저장되며, 공유 링크로 들어온 외부 방문자에게는 절대 노출되지 않습니다.
- 에이전트는 직접 토큰을 보지 않음 — 토큰은 스킬 실행 환경에 환경변수로만 잠깐 전달되며, 실행이 끝나면 정리됩니다. 채팅 메시지나 로그에는 노출되지 않습니다. 에이전트 직접 접근 승인을 통한 요청은 이보다 더 엄격해서, 자격증명이 에이전트의 실행 환경에 아예 들어가지 않고 UpServe 서버가 요청에 대신 실어 보냅니다.
- 암호화 저장 — 액세스 토큰과 리프레시 토큰은 모두 암호화되어 데이터베이스에 저장됩니다.
- 표준 OAuth + CSRF 방지 — 표준 Authorization Code 흐름을 사용하며 위조된 콜백은 거부됩니다.
고급 (Advanced)
아래는 일반 사용자가 알 필요 없는 내부 동작입니다. 직접 스킬을 만들거나 통합 동작을 디버깅할 때 참고하세요.
어떤 권한을 요청하나
UpServe가 연결 시 사용자 관점에서 요청하는 권한은 대체로 다음 범위입니다(실제 화면은 각 서비스 정책에 따름).
| 서비스 | 요청하는 권한 (사용자 관점 요약) |
|---|---|
| GitHub | 내 저장소(공개·비공개) 코드·이슈·PR 읽기·쓰기, 조직 멤버십·팀 정보 읽기, 프로필 정보 읽기 |
| Linear | 내 워크스페이스의 이슈·프로젝트·코멘트 읽기 및 작성, 이슈 생성 |
| Notion | Notion 동의 화면에서 사용자가 직접 선택한 페이지·데이터베이스에만 접근 (읽기·쓰기). 어떤 페이지를 공유할지는 Notion 플랫폼이 결정하며, UpServe는 선택된 범위만 사용합니다. |
| Slack | 내 워크스페이스 공개 채널·프라이빗 채널·1:1 DM 메시지 읽기, 봇으로 메시지 전송, 사용자·팀 정보 읽기 |
| Google Drive / Calendar / Tasks | 해당 서비스의 파일·일정·할 일 읽기 및 쓰기 (Google Drive는 Picker로 사용자가 직접 선택한 파일에만 접근) |
권한 화면은 항상 외부 서비스의 공식 동의 화면이며, UpServe가 받은 권한 범위는 연결 정보에 그대로 기록됩니다.
조직 지정의 해석 순서
에이전트가 실행될 때마다 어느 계정을 쓸지는 다음 순서로 정해집니다.
- 그 조직이 해당 서비스에 지정해 둔 연결이 있으면 그 연결을 씁니다. 지정한 사람이 관리자든 허용된 멤버든 이 규칙은 같습니다.
- 지정이 없고 그 에이전트가 조직 없이 개인 소유(1인 계정)라면, 소유자 본인의 연결을 씁니다 — 혼자 쓰는 경우 달라지는 것은 없습니다.
- 지정이 없고 여러 명이 함께 쓰는 조직 소속이라면, 어떤 계정도 쓰지 않습니다. 지금 대화 중인 사람의 개인 연결로 대신 동작하는 경우는 없습니다 — 이 폴백이 바로 “멤버마다 다른 계정을 보던” 문제의 원인이었기 때문에 의도적으로 없앴습니다.
지정 자체를 관리(등록·교체·해제)하는 동작은 기본이 조직 관리자(OWNER)입니다. 관리자가 서비스별로 “멤버도 지정 가능”을 켜 두면, 그 서비스의 빈 자리에 한해 멤버도 자기 계정으로 등록할 수 있고, 자신이 등록한 지정은 스스로 해제할 수도 있습니다 — 이미 채워진 자리를 다른 멤버가 덮어쓰는 것은 언제나 막혀 있습니다. 열람(지금 어떤 계정이 지정돼 있는지 보기)은 멤버 전원에게 열려 있습니다. 이 정책 스위치 자체를 켜고 끄는 것은 관리자만 할 수 있습니다.
스킬이 자격증명을 어떻게 받아 쓰나
스킬을 직접 만들거나 외부에서 가져온 스킬의 내부 동작을 살펴봐야 할 때만 알면 됩니다. 스킬의 SKILL.md가 metadata.requires로 어떤 자격증명을 어떤 환경변수 이름으로 받을지 선언하고, 실행 시점에 UpServe가 유효한 토큰(만료 임박이면 자동 갱신)을 그 환경변수로 주입한 뒤 실행이 끝나면 정리합니다. 에이전트가 스킬을 패키징할 때 이 항목을 자동으로 채우므로 사용자가 직접 yaml을 손볼 일은 없습니다. 매핑 표·예시는 스킬 생성하기 → 시크릿 주입을 참고하세요.
API 키 자동 설정 카드(BYOK)가 동작하는 방식
스킬 정의가 setup.fields(사용자가 직접 입력하는 값)와 setup.external_steps(외부 심사 등 시간이 걸리는 절차)를 선언해두면, 에이전트가 그 스킬을 로드하려 할 때마다 아직 채워지지 않은 항목만 담아 설정 카드를 그립니다. 카드에 입력된 값은 위 ‘저장된 키’와 같은 저장소에 그 에이전트 전용으로 암호화 저장되고, 이후 값이 채워지면 해당 항목은 카드에서 완료로 표시됩니다. 스킬이 capabilities(값 묶음별 기능)를 선언한 경우, 그중 하나라도 필요한 값이 다 모이면 나머지가 남아 있어도 그 기능만 먼저 열립니다. 대화 중 자동으로 뜨는 이 인라인 카드는 현재 웹 앱에서만 렌더링되며, iOS·Android 앱에는 아직 구현되어 있지 않습니다 — 다만 같은 값 입력 폼이 연동 허브의 BYOK 섹션에는 웹·iOS·Android 3플랫폼 모두에 있으므로, 앱에서는 대화가 아니라 연동 허브로 이동해 값을 채우면 됩니다.
Google Drive Picker
스킬이나 에이전트 동작에서 Google Drive 파일에 접근해야 할 때, UpServe는 Google Picker를 사용합니다. Google Picker는 사용자 본인의 Google 계정으로 브라우저 안에서 실행되는 파일 선택기입니다. 사용자가 Picker를 통해 직접 선택한 파일에만 접근할 수 있으며, Drive 전체에 대한 접근 권한은 요청하지 않습니다. 이는 사용자가 앱을 통해 열거나 생성한 파일로만 범위를 제한하는 drive.file 권한 범위(scope)로 강제됩니다.
토큰 만료와 자동 갱신
- 액세스 토큰의 만료 시각이 임박하면(만료 5분 전), 스킬이 토큰을 요청하는 시점(스킬 실행 직전)에 저장된 리프레시 토큰으로 즉시 갱신합니다. 별도로 예약된 백그라운드 사전 갱신은 없습니다.
- 갱신은 스킬 실행 직전에 일어나므로, 작업 도중 끊김 없이 새 토큰이 적용됩니다.
- 외부 서비스에서 사용자가 직접 권한을 취소하거나 리프레시 토큰이 폐기된 경우, 갱신이 실패하고 연결이
inactive상태로 표시됩니다. 이때 카드에재연결 필요가 떠서 사용자가 한 번 더 권한을 승인하도록 안내합니다.
대화 카드의 MCP 연결 버튼이 정하는 것
에이전트가 스킬 실행 중 아직 연결되지 않은 MCP 서버를 발견하면 카드에 연결 버튼을 붙여 보여줍니다. 어떤 서버로 연결되는지, 버튼을 눌렀을 때 무엇이 실행되는지는 항상 서버가 판정합니다 — 에이전트가 스스로 지목한 서버 이름·주소가 검증 없이 그대로 쓰이지 않습니다.
- 버튼에 실리는 서버는 이 사용자(또는 조직) 소유이면서 활성 상태이고 재인증이 필요 없는 서버로 한정됩니다. 설정 화면(외부 MCP 섹션)에 뜨는 연결 후보와 같은 기준입니다.
- 같은 주소로 이미 등록해 둔 서버가 있으면(다른 에이전트에서 연결해 둔 경우 포함) 그 서버로 바로 연결하는 버튼을 보여주고, 없으면 등록 화면으로 이동하는 버튼을 보여줍니다.
- 버튼 라벨(서버 이름)은 항상 서버가 채웁니다. 에이전트가 직접 쓴 라벨은 무시되며, 이름이 너무 길면 잘립니다.
- 한 카드에 담기는 이동 버튼은 최대 3개입니다.
- 조회에 실패하거나 알 수 없는 서버를 가리키면 그 버튼만 조용히 빠지고 카드의 나머지 내용은 그대로 표시됩니다.
MCP 서버 등록 방식
목록의 항목이든 직접 입력한 주소든, 등록 시 동일한 검증(HTTPS 강제 등)을 거칩니다 — 목록에 있다고 더 신뢰되는 주소로 취급되지 않습니다. UpServe는 원격 서버(HTTPS로 상시 접속 가능한 서버)만 지원합니다. 본인 컴퓨터에서만 실행되는 로컬 서버는 연결할 수 없습니다. 인증 방식은 인증 없음·API 키(Bearer)·커스텀 헤더·로그인(OAuth) 중 하나입니다.
MCP 도구 목록은 등록·갱신 시점에 고정됨
서버를 등록하거나 도구 갱신을 적용하는 순간의 기능 목록이 그대로 저장되어 실행에 쓰입니다. 그 서비스가 나중에 기능 설명을 몰래 바꾸더라도 사용자가 다시 갱신을 확인·적용하기 전까지는 반영되지 않습니다 — 등록 당시 검토한 내용과 실제 실행되는 내용이 항상 같도록 하기 위한 장치입니다.
자물쇠 입력의 항목 수 제한
채팅 입력창의 자물쇠 버튼으로 여러 항목을 함께 보낼 때(저장하는 값이든 일회성 값이든), 한 번의 전송에 담을 수 있는 항목은 최대 10개입니다. 화면과 저장 처리 모두 같은 한도를 씁니다.
자동으로 기억된 사용처의 해제 단위
저장된 키 섹션의 “자동으로 기억된 사용처” 태그는 항목 하나만 지우는 요청으로 해제됩니다(목록 전체를 통째로 바꿔치기하지 않습니다). 여러 화면을 동시에 열어 두고 서로 다른 항목이 새로 기억되더라도 다른 화면의 해제 조작이 그 항목을 되살리지 않도록 하기 위한 설계입니다.
에이전트 직접 접근 승인의 범위
에이전트 직접 접근 승인은 최초 요청 시 사용자가 승인한 범위(대상 서비스 주소·요청 형식)에서만 유효합니다. 그 범위를 벗어나는 요청은 자동으로 거부되며, 에이전트가 새로운 범위가 필요하면 승인 카드를 다시 띄웁니다. 하루 호출 한도가 설정된 항목은 한도를 넘으면 그날은 더 이상 요청이 통과되지 않습니다.