MCP 서버 생성
모델 컨텍스트 프로토콜(MCP) 서버를 동적으로 생성, 실행 및 관리하는 동적 MCP 서버 관리 서비스입니다. 이 서비스 자체가 MCP 서버 역할을 하며, 다른 MCP 서버를 자식 프로세스로 실행/관리하여 유연한 MCP 생태계를 구축합니다.
주요 특징
- MCP 서버 코드의 동적 생성 및 실행
- TypeScript만 지원(JavaScript 및 Python 지원은 향후 릴리스에서 계획됨)
- 자식 MCP 서버에서 도구 실행
- 서버 코드 업데이트 및 재시작
- 불필요한 서버 제거
설치
참고: 이 서비스를 실행하려면 Docker를 사용하는 것이 좋습니다.
Docker 설치(권장)
지엑스피1
수동 설치(TypeScript만 해당)
# Clone repository
git clone https://github.com/tesla0225/mcp-create.git
cd mcp-create
# Install dependencies
npm install
# Build
npm run build
# Run
npm start
Claude Desktop과 통합
Claude Desktop 구성 파일( claude_desktop_config.json
)에 다음을 추가합니다.
{
"mcpServers": {
"mcp-create": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp-create"]
}
}
}
사용 가능한 도구
도구 이름 | 설명 | 입력 매개변수 | 산출 |
---|
템플릿에서 서버 만들기 | 템플릿에서 MCP 서버 만들기 | 언어: 문자열 | { 서버 ID: 문자열, 메시지: 문자열 } |
실행 도구 | 서버에서 도구 실행 | serverId: stringtoolName: stringargs: 개체 | 도구 실행 결과 |
get-server-tools | 서버 도구 목록 가져오기 | 서버 ID: 문자열 | { 도구: 도구 정의[] } |
삭제 서버 | 서버 삭제 | 서버 ID: 문자열 | { 성공: 부울, 메시지: 문자열 } |
리스트 서버 | 실행 중인 서버 목록 가져오기 | 없음 | { 서버: 문자열[] } |
사용 예
새 서버 만들기
{
"name": "create-server-from-template",
"arguments": {
"language": "typescript"
}
}
도구 실행
{
"name": "execute-tool",
"arguments": {
"serverId": "ba7c9a4f-6ba8-4cad-8ec8-a41a08c19fac",
"toolName": "echo",
"args": {
"message": "Hello, dynamic MCP server!"
}
}
}
기술 사양
- Node.js 18 이상
- TypeScript(필수)
- 종속성:
- @modelcontextprotocol/sdk: MCP 클라이언트/서버 구현
- child_process(Node.js 내장): 자식 프로세스 관리
- fs/promises(Node.js 내장): 파일 작업
- uuid: 고유한 서버 ID 생성
보안 고려 사항
- 코드 실행 제한: 서비스가 임의의 코드를 실행하므로 샌드박싱을 고려하세요.
- 리소스 제한: 메모리, CPU 사용량, 파일 수 등에 제한을 설정합니다.
- 프로세스 모니터링: 좀비 또는 폭주 프로세스를 모니터링하고 강제로 종료합니다.
- 경로 검증: 디렉토리 트래버설 공격을 방지하기 위해 파일 경로를 적절하게 검증합니다.
특허
MIT