Supports deployment in Docker containers with network connectivity that enables communication between the MCP server and other containerized services like n8n.
Enables n8n workflow integration through an MCP Client node, allowing n8n to communicate with the server via SSE (Server-Sent Events) and use the server's 'echo' and 'dummy' tools.
Dummy MCP Server
이 프로젝트는 FastMCP
프레임워크를 사용하여 구축된 간단한 MCP (Meta-agent Communication Protocol) 서버입니다. 서버는 SSE (Server-Sent Events)를 통해 통신하며, echo
도구와 dummy
도구를 제공합니다.
주요 기술 스택
- FastAPI: 웹 프레임워크 (FastMCP의 기반)
- Uvicorn: ASGI 서버 (FastAPI 애플리케이션 실행)
- FastMCP: MCP 서버 구축을 위한 프레임워크 (버전 1.0.0)
- Docker & Docker Compose: 컨테이너화 및 서비스 관리
- Python: 주 개발 언어
프로젝트 구조
설정 및 실행
요구 사항
- Docker
- Docker Compose
로컬 실행 (Docker Compose 사용)
- 저장소 클론 (이미 로컬에 있는 경우 생략)
- Docker 이미지 빌드 및 컨테이너 실행:
프로젝트 루트 디렉토리에서 다음 명령을 실행합니다. 이 명령은 필요시 이미지를 빌드하고 백그라운드에서 컨테이너를 시작합니다.서버는 Docker 컨테이너 내부의
0.0.0.0:8002
에서 실행되며,docker-compose.yml
설정에 따라 호스트 머신의http://localhost:8002
(또는 Docker 호스트 IP의 8002 포트)로 노출됩니다. - 로그 확인:\
- 서버 중지:\
n8n 연동 가이드
dummy-mcp-server
를 n8n 워크플로우와 연동하려면 다음 단계를 따르십시오.
- Docker 네트워크:
dummy-mcp-server
컨테이너와 n8n 컨테이너가 동일한 Docker 네트워크 환경에서 실행되고 있어야 서로 통신할 수 있습니다.- 현재
docker-compose.yml
은dummy-mcp-server
서비스를 생성하며, 별도의 네트워크를 명시하지 않으면 Docker Compose가 생성하는 기본 네트워크에 연결됩니다. n8n 컨테이너도 이 네트워크에 연결되어 있거나, 또는 두 컨테이너가 공유하는 외부 네트워크(예:nginx-n8n-net
)에 함께 연결되어 있어야 합니다. - 만약 n8n과
dummy-mcp-server
가 동일한docker-compose.yml
파일 내에서 서비스로 정의되어 있다면, Docker Compose가 자동으로 같은 네트워크에 배치하므로 서비스 이름(컨테이너 이름)으로 서로를 찾을 수 있습니다.
- n8n MCP Client 노드 설정:
- n8n 워크플로우에서 "MCP Client" 노드를 추가합니다.
- SSE Endpoint: 다음 URL을 입력합니다.
dummy-mcp-server
:docker-compose.yml
에 정의된 서비스 이름입니다. Docker 내부 DNS가 이 이름을dummy-mcp-server
컨테이너의 IP로 해석합니다. (만약 n8n이 Docker 외부에서 실행되고dummy-mcp-server
만 Docker로 실행 중이라면,localhost
또는 Docker 호스트의 IP를 사용해야 합니다:http://localhost:8002/sse
)8002
:dummy-mcp-server
가 리스닝하는 포트입니다./sse
:FastMCP
라이브러리가 SSE 스트림을 위해 사용하는 기본 경로입니다.
- Authentication: 현재
dummy-mcp-server
는 인증을 사용하지 않으므로 "None"으로 설정합니다. - Tools to Include: "All"로 설정하거나 필요에 따라 특정 도구만 선택할 수 있습니다.
Python 의존성 (requirements.txt
)
다음은 주요 의존성 목록입니다 (전체 목록은 requirements.txt
파일 참조):
제공되는 도구
서버는 app/main.py
에 다음과 같은 두 가지 도구를 등록하여 제공합니다.
dummy
도구- 소스 파일:
app/tools/dummy.py
- 설명: 입력받은 문자열 메시지를 콘솔에 출력하고, 성공 상태와 함께 수신한 메시지를 반환하는 간단한 동기 도구입니다.
- 입력 파라미터:
message
(str): 더미 도구가 받을 문자열입니다.
- 반환:
{\"status\": \"success\", \"tool_message\": \"Dummy tool received: [입력된 메시지]\"}
- 소스 파일:
echo
도구- 소스 파일:
app/tools/echo.py
- 설명: SSE 스트리밍 기능을 시연하는 예제 도구입니다. 입력된 메시지를 3회 반복하고, 각 메시지 사이에 1초의 지연을 두어 SSE 스트림으로 반환합니다.
- 입력 파라미터:
message
(str): 에코할 문자열입니다.
- 반환: 스트리밍 응답 후
{\"status\": \"Echo stream completed\"}
를 반환합니다.
- 소스 파일:
MCP 서버 정보
- 이름: Dummy MCP Server
- 설명: FastMCP 1.0.0 with SSE, echo tool, and dummy tool.
- 호스트:
0.0.0.0
(Docker 컨테이너 내부) - 포트:
8002
(Docker 외부 및 내부 동일 포트 매핑) - 통신 방식: SSE (Server-Sent Events) - 기본 엔드포인트
/sse
사용.
This server cannot be installed
A simple Meta-agent Communication Protocol server built with FastMCP framework that provides 'echo' and 'dummy' tools via Server-Sent Events for demonstration and testing purposes.
Related MCP Servers
- -securityAlicense-qualityA server for sending messages via WeCom bots using FastMCP, supporting asynchronous communication and message tracking through webhooks.Last updated -339PythonMIT License
- AsecurityFlicenseAqualityA server implementing the Model Context Protocol (MCP) to support Agent8 SDK development by providing system prompts and code example search capabilities through stdio and SSE transports.Last updated -8TypeScript
- AsecurityFlicenseAqualityAn implementation of the Model Context Protocol (MCP) server using Server-Sent Events (SSE) for real-time communication, providing tools for calculations and dynamic resource templates.Last updated -1JavaScript
- -securityAlicense-qualityA demonstration server that implements the Model Context Protocol (MCP) SDK, providing tools and endpoints for server-sent events and message handling.Last updated -27TypeScriptMIT License