Docker를 사용한 MCP 서버
이 프로젝트는 MCP(모델 제어 프로토콜)를 OpenAI의 API와 통합하는 방법을 보여줍니다. 이를 통해 OpenAI가 Docker에서 실행되는 MCP 서버에서 노출된 도구에 액세스하여 사용할 수 있습니다.
필수 조건
시스템에 Docker가 설치됨
Git(저장소 복제)
Related MCP server: MCP Simple OpenAI Assistant
프로젝트 구조
server.py: 도구를 사용한 MCP 서버 구현client.py: 서버에 연결하고 에이전트를 호출하는 클라이언트Dockerfile: Docker 이미지를 빌드하기 위한 지침requirements.txt: 프로젝트에 대한 Python 종속성
데이터 흐름 설명
사용자 쿼리 : 사용자가 시스템에 쿼리를 보냅니다(예: "우리 회사의 휴가 정책은 무엇입니까?").
OpenAI API : OpenAI는 MCP 서버로부터 쿼리와 사용 가능한 도구를 수신합니다.
도구 선택 : OpenAI는 쿼리를 기반으로 사용할 도구를 결정합니다.
MCP 클라이언트 : 클라이언트는 OpenAI의 도구 호출 요청을 수신하여 MCP 서버로 전달합니다.
MCP 서버 : 서버는 요청된 도구(예: 지식 기반 데이터 검색)를 실행합니다.
응답 흐름 : 도구 결과는 MCP 클라이언트를 통해 OpenAI로 다시 흐릅니다.
최종 응답 : OpenAI는 도구 데이터를 통합하여 최종 응답을 생성합니다.
Docker로 실행
1단계: Docker 이미지 빌드
지엑스피1
2단계: Docker 컨테이너 실행
docker run -p 8050:8050 mcp-server이렇게 하면 Docker 컨테이너 내부에서 MCP 서버가 시작되고 포트 8050에 노출됩니다.
클라이언트 실행
서버가 실행되면 별도의 터미널에서 클라이언트를 실행할 수 있습니다.
python client.py클라이언트는 서버에 연결하여 사용 가능한 도구를 나열하고, 에이전트에게 전화하여 쿼리에 답변합니다.
문제 해결
연결 문제가 발생하는 경우:
서버가 실행 중인지 확인하세요 :
docker ps로 Docker 컨테이너가 실행 중인지 확인하세요.포트 매핑 확인 :
docker ps사용하거나docker run명령의 출력을 확인하여 포트가 올바르게 매핑되었는지 확인합니다.서버 로그 확인 :
docker logs <container_id>로 서버 로그를 보고 오류가 있는지 확인하세요.호스트 바인딩 : 컨테이너 외부에서 접근할 수 있도록 서버가
127.0.0.1대신0.0.0.0에 바인딩되도록 구성되었습니다. 문제가 지속되면 방화벽 설정을 확인해야 할 수 있습니다.네트워크 문제 : 원격 컴퓨터에서 Docker를 실행하는 경우 클라이언트 컴퓨터에서 포트에 액세스할 수 있는지 확인하세요.
노트
서버는 SSE(Server-Sent Events) 전송을 사용하도록 구성되어 있으며 포트 8050에서 수신합니다.
클라이언트는
http://localhost:8050/sse에서 서버에 연결합니다.클라이언트를 시작하기 전에 서버가 실행 중인지 확인하세요.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.