사내 AI Agent와 MCP 서버로 시작한 업무 자동화
안녕하세요, AI & Data 팀의 Hyun입니다.
요즘 AI 에이전트와 MCP(Model Context Protocol)가 빠르게 확산되면서 생산성 향상이 화두가 되고 있습니다. 저희도 업무 자동화와 생산성 향상을 목표로 사내 AI 에이전트와 MCP 서버를 본격 도입했고, 현재까지의 구조와 활용 사례, 그리고 앞으로의 계획을 간단히 공유드립니다.
한눈에 보는 구조
AI Agent Client ↔ MCP Tool Server로 구성되어 있습니다.
AI Agent Client
내장형 에이전트: Cursor, Claude → MCP 서버만 연결하면 바로 사용
비내장형 환경: Slack, Jupyter → LangChain/LangGraph로 자체 에이전트 구현
MCP Tool Server
사내 지식/서비스를 툴 형태로 제공
Main MCP에서 접근 권한을 통합 관리하고, 사용자별 유효한 툴만 노출
실제 활용 사례
1) Slack 챗봇
Slack은 데스크톱/모바일 어디서나 접근 가능한 협업 허브입니다. 여기에 AI를 붙여 다음과 같은 기능을 제공 했습니다.
사용자/채널별 프롬프트로 맞춤 대응
사용자 프롬프트 예: Jira 프로젝트 언급 없이도 바로 티켓 생성, 영어 스레드의 한국어 번역 등
채널 프롬프트 예: 목적별 역할 지정 (예: 힌디 학습 채널)
Slack 단축키 제공
스레드 요약·번역, 질문 응답 기능 제공합니다.
스레드 내 Jira 티켓 생성
스레드 요약 → 필수 필드 확인/자동입력 → 생성 → 원본 스레드 링크 자동 첨부.
SQL 분석
RAG로 테이블 검색 → SQL 생성/유효성 검사 → Python 시각화 → 결과를 Slack 업로드
사내 지식 Q&A
사내 문서를 벡터 DB에 저장하고 RAG로 조회/응답
2) JupyterHub
분석 환경(Athena, Python, Spark)에서 Magic 함수 → FastAPI → LangChain 구조로 요청합니다. (개발 중)
제공 기능: Text-to-SQL, 스키마 조회, SQL 성능 튜닝, 테이블 추천 등
Jupyter AI 플러그인도 검토했으나 에이전트 기능 한계로 자체 구현을 선택
3) 개발자 워크플로우 (Cursor, Claude)
MCP 서버를 통한 PR 리뷰, Jenkins 배포/빌드 자동화
문서화된 업무 절차(Instruction) 기반으로 복잡 작업을 대행
정액제 과금 모델을 활용해 복잡한 업무의 비용 부담 최소화
에이전트 오케스트레이션 (LangChain / LangGraph)
LangGraph로 간결한 순환 그래프를 운영합니다.
Prompt: 사용자/채널별 system prompt 생성 (Slack은 스레드 히스토리 포함)
LLM 노드: 허용 툴 목록과 사용자 요청을 받아 툴 선택/답변 전략 결정
Tools 노드: 선택된 툴 실행 → 결과를 다시 LLM으로 전달해 반복
Fallback 노드: 파라미터 오류 등 툴 실패 시 강한 모델로 재시도
Tools Approval: 실행 전 승인이 필요한 작업(SQL 실행, Jira 생성 등)은 사용자 확인(예/아니오) 단계를 거쳐 안전하게 처리
종료 조건: 더 이상 툴 호출이 없을 때 최종 응답 후 end
디버깅
LangSmith로 토큰 사용량, 노드 실행 흐름을 세밀하게 추적/디버깅
개발·테스트 용도로만 사용(제품 환경은 비용/보안 검토 필요)
MCP Server
중요성
모델/프레임워크(예: LLM, LangGraph)는 교체 가능해야 합니다.
반면 툴(사내 지식/서비스 접근)과 업무 프롬프트는 자동화의 핵심 자산입니다.
그래서 MCP 서버는 다양한 에이전트가 공통 툴을 쓰게 하는 표준 게이트웨이 역할을 합니다.
구조적 개선
과거: LangGraph의 에이전트와 툴이 강결합
현재: 에이전트는 LangGraph, 툴은 MCP에서만 관리 → 의존성 분리, 다중 에이전트에서 단일 툴 서버 공유
권한 관리
Main MCP가 내부 서비스별 MCP를 호출하는 허브-스포크 구조(하위 MCP는 설계 중)
허브-스포크 구조: 메인 MCP(허브)가 인증·권한·라우팅을 맡고, 서비스별 MCP(스포크)에 실행을 위임합니다. 에이전트는 허브만 접속하면 사용자 권한에 맞는 툴이 자동으로 노출됩니다.
사용자별 허용 툴과 실행 role을 분리 관리 (클라이언트에 노출되는 툴은 사용자별 상이)
현재는 mcp.json의 Authorization 헤더에 액세스 키를 사용 (slack은 user id 사용)
추후 Google OAuth로 보안 고도화 예정 (Jupyterhub는 이미 구현되어 있음)
Local / 3rd party MCP
사내 MCP는 공통 업무 툴에 집중
개인화 기능(개인 드라이브 접근, 개인 슬랙 권한 검색 등)은 로컬/개인 MCP에서 분리 운영 가능
RAG
가장 중요한 툴 중 하나가 대규모 문서 검색(RAG) 입니다.
현재 소스: 비즈니스 용어집, 회사 정보·규정·복지, 데이터베이스 스키마
다음 단계: Text-to-SQL 고도화, 벡터 스토어/리트리버 알고리즘 개선
앞으로의 방향
현재 Text-to-SQL 기능을 고도화하여 수백 개의 테이블이 있는 실제 분석 환경에서도 원활하게 작동하도록 개발 중입니다.
저희의 궁극적인 목표는 신규 입사자가 입사 첫날부터 챗봇과의 대화만으로 회사 시스템과 지식을 익혀 스스로 업무를 수행할 수 있는 환경을 만드는 것입니다. 이를 통해 개인의 생산성을 높이고, 업무의 병렬성을 확보하여 회사가 더 빠르게 성장하는 발판을 마련하고자 합니다.
긴 글 읽어주셔서 감사합니다!
아래는 슬랙 AI 챗봇 초기 아이디어를 구현했던 토이프로젝트 코드입니다https://github.com/dss99911/llm-slack-bot