00:00:00AI에서 가장 중요한 것 중 하나였던 MCP 프로토콜이 6개월 뒤에 우리에게 큰 문제가 되었습니다.
00:00:06처음에는 사람들이 로컬에서 2~3개의 MCP 서버만 실행했지만, MCP는 훨씬 더 발전했습니다.
00:00:13이제 사람들은 수백 개의 MCP 서버와 수천 개의 도구를 동시에 가지고 있으며,
00:00:18이것이 엄청난 문제가 되었습니다.
00:00:20아시다시피 Cloudflare가 이 문제를 먼저 발견했고,
00:00:23Claude도 이 문제에 대한 연구 논문을 발표해서 따라갔습니다.
00:00:26하지만 Docker가 실제로 이 문제의 해결책을 내놓았고,
00:00:29MCP의 가장 중요한 문제 중 하나를 완전히 새로운 방식으로 해결했습니다.
00:00:34많은 토큰을 절약하고,
00:00:35에이전트 속도를 높이고,
00:00:37완전히 새로운 종류의 자동화를 가능하게 하는 동적 모드를 구현했는데,
00:00:41저는 정말 기대하고 있습니다.
00:00:43그래서 Docker는 실제로 기사를 발행했는데,
00:00:46기본적으로 에이전트 환경을 하드코딩하지 말 것을 강력히 촉구하고 있습니다.
00:00:50그런데 그게 무슨 뜻일까요?
00:00:51먼저 우리가 실제로 신뢰하는 MCP 서버가 어떤 것들인지 파악하는 것입니다.
00:00:54두 번째는 사용하지 않을 수도 있는 도구 정의로 컨텍스트를 가득 채우는 것을 어떻게 피할 것인가 하는 것입니다.
00:01:00예를 들어, 1,000개의 도구가 있다면 한 번의 채팅에서 2~3개만 사용할 수도 있습니다.
00:01:05세 번째는 에이전트가 이러한 도구를 효율적으로 그리고 자율적으로 발견하고, 구성하고, 사용하는 방법입니다.
00:01:12하지만 두 번째에 집중해 주셨으면 합니다.
00:01:14즉, 사용하지 않을 수도 있는 도구 정의로 컨텍스트를 가득 채우는 것을 어떻게 피할 것인가 하는 것입니다..
00:01:19예를 들어, 1,000개의 도구가 있다면 한 번의 채팅에서 2~3개만 사용할 수도 있습니다.
00:01:23Anthropic도 이에 대한 게시물을 발표했는데,
00:01:26우리가 이전 영상 중 하나에서 다루었고,
00:01:28구현을 원하는 사람들로부터 정말 긍정적인 반응을 받았습니다.
00:01:32그리고 Docker가 실제로 이를 구현했습니다.
00:01:34계속 진행하기 전에,
00:01:35Docker가 실제로 문제가 되기 훨씬 전에 이 모든 인프라를 설정했다는 것을 알아야 합니다.
00:01:41그리고 그러기 위해서는 검증된 MCP 서버를 나열한 MCP 카탈로그에 대해 알아야 합니다.
00:01:48그리고 연결하기가 정말 쉽습니다. Docker에서 여기서 연결하면 됩니다.
00:01:52예를 들어,
00:01:52Notion을 여기에 연결했는데,
00:01:54지금 현재 두 개의 서버를 가지고 있고,
00:01:56대부분의 경우 Claude Code인 제 MCP 클라이언트는 Docker에만 연결되고,
00:02:01Docker가 기본적으로 모든 MCP 서버를 관리합니다.
00:02:04그래서 이것이 완전히 우리가 실제로 신뢰할 수 있는 MCP 서버가 어떤 것인지에 대한 첫 번째 문제를 해결합니다.
00:02:09이제 에이전트가 MCP를 동적으로 사용할 수 있도록 하기 위해,
00:02:13그들은 카탈로그 내의 MCP 서버를 사용하고 자율적으로 사용할 수 있는 사전 구성된 도구가 이미 있는 MCP 게이트웨이를 구현했습니다.
00:02:22본질적으로 일어나는 일은 하나의 MCP만 연결하고,
00:02:26이 MCP는 연결된 도구가 무엇인지에 대한 모든 컨텍스트를 가지고 있습니다.
00:02:31두 개에 연결되었고 실제로 어떤 도구 정의를 컨텍스트 윈도우에 넣을지 알고 있습니다.
00:02:36따라서 컨텍스트 윈도우가 팽창하지 않습니다..
00:02:39이것이 실제로 작동하려면,
00:02:40MCP 찾기,
00:02:41추가 및 제거를 포함하는 새로운 도구를 추가했으며,
00:02:44이는 기본적으로 이름이나 설명으로 카탈로그에서 MCP 서버를 찾습니다.
00:02:48그리고 제가 보여드리겠듯이, 올바르게 추가하는 방법을 안내해 드립니다.
00:02:51예를 들어,
00:02:52여기서 GitHub MCP를 사용하고 있으며,
00:02:54흥미로운 저장소를 검색하고 싶다고 말하고 있습니다.
00:02:57어떤 종류의 저장소인지 지정한 후,
00:02:59실제로 도구 자체를 호출하지 않고 Docker MCP 서버를 사용하여 올바른 정보로 도구를 호출한 다음 당연히 모든 결과를 반환합니다.
00:03:08이제 한 가지를 주목해 주셨으면 합니다.
00:03:10LLM은 저장소에 대한 모든 것을 반환하고 있습니다.
00:03:14링크를 반환하고, 별을 반환하고, 설명을 반환하고, 심지어 이 저장소가 게시된 날짜까지 알고 있습니다..
00:03:21저는 이것을 기억해 주셨으면 합니다. 앞으로 중요한 것이 될 것이기 때문입니다.
00:03:25이제 동적 도구 선택으로 넘어갑니다.
00:03:28이것이 기사의 가장 중요한 부분이며,
00:03:30MCP 서버를 사용하는 새로운 방식에 대해 이야기할 때 언급한 것입니다..
00:03:35다시 Claude 기사를 참고하면,
00:03:37Claude나 다른 AI 에이전트가 실제로 더 많은 토큰을 사용하는 방식에 대해 이야기합니다.
00:03:42하나는 컨텍스트 윈도우의 도구 정의이고, 두 번째는 중간 도구 결과입니다.
00:03:46이것은 MCP 도구 호출에서 실제로 반환되는 원본 결과에 대해 이야기하는 부분입니다.
00:03:51따라서 GitHub 도구를 사용하여 검색한 모든 세부 정보가 컨텍스트 윈도우로 반환되었습니다.
00:03:57그것이 Claude가 저장소의 모든 작은 세부 정보를 알고 있는 반면,
00:04:01저는 저장소의 설명과 링크만 원했던 이유입니다.
00:04:03이러한 방식으로,
00:04:04제 경우에는 20개 정도의 도구 호출만으로 전체 컨텍스트 윈도우가 가득 찰 때까지만 걸립니다.
00:04:10이것이 MCP 게이트웨이 프로젝트에서 실제로 유용한 도구만 제공하는 것을 개선한 부분입니다.
00:04:15예를 들어,
00:04:16제 경우에는 컨텍스트를 절약하는 한 가지 방법은 검색 저장소 도구만 제공하고 이 GitHub MCP 내에 있는 다른 40개의 도구는 제공하지 않는 것입니다.
00:04:25왜냐하면 이 세션에서는 검색 저장소 도구만 사용하고 싶기 때문입니다.
00:04:29하지만 다시,
00:04:29한 번 이러한 방식으로 도구를 선택하기 시작하면,
00:04:32그것은 또한 새로운 범위의 가능성을 열어줍니다.
00:04:35그리고 이것이 코드 모드로 이끌어집니다.
00:04:37Cloudflare는 기본적으로 우리가 MCP를 잘못 사용했고, 이것이 실제 방식이 아니라고 설명했습니다.
00:04:43그리고 여기서 Docker가 실제로 이 새로운 솔루션을 구현한 첫 번째입니다.
00:04:48저는 많이 시도해 봤습니다.
00:04:49그리고 실제로 얼마나 잘 실행되었는지 정말 놀랐습니다.
00:04:53그들은 에이전트가 MCP 도구를 사용하여 직접 코드를 작성할 수 있게 함으로써,
00:04:57즉 도구를 가져와서 코드에 구현함으로써,
00:04:59에이전트에게 도구를 완전히 새로운 방식으로 사용하는 코드 모드 도구를 제공할 수 있다고 말합니다.
00:05:05그럼 코드 모드는 뭘 하나요?
00:05:07다른 MCP 도구를 호출할 수 있는 JavaScript 활성화 도구를 만듭니다.
00:05:11이것이 정말 간단해 보일 수 있지만, 제가 보여드릴 예제가 이를 명확히 해 주기를 바랍니다.
00:05:17구현에 들어가기 전에, 고려할 사항이 있습니다.
00:05:19먼저, 이것이 에이전트가 작성한 코드이기 때문에, 당연히 테스트되지 않았고 안전하지 않습니다.
00:05:25따라서 Docker는 이것이 실제로 샌드박스에서 실행되도록 계획했습니다.
00:05:29그리고 그들이 이미 Docker 컨테이너를 제공하고 있으므로,
00:05:32이것은 기본적으로 그들에게 당연한 선택이었습니다.
00:05:35이 접근 방식은 세 가지 핵심 이점을 제공합니다.
00:05:38먼저, 샌드박싱의 주요 이점이 완전히 안전합니다.
00:05:41시스템에 실제 손상을 입히지 않습니다.
00:05:43그런 다음 도구가 모든 요청에서 모델로 전송될 필요가 없는 우리가 이야기해온 모든 토큰 및 도구 효율성이 있으며,
00:05:50모델은 단 하나의 새로운 코드 모드 도구에 대해 알아야 합니다.
00:05:53따라서 코드 모드가 없으면,
00:05:553개의 도구만 사용하고 있다면,
00:05:57반복적으로 실행하고 있다면,
00:05:58우리가 실제로 사용하는 3개의 도구와 함께 다른 47개의 도구의 컨텍스트도 함께 진행됩니다.
00:06:04하지만 코드 모드를 사용하면,
00:06:05에이전트가 실제로 사용해야 하는 도구만 사용하여 사용자 정의 분석 내 저장소 도구를 작성합니다.
00:06:11그리고 매번 하나의 코드 모드 도구만 참조합니다.
00:06:14그리고 이런 식으로, 우리가 실제로 사용해야 하는 도구를 보내지 않으므로 다른 모든 컨텍스트를 절약합니다.
00:06:20그리고 나서 우리는 상태 지속성도 가지고 있습니다.
00:06:23볼륨이 이러한 도구 호출 사이에 데이터가 저장되는 방식을 관리합니다.
00:06:27그리고 그들은 실제로 모델로 전송되지 않습니다.
00:06:29이것의 아주 간단한 예시는 데이터 처리 파이프라인입니다.
00:06:33따라서 데이터 세트를 다운로드하려고 한다고 하면,
00:06:35데이터 세트가 다운로드되고 반환되지만,
00:06:38실제로는 볼륨에 저장되고,
00:06:39모델은 성공적으로 다운로드되었다는 것만 알게 됩니다.
00:06:42모델이 5GB의 데이터로 넘치지 않습니다.
00:06:45그런 다음 처음 10,
00:06:46000행을 처리하고 싶다면,
00:06:47모델은 데이터가 저장된 볼륨에서 읽고 실제 요약을 반환할 수 있습니다.
00:06:52이런 식으로,
00:06:52최종 결과,
00:06:53요약,
00:06:53오류 메시지 또는 질문에 대한 답변과 같이 모델로 가야 할 데이터만 모델로 전송되고 컨텍스트 윈도우가 깨끗한 상태로 유지됩니다..
00:07:07이제 제가 이 GitHub 저장소를 검색한 이유는 비디오에 실제로 넣을 새로운 오픈 소스 도구를 발견하기 위해서입니다.
00:07:13그리고 저는 보통 GitHub 저장소 찾기 도구를 사용하여 여러 호출을 실행합니다.
00:07:17도구를 검색하기 위해 다양한 키워드를 작성합니다.
00:07:20그래서 저는 이것을 Claude Code에 제시했고,
00:07:22그것은 다양한 도구 호출을 하나의 도구로 결합했는데,
00:07:25이것은 제가 주는 키워드에 따라 저장소를 검색합니다.
00:07:27코드 모드가 없어도 Docker가 실제로 여러 쿼리를 실행한다는 것을 여기서 볼 수 있습니다.
00:07:32그리고 그것이 제가 해결하고 싶었던 것입니다.
00:07:34만든 도구는 다중 검색 저장소라고 불렸습니다..
00:07:37도구를 만든 후, MCP exec 도구를 사용하여 실제로 실행했습니다.
00:07:41기본적으로 6개의 서로 다른 키워드로 검색하여 29개의 고유한 저장소를 제공했지만,
00:07:46결과는 응답 및 터미널에서 직접 반환되었으므로,
00:07:49모든 결과가 컨텍스트 윈도우 내에서 반환되고 있었습니다.
00:07:52이를 해결하기 위해, 모든 것을 파일에 작성해야 하고 모델은 저장소의 설명만 받아야 한다고 말했습니다.
00:07:59별점이나 다른 것을 제공할 필요가 없습니다.
00:08:01그리고 도구를 변경하고 모든 결과를 제 저장소의 텍스트 파일에 작성했으므로 특정 저장소에 대한 무언가를 찾고 싶다면 텍스트 파일을 참조하여 그렇게 할 수 있습니다.
00:08:11이제 이 도구를 저장하고 재사용할 수 있는 방법을 구현하고 싶은 것이 하나 있습니다.
00:08:16지금 유일한 옵션은 수동으로 파일로 저장하는 것입니다.
00:08:19그 후 Notion MCP를 검색해 달라고 요청했습니다.
00:08:22연결되면,
00:08:23GitHub 검색 결과를 텍스트 파일을 사용하는 대신 Notion으로 직접 출력할 수 있는 도구를 만들 수 있는지 물었습니다.
00:08:30그리고 다시,
00:08:31코드 모드를 사용하면서,
00:08:32실제로 Notion에 결과를 붙여넣을 수 있게 해 주는 GitHub to Notion 도구를 만들었습니다..
00:08:40그리고 실행한 후 기본적으로 작은 문제들이 있었는데 제가 수정했습니다.
00:08:44하지만 본질적으로, 저는 이제 Notion에 이 데이터베이스를 가지고 있습니다.
00:08:48기본적으로 하드코딩되어 있습니다.
00:08:50그래서 제가 어떤 쿼리를 제공하든, 다양한 필드에 따라 이 데이터베이스에 결과를 입력할 것입니다..
00:08:55그리고 심지어 날짜를 포함하므로 쉽게 필터링할 수 있고 실제로 원하는 결과만 검색할 수 있습니다.
00:09:01모델은 한 번에 GitHub 저장소의 이름과 설명만 알게 됩니다.
00:09:04다른 것은 아무것도 받지 않지만, 나머지 정보는 모두 여기에 저장되어 있습니다.
00:09:09정직하게,
00:09:09이 카탈로그를 살펴보기만 해도 함께 연결할 수 있는 MCP의 아이디어를 적어도 하나는 얻을 수 있습니다.
00:09:15이를 통해 놀라운 워크플로우를 만들 수 있습니다.
00:09:18그리고 동시에, 토큰을 절약하고 자신의 AI 에이전트의 성능을 유지합니다.
00:09:22시작하기는 정직하게 꽤 쉽습니다.
00:09:24Docker 버전을 업데이트해야 합니다.
00:09:26하지만 여전히 없다면, 베타 기능에서 비활성화될 수 있습니다.
00:09:29따라서 이 Docker MCP 도구 키트가 활성화되어 있는지 확인하세요..
00:09:34그 외에는, 카탈로그를 가질 것이고 이 새로운 기능들은 기본적으로 활성화되어 있습니다.
00:09:39따라서 클라이언트를 연결하기만 하면 됩니다.
00:09:42이 영상의 끝에 도달했습니다.
00:09:43채널을 지원하고 이런 영상들을 계속 만드는 것을 도와주고 싶다면,
00:09:47아래의 슈퍼 감사 버튼을 사용하여 그렇게 할 수 있습니다.
00:09:50늘 그렇듯이, 시청해 주셔서 감사합니다.
00:09:52다음 영상에서 뵙겠습니다..