본문으로 건너뛰기

MCP 연동 ​

cdg mcp는 코딩 에이전트가 내가 붙여 넣을 내용을 직접 요청할 수 있게 해 주는 MCP 서버입니다. MCP 레지스트리에는 io.github.NaNIsaac/codigest로 올라 있습니다.

등록하기 ​

Claude Code:

bash
claude mcp add --scope user codigest -- cdg mcp

다른 클라이언트(Cursor, VS Code, Claude Desktop)는 명령 cdg, 인자 ["mcp"]로 stdio 서버를 추가하면 됩니다. 대부분의 클라이언트는 이런 모양의 설정을 받습니다.

json
{
  "mcpServers": {
    "codigest": {
      "command": "cdg",
      "args": ["mcp"]
    }
  }
}

서버는 실행된 프로젝트를 대상으로 동작합니다. 서버의 작업 폴더가 곧 프로젝트입니다. 서버를 프로젝트 폴더에서 시작하는 클라이언트라면 더 할 일이 없습니다. 다른 곳에서 시작한다면 클라이언트의 서버 설정에서 작업 폴더를 지정하세요.

도구 ​

도구돌려주는 내용인자
pack마지막 실패와 관련 파일, 변경 사항, import를 예산에 맞춰targets, with, budget, message
terminal_history최근 명령과 출력, 종료 코드count, failed, here
scan프로젝트 전체 묶음path, targets, resolve, message
diff기준점 이후의 텍스트 변경path, message
semdiff기준점 이후의 함수·클래스 단위 변경path, message
digest선언과 docstring만path, message
tree파일 트리path

각 도구는 CLI가 출력하는 것과 똑같은 내용을 돌려줍니다. 도구마다 일반 명령을 -s --no-copy로 실행하므로, 에이전트는 내가 붙여 넣을 내용과 똑같은 것을 받고 클립보드는 쓰이지 않습니다. 출력 형식을 참고하세요.

인자 ​

  • targets: 파일이나 폴더의 목록. pack에서는 이것들을 먼저 넣고, 파일을 지정하면 명령줄에서처럼 자동 항목이 꺼집니다.
  • with: pack용. failure, changes, tests, imports 중 원하는 것의 목록. 기본값은 모두 켜기이고, targets를 주면 모두 끄기입니다.
  • budget: pack용. 어림한 토큰 예산. 기본값 30000, 최솟값 1000.
  • message: 결과에 넣을 요청 문구.
  • resolve: scan용. 대상이 import하는 파일을 따라갑니다.
  • path: 프로젝트 폴더. 서버의 작업 폴더를 기준으로 한 경로입니다.
  • count: terminal_history용. 최근 명령 몇 개를 가져올지. 기본값 1.
  • failed: terminal_history용. 종료 코드가 0이 아닌 명령만. 기본값 false.
  • here: terminal_history용. 이 프로젝트와 그 아래에서 실행한 명령만. 기본값 true.

MCP로 호출한 scan은 크기를 묻느라 멈추는 일이 없습니다.

제한 ​

  • 기준점을 옮기는 도구는 없습니다. 기준점은 cdg mark로 내가 잡을 때만 바뀝니다.
  • 서버를 실행한 프로젝트 밖의 경로는 심볼릭 링크나 정션을 거치더라도 거부합니다. 이때 도구는 오류를 돌려줍니다.
  • 오류는 프로토콜 오류가 아니라 오류 표시가 붙은 도구 결과로 돌아오므로, 에이전트가 이유를 읽을 수 있습니다.
  • terminal_history는 cdg cap이나 셸 훅으로 만든 기록이 필요합니다. 기록이 전혀 없으면 그렇다는 메시지를 돌려줍니다. 다만 here=false와 failed=false로 요청하면 셸 히스토리에서 읽어 오며, 이때는 비밀정보를 가린 명령만 나옵니다.

프로토콜 ​

서버는 stdio로 한 줄에 메시지 하나씩 주고받는 작은 JSON-RPC 루프입니다. initialize, tools/list, tools/call, ping에 응답하고 알림은 무시합니다. MCP SDK에 의존하지 않습니다.

도구 목록을 직접 확인해 보려면:

bash
printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"t","version":"0"}}}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | cdg mcp

두 번째 응답에는 terminal_history, pack, scan, diff, semdiff, digest, tree가 이 순서로 들어 있습니다.

Released under the MIT License.