Articlehuggingface.co·2025년 4월 30일·0

How to Build an MCP Server with Gradio

Quick Summary

그라디오는 기존 파이썬 함수를 도구로 자동 변환하고 실행 옵션 하나로 웹 인터페이스와 모델 콘텍스트 프로토콜 서버를 함께 제공한다.

How to Build an MCP Server with Gradio 관련 대표 이미지

🖼️ 인포그래픽

How to Build an MCP Server with Gradio 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

How to Build an MCP Server with Gradio 내용을 설명하는 본문 이미지

💡 한 줄 요약

그라디오는 기존 파이썬 함수를 도구로 자동 변환하고 실행 옵션 하나로 웹 인터페이스와 모델 콘텍스트 프로토콜 서버를 함께 제공한다.

📌 핵심 요약

  • 그라디오를 모델 콘텍스트 프로토콜 추가 기능과 함께 설치한 뒤, 애플리케이션 실행 시 mcp_server 값을 활성화하면 기존 그라디오 앱을 모델 콘텍스트 프로토콜 서버로 공개할 수 있다.
  • 공개된 각 응용 프로그래밍 인터페이스 엔드포인트는 이름, 설명, 입력 스키마를 갖춘 도구로 자동 변환되며, 함수의 문서 문자열이 도구와 매개변수 설명을 만드는 데 사용된다.
  • 클라이언트는 서버의 SSE 엔드포인트를 설정에 등록해 도구를 사용할 수 있고, SSE를 직접 지원하지 않는 클로드 데스크톱에서는 mcp-remote를 중계 도구로 사용할 수 있다.
  • 그라디오는 일반 도구뿐 아니라 데이터 공개용 리소스, 재사용 가능한 프롬프트, 사용자 인터페이스에는 표시되지 않는 전용 함수도 지원한다.
  • 파일 변환과 업로드, 인증, 성능 지표, 환경 변수 활성화, 허깅페이스 스페이스 배포를 지원하므로 로컬 실험부터 공개 또는 비공개 호스팅까지 하나의 흐름으로 구성할 수 있다.

🧩 주요 포인트

  1. 그라디오를 모델 콘텍스트 프로토콜 추가 기능과 함께 설치한 뒤, 애플리케이션 실행 시 mcp_server 값을 활성화하면 기존 그라디오 앱을 모델 콘텍스트 프로토콜 서버로 공개할 수 있다.
  2. 공개된 각 응용 프로그래밍 인터페이스 엔드포인트는 이름, 설명, 입력 스키마를 갖춘 도구로 자동 변환되며, 함수의 문서 문자열이 도구와 매개변수 설명을 만드는 데 사용된다.
  3. 클라이언트는 서버의 SSE 엔드포인트를 설정에 등록해 도구를 사용할 수 있고, SSE를 직접 지원하지 않는 클로드 데스크톱에서는 mcp-remote를 중계 도구로 사용할 수 있다.
  4. 그라디오는 일반 도구뿐 아니라 데이터 공개용 리소스, 재사용 가능한 프롬프트, 사용자 인터페이스에는 표시되지 않는 전용 함수도 지원한다.
  5. 파일 변환과 업로드, 인증, 성능 지표, 환경 변수 활성화, 허깅페이스 스페이스 배포를 지원하므로 로컬 실험부터 공개 또는 비공개 호스팅까지 하나의 흐름으로 구성할 수 있다.

🧠 상세 정리

1. 그라디오와 모델 콘텍스트 프로토콜의 결합

그라디오는 매달 백만 명이 넘는 개발자가 기계학습 모델의 인터페이스를 만드는 데 사용하는 파이썬 라이브러리이며, 사용자 인터페이스뿐 아니라 응용 프로그래밍 인터페이스 기능도 제공한다. 이 글은 그라디오 애플리케이션을 모델 콘텍스트 프로토콜 서버로 실행해 이미지 생성기, 세금 계산기, 특정 수학 계산기와 같은 기능을 대규모 언어 모델의 도구로 호출하는 방법을 설명한다. 모델 콘텍스트 프로토콜 서버는 다양한 기능을 표준화된 방식으로 외부에 공개하며, 언어 모델은 이를 통해 이미지 생성·편집, 음성 합성, 소인수분해처럼 자체 추론만으로 처리하기 어렵거나 별도 실행이 필요한 작업을 수행할 수 있다. 핵심은 별도의 복잡한 서버 구현을 새로 작성하는 것이 아니라, 이미 존재하는 파이썬 함수와 그라디오 인터페이스를 그대로 도구 제공 계층으로 활용하는 데 있다.

2. 설치 조건과 실행 준비

