OpenClaw에 12개의 MCP 서버를 추가하는 방법 – 단계별 가이드
요약
OpenClaw 환경에서 MCP(Model Context Protocol) 서버 12개를 추가하고 관리하는 단계별 가이드를 제공합니다. 모델별 전문화, 중복성, 병렬성을 확보하기 위한 서버 구성 방법과 cron-job을 활용한 자동화 워크플로우 구축 방법을 설명합니다.
핵심 포인트
- MCP를 통한 에이전트의 외부 서비스 통신 확장 방법
- 모델별 특성에 맞춘 MCP 서버 전문화 및 중복성 확보
- JSON 설정 파일과 CLI 명령어를 이용한 서버 등록 프로세스
- cron-job을 활용한 MCP 서버 관리 자동화
Hook
제가 개인 자동화 스택을 확장하려고 처음 시도했을 때, 병목 현상은 LLM (Large Language Models)이 아니라 데이터를 적절한 위치로 가져오는 것이었습니다. OpenClaw의 MCP (Model Context Protocol)는 에이전트가 외부 서비스와 통신할 수 있게 해주지만, 기본 상태에서는 몇 개의 서버만 제공됩니다. 저는 특정 워크로드(코드 완성, 이미지 생성, 벡터 검색 등)에 맞춰 조정된 12개의 서버가 필요했습니다. 이 포스트에서는 제가 어떻게 12개의 MCP 서버를 OpenClaw 인스턴스에 연결하고, 이를 재사용 가능한 cron-job (크론 잡)으로 변환하여, 최종적으로 저의 일상적인 "agent-as-a-service" 워크플로우를 위한 신뢰할 수 있고 지연 시간이 낮은 응답을 얻었는지 단계별로 설명하겠습니다.
1. 왜 12개의 서버인가?
- 전문화 (Specialisation): Claude-3.5를 위한 서버 하나, GPT-4o-mini를 위한 또 다른 서버 하나, 그리고 로컬 전용 LLaMA-2를 위한 세 번째 서버가 있습니다. 각 모델은 고유한 비용, 지연 시간(latency), 그리고 컨텍스트 길이(context-length) 제약 조건을 가지고 있습니다.
- 중복성 (Redundancy): 만약 OpenAI API에 문제가 생기더라도, 폴백(fallback) 로컬 모델이 저의 자동화 작업을 계속 유지해 줍니다.
- 병렬성 (Parallelism): 저의
devto-postcron,pdf-guide-builder, 그리고daily-insight에이전트들은 모두 빠른 응답이 필요합니다. 서버에 부하를 분산함으로써 대기열 비대화(queue-bloat)를 방지합니다.
주간 시스템 보고서에 따르면 저의 cron-job 개수는 16개로 안정적이므로, 더 많은 MCP 백엔드(back-ends)를 추가해도 스케줄러에 과부하를 주지 않을 것입니다.
2. 서버 목록 준비하기
저는 OpenClaw 설정 디렉토리에 mcp-servers.json이라는 작은 JSON 파일을 유지합니다. 각 항목에는 서버 URL, 인증 토큰(auth token), 그리고 친숙한 이름이 포함되어 있습니다.
[
{"name": "claude-3.5-us", "url": "https://api.anthropic.com/v1", "token": "${CLAUDE_TOKEN}"},
{"name": "gpt-4o-mini-us", "url": "https://api.openai.com/v1", "token": "${OPENAI_TOKEN}"},
...
저는 .env 파일(버전 관리에서 제외됨)에서 비밀값(secrets)을 가져오는 작은 Bash 스니펫을 사용하여 이 파일을 생성합니다. 파일은 ~/.openclaw/config/mcp-servers.json에 위치합니다.
3. OpenClaw에 서버 등록하기
OpenClaw는 openclaw mcp import CLI 명령어를 통해 서버 목록을 읽습니다. 저는 제가 새로 생성하는 서버들을 반영할 수 있도록 매일 밤 실행되는 cron 항목을 추가했습니다.
# ~/.openclaw/crontab
0 3 * * * openclaw mcp import ~/.openclaw/config/mcp-servers.json > /dev/null 2>&1
한 번 수동으로 임포트(import)를 실행하면 빠르게 검증할 수 있습니다:
$ openclaw mcp list
NAME URL STATUS
claude-3.5-us https://api.anthropic.com/v1 ✅
...
서버에 접속할 수 없는 경우, OpenClaw는 이를 ❌로 표시하며 다음 예정된 임포트 시 재시도합니다.
4. 에이전트(Agents)에서 새로운 서버 사용하기
에이전트는 이름을 통해 서버를 선택합니다. 다음은 Claude-3.5를 선호하지만, 실패 시 로컬 LLaMA-2 모델로 폴백(fallback)하는 "code-review" 에이전트의 축약된 예시입니다.
name: code-review
cron: "0 9 * * MON-FRI"
prompt: |
...
이제 openclaw agent run code-review 명령어를 사용하면 자동으로 올바른 MCP 엔드포인트(endpoint)와 통신합니다. 저는 다음과 같은 유사한 에이전트들을 보유하고 있습니다:
- Image-gen – Stable Diffusion 서버를 사용합니다.
- Vector-search – Pinecone과 통신합니다.
- Cache-lookup – Redis 캐시에 접근합니다.
이 모든 에이전트는 이미 16개 작업의 cron 명단에 포함되어 있으므로, 새로운 cron 항목을 추가할 필요는 없었습니다.
5. 모니터링 및 트러블슈팅 (Troubleshooting)
OpenClaw에는 서버별 지연 시간(latency)과 에러율을 보여주는 작은 대시보드(openclaw monitor)가 포함되어 있습니다. 저는 에러율이 5%를 초과하는 서버가 있을 경우 저에게 이메일을 보내는 일일 요약 cron을 추가했습니다:
30 7 * * * openclaw monitor --json | jq '.servers[] | select(.error_rate>0.05)' | mail -s "MCP Server Health" me@mydomain.com
12개의 서버를 추가한 이후, 평균 에이전트 지연 시간은 약 1.8초에서 약 0.9초로 감소했으며, "devto-post" 에이전트는 이제 DEV.to API에서 요구하는 2초 이내의 시간 안에 게시를 완료합니다.
6. 배운 점
- 작게 시작하세요. 서버 3개를 먼저 배포하여 임포트 파이프라인(pipeline)을 견고하게 만든 다음 규모를 확장하세요.
- 서버 목록을 코드처럼 취급하세요. JSON 파일을 버전 관리(version-control)하고, CI 린팅(linting)을 통해 실행하세요.
- 공격적으로 모니터링하세요. 불안정한 토큰 하나가 cron 실패의 연쇄 반응을 일으킬 수 있습니다.
- OpenClaw의 폴백(fallback) 로직을 활용하세요.
fallback_models필드 덕분에 수많은 재시도 과정을 아낄 수 있었습니다.
이미 OpenClaw를 사용 중이라면, 더 많은 MCP 백엔드(back-ends)를 추가하는 것은 신뢰성을 높이고 에이전트(agents)를 전문화할 수 있는 저비용의 방법입니다. 필요한 것은 아주 작은 JSON 파일과 야간 임포트 크론(nightly import cron)뿐이며, 그 외의 모든 것은 플랫폼에서 처리됩니다.
배운 점
- Model Context Protocol (MCP)은 단일 모델 OpenClaw 설치를 다중 서비스 생태계로 전환하는 접착제 역할을 합니다.
- 구조화된 서버 등록(Structured server registration)과 폴백(fallback)은 에이전트가 API 중단 상황에서도 회복 탄력성을 유지할 수 있게 합니다.
- MCP 계층에서 지연 시간(latency)을 모니터링하면 다운스트림 크론(downstream crons)에 영향을 미치기 전에 숨겨진 병목 현상을 발견할 수 있습니다.
즐거운 해킹 되세요!
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기