Codex, Claude, Cursor, 및 Copilot을 위한 하나의 MCP 구성 (chezmoi와 함께)

발행: (2026년 3월 8일 AM 06:11 GMT+9)
8 분 소요
원문: Dev.to

Source: Dev.to

여러 대의 머신에서 여러 코딩 에이전트를 사용할 때, MCP 구성 드리프트는 불가피합니다—하나의 파일을 진실의 원천으로 만들지 않는 한 말이죠.
다음 가이드는 실용적이고 재현 가능한 설정을 보여줍니다:

  • Codex
  • Claude Code
  • Cursor
  • GitHub Copilot (VS Code 및 Copilot‑coding‑agent 시나리오 포함)

Core Idea

  1. 하나의 정규 MCP 매니페스트chezmoi 소스 상태에 유지합니다.
  2. 그 매니페스트에서 각 도구의 고유 설정 형식을 생성합니다.
  3. chezmoi가 심볼릭 링크 / 템플릿 및 머신‑별 값을 관리하도록 합니다.

네 개의 도구 모두 MCP 서버를 동일한 개념적 필드로 모델링합니다:

FieldMeaning
Server name도구에서 사용하는 식별자
Transport typestdio(로컬) vs. 원격 http/sse
Command + args + env로컬 서버용
URL + headers / auth원격 서버용

다른 점은 파일 위치스키마 형태입니다.
네 가지 형식을 일일이 편집하는 대신, 하나의 정규화된 모델을 유지하고 이를 각 대상 파일에 투사합니다.

도구‑별 저장소 세부 정보

도구MCP 위치형식비고
Codex~/.codex/config.toml (프로젝트 별 오버라이드: .codex/config.toml)TOML[mcp_servers.] 아래 항목
Claude~/.claude/settings.json, .claude/settings.json, .claude/settings.local.json (사용자/로컬 범위 MCP 설정은 ~/.claude.json, 프로젝트 범위는 .mcp.json)JSON.mcp.json을 레포‑공유 가능한 MCP 표면으로 사용; 비밀은 레포 외부에 보관
Cursor~/.cursor/mcp.json (프로젝트: .cursor/mcp.json)JSONmcpServers 배열 사용; 명령‑ 및 URL‑기반 MCP 지원
VS Code워크스페이스: .vscode/mcp.json; 사용자 프로필: mcp.jsonJSON일급 MCP 기능
Copilot coding agent~/.copilot/mcp-config.json (또는 동등한 경로)JSONVS Code MCP와 동일한 스키마, type 명시 (local, stdio, http, sse)

정규 MCP 매니페스트

단일 YAML 파일을 만들어 모든 서버를 기술합니다. 예시:

# dot_config/mcp/servers.yaml
servers:
  github:
    transport: http
    url: "https://api.githubcopilot.com/mcp/"
    headers:
      Authorization: "Bearer ${GITHUB_TOKEN}"

  filesystem:
    transport: stdio
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/Users/lukas"]
    env:
      NODE_NO_WARNINGS: "1"

Tip: 비밀(${GITHUB_TOKEN})은 암호화된/비공개 파일에 저장하세요 (Security 아래 참고).

디렉터리 레이아웃 (chezmoi 소스 상태)

~/.local/share/chezmoi/
├─ .chezmoitemplates/
│   └─ mcp/
│       ├─ codex-config.toml.tmpl
│       ├─ claude-mcp.json.tmpl
│       ├─ cursor-mcp.json.tmpl
│       ├─ vscode-mcp.json.tmpl
│       └─ copilot-mcp-config.json.tmpl
├─ dot_config/
│   └─ mcp/
│       └─ servers.yaml          ← canonical model (committed)
├─ dot_codex/
│   └─ config.toml.tmpl
├─ dot_claude/
│   └─ mcp_servers.json.tmpl
├─ dot_cursor/
│   └─ mcp.json.tmpl
├─ dot_vscode/
│   └─ mcp.json.tmpl
└─ dot_copilot/
    └─ mcp-config.json.tmpl
  • .chezmoitemplates 아래의 파일은 재사용 가능한 스니펫입니다.
  • 템플릿은 .tmpl 접미사(또는 .chezmoitemplates 내부에 위치함)로 인식됩니다.
  • .chezmoi.os.chezmoi.hostname과 같은 머신 사실은 템플릿 내부에서 사용할 수 있습니다.