시작하려면 모델 콘텍스트 프로토콜 추가 기능이 포함된 그라디오를 설치해야 하며, 제시된 설치 명령은 gradio[mcp] 패키지를 사용한다. 이 설치 과정에는 프로토콜 구현에 필요한 mcp 패키지를 비롯한 관련 의존성이 함께 포함된다. 서버만으로는 도구를 호출할 수 없으므로 클로드 데스크톱, 커서, 클라인처럼 모델 콘텍스트 프로토콜 기반 도구 호출을 지원하는 언어 모델 애플리케이션도 필요하며, 글에서는 이러한 프로그램을 모델 콘텍스트 프로토콜 클라이언트라고 부른다. 따라서 기본 구성은 파이썬 함수를 실행하고 공개하는 그라디오 서버와, 공개된 도구의 정보를 읽어 실제 호출을 요청하는 클라이언트로 나뉜다. 글은 2025년 9월 갱신 내용을 반영해 리소스, 프롬프트, 강화된 인증을 비롯한 최신 기능도 함께 소개한다.

3. 문자 개수 계산기로 살펴본 최소 구현

기본 예제는 단어나 문구에서 특정 문자가 몇 번 나타나는지 계산하는 letter_counter 함수다. 함수는 입력 문자열과 찾을 문자를 모두 소문자로 바꾼 뒤 count 기능을 사용하므로 대문자와 소문자를 구분하지 않고 출현 횟수를 반환한다. 이 함수를 두 개의 텍스트 입력과 하나의 숫자 출력으로 구성된 그라디오 인터페이스에 연결하고, 제목과 설명을 지정해 일반 웹 애플리케이션으로 만든다. 마지막으로 launch 호출에 mcp_server 값을 참으로 전달하면 웹 인터페이스, 모델 콘텍스트 프로토콜 서버, 서버 주소 출력이 함께 활성화된다. 별도의 도구 등록 코드를 대량으로 작성하지 않아도 기존 함수가 호출 가능한 도구로 변환된다는 점이 이 예제의 핵심이며, 함수 문서 문자열은 도구의 목적과 입력 매개변수를 설명하는 자료로 사용된다.

4. 서버 주소 등록과 클라이언트 호환성

실행된 서버는 기본적으로 서버 주소와 포트 아래의 gradio_api/mcp/sse 경로에서 접근할 수 있으며, 클라이언트 설정의 mcpServers 항목에 이 주소를 등록하면 된다. 커서, 클라인, 타이니 에이전트처럼 SSE 기반 서버를 지원하는 클라이언트에서는 서버 이름과 URL을 지정하는 설정만으로 연결할 수 있다. 정확한 설정과 도구 정보를 확인하려면 그라디오 앱 하단의 응용 프로그래밍 인터페이스 보기 링크를 연 뒤 모델 콘텍스트 프로토콜 항목을 선택할 수 있다. 클로드 데스크톱처럼 SSE 기반 서버를 직접 지원하지 않는 클라이언트에서는 Node.js를 설치한 후 npx로 mcp-remote를 실행하고, 해당 프로그램에 그라디오 서버 주소를 전달하는 중계 구성이 필요하다. 글 하단의 사용자 질문과 저자 답변도 클로드 데스크톱 오류의 원인이 이러한 SSE 미지원에 있으며 같은 우회 설정을 사용해야 한다고 재확인한다.

5. 도구를 넘어선 리소스와 프롬프트

고급 기능에서는 모델 콘텍스트 프로토콜이 실행 가능한 도구뿐 아니라 데이터를 노출하는 리소스와 재사용 가능한 템플릿을 정의하는 프롬프트도 지원한다는 점을 설명한다. 그라디오는 데코레이터를 제공해 세 기능을 한 서버에 구성할 수 있으며, 일반 인터페이스 함수는 기본적으로 도구로 등록되므로 예제의 tool 데코레이터는 필수가 아니다. 예제의 add 함수는 두 수를 더하는 도구이고, get_greeting 함수는 이름이 포함된 greeting 형식의 주소를 통해 개인화된 인사말 리소스를 반환한다. greet_user 함수는 친근함, 격식, 편안함 가운데 선택된 문체와 사용자 이름을 결합해 인사말 작성을 지시하는 프롬프트를 생성한다. 세 함수는 탭 인터페이스로 묶여 사람에게는 각각의 화면으로 제공되는 동시에, 서버에서는 도구·리소스·프롬프트라는 서로 다른 프로토콜 기능으로 활용된다.

6. 사용자 화면과 분리된 전용 함수

