Skip to main content
Glama
amkyawdev
by amkyawdev

🇲🇲 Myanmar MCP Server

License: MIT TypeScript Node.js 18+

미얀마 애플리케이션을 위한 내장 애니메이션 시스템을 갖춘 Model Context Protocol (MCP) 서버


✨ 기능

기능

설명

🤖 MCP 프로토콜

stdio 전송을 지원하는 완전한 MCP SDK 구현

🎬 애니메이션 시스템

키프레임 및 트리거를 지원하는 타임라인 기반 애니메이션 엔진

🔧 확장 가능한 도구

GitHub 통합, 파일시스템 작업, 사용자 정의 도구

📦 TypeScript

엄격 모드의 완전한 타입 안전성

🧪 테스트

커버리지 리포트를 포함한 Jest 테스트 스위트

🐳 Docker

컨테이너화된 배포 준비 완료


Related MCP server: Maya MCP

🚀 빠른 시작

설치

# Clone the repository
git clone https://github.com/amkyawdev/myanmar-mcp-server.git
cd myanmar-mcp-server

# Install dependencies
npm install

# Build for production
npm run build

개발

# Run with hot reload
npm run dev

# Run tests
npm test

# Lint code
npm run lint

# Format code
npm run format

⚙️ 설정

예시에서 .env 파일을 생성하세요:

cp .env.example .env

환경 변수

변수

설명

기본값

PORT

서버 포트

3000

HOST

서버 호스트

localhost

LOG_LEVEL

로깅 수준 (debug, info, warn, error)

info

GITHUB_TOKEN

GitHub API 토큰

-

ENABLE_ANIMATION

애니메이션 시스템 활성화

true

ENABLE_FILESYSTEM

파일시스템 도구 활성화

true

ENABLE_GITHUB

GitHub 도구 활성화

true


🎬 애니메이션 시스템

Myanmar MCP Server의 핵심 - 강력한 타임라인 기반 애니메이션 시스템입니다.

사용 예시

import { AnimationEngine, getPreset } from './animation';

// Load a preset
const engine = new AnimationEngine();
engine.load(getPreset('bounce'));
engine.play();

// Or load a custom script
engine.load({
  version: '1.0',
  name: 'My Animation',
  tracks: [{
    id: 'opacity',
    property: 'opacity',
    duration: 1000,
    keyframes: [
      { time: 0, value: 0 },
      { time: 1000, value: 1, easing: 'ease-out' }
    ]
  }]
});

engine.play();

사용 가능한 프리셋

프리셋

설명

fadeIn

간단한 불투명도 페이드 인

slideInLeft

페이드와 함께 왼쪽에서 슬라이드

bounce

튀는 수직 움직임

pulse

크기 맥동 효과

spin

360° 회전

typewriter

텍스트 표시 효과

wave

파도 같은 진동

이징 함수

함수

사용 사례

linear

일정한 속도

ease-in

천천히 시작, 빠르게 종료

ease-out

빠르게 시작, 천천히 종료

ease-in-out

시작과 끝이 느림

bounce

튀는 효과

elastic

스프링 같은 움직임

트리거

{
  "triggers": [
    { "type": "time", "time": 1000, "action": "onComplete" },
    { "type": "condition", "condition": "progress >= 0.5", "action": "onMidpoint" },
    { "type": "event", "event": "userClick", "action": "pauseAnimation" }
  ]
}

애니메이션 JSON 형식

{
  "version": "1.0",
  "name": "My Animation",
  "description": "Animation description",
  "tracks": [
    {
      "id": "unique-track-id",
      "property": "opacity",
      "duration": 2000,
      "keyframes": [
        { "time": 0, "value": 0 },
        { "time": 1000, "value": 1, "easing": "ease-out" }
      ]
    }
  ],
  "triggers": [],
  "metadata": {}
}

🛠️ 사용 가능한 도구

GitHub 도구

{
  "action": "get_user",
  "username": "amkyawdev"
}

작업: get_user, get_repo, list_repos, create_issue

파일시스템 도구

{
  "action": "read_file",
  "path": "/path/to/file.txt"
}

작업: read_file, write_file, list_dir, create_dir, delete

애니메이션 도구

{
  "action": "run_script",
  "script": "{ ... }",
  "output": "console"
}

작업: play, stop, pause, seek, get_state, list_presets, get_preset, run_script


🐳 Docker

# Build and run
docker-compose up -d

# View logs
docker-compose logs -f

# Stop
docker-compose down

수동 Docker 빌드

docker build -t myanmar-mcp-server .
docker run -p 3000:3000 --env-file .env myanmar-mcp-server

📁 프로젝트 구조

myanmar-mcp-server/
├── src/
│   ├── index.ts              # Entry point
│   ├── server.ts             # MCP server class
│   ├── tools/                # Tool implementations
│   │   ├── github.tool.ts
│   │   ├── filesystem.tool.ts
│   │   └── index.ts
│   ├── animation/            # Animation system ✨
│   │   ├── engine.ts         # Animation engine
│   │   ├── timeline.ts       # Timeline management
│   │   ├── keyframes.ts      # Keyframe interpolation
│   │   ├── interpolators.ts  # Easing functions
│   │   ├── triggers.ts       # Event triggers
│   │   ├── renderer.ts       # Output renderers
│   │   ├── presets.ts        # Built-in presets
│   │   └── types.ts          # Type definitions
│   ├── types/                # Shared types
│   ├── utils/                # Utilities
│   │   ├── logger.ts
│   │   └── config.ts
│   ├── middleware/            # Request middleware
│   ├── errors/                # Error classes
│   ├── validators/            # Zod schemas
│   └── services/              # Business logic
├── tests/                     # Test files
├── examples/                  # Animation examples
├── dist/                      # Build output
└── package.json

📊 스크립트

명령어

설명

npm run dev

핫 리로드 개발

npm run build

프로덕션 빌드

npm start

프로덕션 빌드 실행

npm test

테스트 스위트 실행

npm run test:coverage

커버리지 리포트와 함께 실행

npm run lint

ESLint로 린트

npm run lint:fix

린트 문제 자동 수정

npm run format

Prettier로 포맷

npm run typecheck

TypeScript 타입 검사


🧪 테스트

# Run all tests
npm test

# Watch mode
npm run test:watch

# Coverage report
npm run test:coverage

👨💼 관리자 / 유지보수자

역할

이름

GitHub

소유자 및 유지보수자

Aung Myat Kyaw

@amkyawdev

책임

  • 코드 리뷰 및 병합 승인

  • 릴리스 관리

  • 보안 취약점 처리

  • 커뮤니티 지원 및 이슈 분류

연락처

  • GitHub Issues: 버그 신고 및 기능 요청

  • 이메일: (곧 제공 예정)


🤝 기여

기여를 환영합니다! 지침은 CONTRIBUTING.md를 참조하세요.

  1. 저장소를 포크하세요

  2. 기능 브랜치를 생성하세요 (git checkout -b feature/amazing-feature)

  3. 변경 사항을 커밋하세요 (git commit -m 'feat: add amazing feature')

  4. 브랜치에 푸시하세요 (git push origin feature/amazing-feature)

  5. Pull Request를 여세요


🔒 보안

보안 취약점을 발견하시면 다음 방법으로 신고해 주세요:

  1. GitHub Security Advisories - 선호 방법

  2. 이메일 - (곧 제공 예정)

수정 사항이 제공될 때까지 보안 문제를 공개적으로 공개하지 마세요.


📝 라이선스

MIT © 2024 amkyawdev


미얀마 개발자를 위해 ❤️로 제작되었습니다

Related MCP Connectors

Related MCP Servers