예시 템플릿 로직

{{- /* Render internal server only on work laptop */ -}}
{{- if eq .chezmoi.hostname "work-laptop" -}}
{
  "name": "internal",
  "type": "http",
  "url": "https://internal.example.com/mcp/",
  "headers": {
    "Authorization": "Bearer ${INTERNAL_TOKEN}"
  }
}
{{- end -}}

파일 시스템 루트, 회사 전용 서버 등도 .chezmoi.os, .chezmoi.hostname 또는 사용자 정의 사실에 따라 다양하게 설정할 수 있습니다.

Source‑State 속성 (chezmoi)

PrefixPurpose
symlink_심볼릭 링크 대상 생성
private_파일을 비공개로 표시 (권한 제한)
encrypted_age/gpg 로 암호화 (토큰, 헤더에 이상적)

추천 분할

  • Committedservers.yaml (토폴로지, 비밀이 아닌 데이터)
  • Encrypted / private – 머신별 비밀 (토큰, 비밀번호)

최종 도구 구성에 환경 변수 참조 (${GITHUB_TOKEN}) 를 렌더링합니다.

Source:

변환 규칙 (한 번, 템플릿에서)

표준 필드Codex (TOML)Claude / Cursor / VS Code / Copilot (JSON)
transport: stdiocommand, args, env 아래 [mcp_servers.]command, args, env, type: "stdio"
transport: http (or sse)url, headers 아래 [mcp_servers.]url, headers, type: "http" (or "sse")
툴별 선택적 키피하십시오 unless absolutely required필요에 따라 servers.yaml 내부의 overrides 맵에 유지

구성 적용

# From your chezmoi repo root
chezmoi apply

chezmoi는 다음을 수행합니다:

  • 각 템플릿을 정식 servers.yaml(및 모든 암호화/비공개 파일) 을 사용해 렌더링합니다.
  • 결과 파일을 적절한 위치에 배치합니다:
~/.codex/config.toml               ← MCP block
~/.claude.json   or   .mcp.json    ← projection
~/.cursor/mcp.json
.vscode/mcp.json
~/.copilot/mcp-config.json

생성된 대상 파일을 직접 편집하지 마세요 – 항상 소스 모델이나 템플릿을 수정하고 chezmoi apply 를 다시 실행하세요.

보안 및 재현성

  • 엄격한 재현성 – 템플릿에서 모든 구성 파일을 생성하고, 소스‑전용 편집만 수행합니다.
  • 비밀 관리 – 토큰을 encrypted_ 파일이나 외부 비밀 관리자를 통해 보관하고, 템플릿에서는 환경 변수로 참조합니다.
  • 버전 관리 – 정식 모델(servers.yaml)과 템플릿 파일만 커밋합니다.
  • chezmoitemplating guide, machine facts, source‑state attributes
  • OpenAI Codex MCP – 고급 설정 문서
  • Anthropic Claude Code MCP – 설정 개요
  • Cursor MCP – 1급 MCP 지원을 확인하는 공식 문서 페이지
  • VS Code MCP – 워크스페이스(.vscode/mcp.json) 및 사용자 설정
  • GitHub Copilot MCP – 코딩‑에이전트 구성

TL;DR

  1. 하나의 정규 YAML 모델 (servers.yaml).
  2. 각 도구의 고유 형식에 대한 템플릿.
  3. chezmoi가 렌더링, 심볼릭 링크, 그리고 머신별 오버라이드(비공개/암호화)를 관리합니다.

결과: Codex, Claude, Cursor, 그리고 Copilot 전반에 걸쳐 일관되고 드리프트가 없는 MCP 구성을 제공하며, 특정 벤더 스키마에 얽매이지 않습니다.

0 조회
Back to Blog

관련 글

더 보기 »