모든 모델용 기능을 사용자 인터페이스에 노출할 필요는 없으며, 그라디오는 gr.api를 사용해 서버에서만 사용할 수 있는 함수를 등록할 수 있다. 예제의 slice_list 함수는 목록과 시작·종료 인덱스를 받아 지정된 범위를 잘라 반환하지만, 화면에는 이 함수를 조작하는 입력 요소가 표시되지 않는다. 블록 기반 애플리케이션에는 모델 콘텍스트 프로토콜 전용 도구가 포함되어 있다는 안내 문구만 배치되고, 실제 함수는 gr.api 호출을 통해 서버에 연결된다. 이 방식은 사람에게 필요한 시각적 작업 흐름과 언어 모델이 호출할 내부 작업을 분리하면서도 하나의 그라디오 애플리케이션 안에서 관리할 수 있게 한다. 실행 단계에서는 다른 예제와 마찬가지로 mcp_server 값을 활성화하므로, 전용 함수 때문에 별도의 서버 실행 구조를 만들 필요가 없다.

7. 자동 변환과 파일·성능 관리

그라디오 애플리케이션의 각 응용 프로그래밍 인터페이스 엔드포인트는 이름, 설명, 입력 스키마를 가진 모델 콘텍스트 프로토콜 도구로 자동 변환되며, 생성된 도구와 스키마는 gradio_api/mcp/schema 경로나 응용 프로그래밍 인터페이스 보기 화면에서 확인할 수 있다. 서버 활성화는 launch의 mcp_server 매개변수뿐 아니라 GRADIO_MCP_SERVER 환경 변수를 참으로 설정하는 방식으로도 가능하다. 파일 처리 계층은 베이스64 문자열을 파일 데이터로 변환하고, 이미지 파일을 적절한 형식으로 처리하며, 임시 파일 저장소와 로컬 파일 업로드용 서버를 관리한다. 또한 모든 도구와 엔드포인트의 성공률, 지연 시간 백분위수, 요청 횟수를 자동으로 추적해 응용 프로그래밍 인터페이스 보기 화면에 표시한다. 성공률은 완전 성공이면 녹색, 전부 실패하면 빨간색, 그 사이는 주황색으로 구분되므로 사용자와 개발자가 더 빠르고 신뢰할 수 있는 도구를 판단하는 데 활용할 수 있다.

8. 호스팅과 비공개 서버 인증

완성된 그라디오 애플리케이션은 허깅페이스 스페이스에 무료로 게시해 외부에서 접근 가능한 모델 콘텍스트 프로토콜 서버로 운영할 수 있다. 글은 실제 공개 스페이스의 gradio_api/mcp/sse 주소를 클라이언트 설정에 추가하면 그 공간이 제공하는 도구를 즉시 사용할 수 있다고 설명한다. 공개 서버뿐 아니라 비공개 허깅페이스 스페이스도 지원하며, 이 경우 클라이언트 설정의 요청 헤더에 전달자 방식의 허깅페이스 토큰을 넣어 인증한다. 이는 같은 그라디오 기반 구현을 로컬 서버, 무료 공개 호스팅, 인증이 필요한 비공개 호스팅으로 확장할 수 있음을 보여준다. 결론적으로 그라디오는 도구 자동 변환에 더해 리소스, 프롬프트, 인증, 파일 처리, 성능 측정을 한 플랫폼에서 제공함으로써 맞춤 기능을 언어 모델에 연결하는 전체 과정을 단순화한다.

🧾 핵심 주장 / 시사점

  • 기존 그라디오 앱은 실행 옵션을 활성화하는 것만으로 사람용 웹 화면과 언어 모델용 도구 서버를 동시에 제공할 수 있으므로, 동일한 파이썬 함수를 두 소비자 유형에 재사용할 수 있다.
  • 함수의 문서 문자열이 도구 설명과 매개변수 정보에 활용되므로, 명확한 함수 설명과 입력·반환값 문서화가 클라이언트에서 도구를 올바르게 선택하고 호출하는 데 직접적인 영향을 준다.
  • 실제 연결 가능 여부는 서버 구현만이 아니라 클라이언트의 SSE 지원에도 좌우되며, 직접 지원하지 않는 클라이언트에서는 mcp-remote 같은 중계 구성이 필요하다.

✅ 액션 아이템

  • 그라디오를 MCP 추가 기능과 함께 설치한 뒤 mcp_server 옵션을 활성화해 기존 앱을 MCP 서버로 전환한다.
  • 공개된 각 API 엔드포인트의 이름·설명·입력 스키마 자동 매핑이 docstring 기반 파라미터 설명과 일치하는지 점검한다.
  • 클라이언트는 SSE 엔드포인트 등록을 기본으로 두고, SSE 미지원 환경은 mcp-remote 중계 경로를 병행 반영한다.

❓ 열린 질문

  • 자동 생성된 도구 설명과 실제 함수 동작 간 정합성은 실사용에서 어느 지점까지 허용 가능한가?
  • 클로드 데스크톱에서 mcp-remote 중계를 쓸 때 인증 체계와 지연 특성은 어떤 한계에서 수용할 수 있는가?
  • 로컬 실험에서 공개·비공개 호스팅으로 전환할 때 파일 변환·업로드·인증·성능 지표 흐름은 어디까지 동일하게 유지해야 하는가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.