mcp-server

kos5667/mcp-server

3.1

If you are the rightful owner of mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

This document provides a structured overview of a Model Context Protocol (MCP) server built using Node.js and TypeScript, with integration capabilities for AI models like Cloade and ChatGPT.

mcp-server

node.js, typescript, nest.js를 이용한 mcp서버 구축.

주로 사용하는. cluade, chatgpt 연동.

지원하는 Tools.

  • google sheets
  • google calender

Package Tree

mcp-server/
├── src/
│   ├── main.ts                          # 애플리케이션 부트스트랩
│   ├── app.module.ts                    # 루트 모듈
│   │
│   ├── common/                          # 공통 유틸리티
│   │   ├── decorators/                  # 커스텀 데코레이터
│   │   │   ├── mcp-provider.decorator.ts
│   │   │   ├── mcp-tool.decorator.ts
│   │   │   ├── mcp-resource.decorator.ts
│   │   │   └── mcp-prompt.decorator.ts
│   │   ├── interfaces/                  # 공통 인터페이스
│   │   │   ├── tool.interface.ts
│   │   │   ├── resource.interface.ts
│   │   │   └── prompt.interface.ts
│   │   ├── guards/                      # Guards
│   │   │   ├── rate-limit.guard.ts
│   │   │   └── auth.guard.ts
│   │   ├── interceptors/                # Interceptors
│   │   │   ├── logging.interceptor.ts
│   │   │   └── cache.interceptor.ts
│   │   ├── filters/                     # Exception Filters
│   │   │   └── provider.exception.filter.ts
│   │   └── pipes/                       # Validation Pipes
│   │       └── tool-validation.pipe.ts
│   │
│   ├── config/                          # 설정 모듈
│   │   ├── config.module.ts
│   │   ├── configuration.ts             # 설정 팩토리
│   │   └── validation.schema.ts         # 환경 변수 검증
│   │
│   ├── mcp/                             # MCP 코어 모듈
│   │   ├── mcp.module.ts
│   │   ├── mcp.service.ts              # MCP 서버 코어 로직
│   │   ├── mcp.controller.ts           # stdio 통신 핸들러
│   │   ├── registries/                 # Registry 서비스
│   │   │   ├── tool.registry.ts       # Tool 등록/조회
│   │   │   ├── resource.registry.ts   # Resource 등록/조회
│   │   │   └── prompt.registry.ts     # Prompt 등록/조회
│   │   ├── handlers/                   # MCP 요청 핸들러
│   │   │   ├── tools.handler.ts       # tools/call, tools/list
│   │   │   ├── resources.handler.ts   # resources/read, resources/list
│   │   │   └── prompts.handler.ts     # prompts/get, prompts/list
│   │   └── dto/
│   │       ├── call-tool.dto.ts
│   │       ├── list-resources.dto.ts
│   │       └── get-prompt.dto.ts
│   │
│   ├── providers/                       # 프로바이더 모듈들
│   │   │
│   │   ├── google/                      # 공통 Google 인증/API
│   │   │   ├── google.module.ts
│   │   │   ├── google-auth.service.ts  # OAuth 2.0
│   │   │   ├── google-api.service.ts   # 공통 API 클라이언트
│   │   │   └── config/
│   │   │       └── google.config.ts
│   │   │
│   │   ├── google-sheets/              # Google Sheets 모듈
│   │   │   ├── google-sheets.module.ts
│   │   │   ├── google-sheets.service.ts
│   │   │   ├── google-sheets.config.ts
│   │   │   ├── tools/                  # MCP Tools 정의
│   │   │   │   ├── read-range.tool.ts
│   │   │   │   ├── write-range.tool.ts
│   │   │   │   └── list-sheets.tool.ts
│   │   │   ├── resources/              # MCP Resources
│   │   │   │   └── spreadsheet.resource.ts
│   │   │   └── dto/
│   │   │       ├── read-range.dto.ts
│   │   │       └── write-range.dto.ts
│   │   │
│   │   ├── google-calendar/            # Google Calendar 모듈
│   │   │   ├── google-calendar.module.ts
│   │   │   ├── google-calendar.service.ts
│   │   │   ├── google-calendar.config.ts
│   │   │   ├── tools/
│   │   │   │   ├── create-event.tool.ts
│   │   │   │   ├── list-events.tool.ts
│   │   │   │   └── update-event.tool.ts
│   │   │   └── dto/
│   │   │       ├── create-event.dto.ts
│   │   │       └── list-events.dto.ts
│   │   │
│   │   ├── notion/                      # Notion 모듈 (향후)
│   │   │   ├── notion.module.ts
│   │   │   ├── notion.service.ts
│   │   │   ├── tools/
│   │   │   └── dto/
│   │   │
│   │   └── canva/                       # Canva 모듈 (향후)
│   │       ├── canva.module.ts
│   │       ├── canva.service.ts
│   │       ├── tools/
│   │       └── dto/
│   │
│   ├── auth/                            # 인증 모듈
│   │   ├── auth.module.ts
│   │   ├── auth.service.ts
│   │   ├── strategies/
│   │   │   ├── oauth.strategy.ts
│   │   │   └── api-key.strategy.ts
│   │   └── token-store.service.ts
│   │
│   ├── cache/                           # 캐시 모듈
│   │   ├── cache.module.ts
│   │   ├── cache.service.ts
│   │   └── cache.config.ts
│   │
│   └── logging/                         # 로깅 모듈
│       ├── logging.module.ts
│       ├── logging.service.ts
│       └── logging.config.ts
├── test/                                # 테스트
│   ├── unit/                            # 단위 테스트
│   │   ├── providers/
│   │   │   ├── google-sheets/
│   │   │   │   ├── google-sheets.service.spec.ts
│   │   │   │   └── tools/
│   │   │   │       └── read-range.tool.spec.ts
│   │   │   └── google-calendar/
│   │   ├── mcp/
│   │   │   └── tool.registry.spec.ts
│   │   └── auth/
│   ├── integration/                     # 통합 테스트
│   │   ├── google-sheets.integration.spec.ts
│   │   └── google-calendar.integration.spec.ts
│   └── e2e/                             # E2E 테스트
│       ├── mcp-protocol.e2e-spec.ts
│       └── google-sheets.e2e-spec.ts
├── scripts/                             # 유틸리티 스크립트
│   ├── setup-google-oauth.ts            # OAuth 설정 도구
│   └── test-mcp-stdio.ts                # MCP 연결 테스트
├── package.json
├── tsconfig.json
├── nest-cli.json
├── jest.config.cjs
├── .env.example
├── .env
├── Dockerfile
└── docker-compose.yml