Skip to main content
Glama
amkyawdev
by amkyawdev

🇲🇲 Myanmar MCP Server

License: MIT TypeScript Node.js 18+

Сервер Model Context Protocol (MCP) со встроенной системой анимации для приложений Мьянмы


✨ Возможности

Функция

Описание

🤖 MCP Protocol

Полная реализация MCP SDK с транспортом stdio

🎬 Система анимации

Анимационный движок на основе таймлайна с ключевыми кадрами и триггерами

🔧 Расширяемые инструменты

Интеграция с 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: для сообщений об ошибках и запросов функций

  • Email: (скоро)


🤝 Вклад в проект

Вклад приветствуется! Пожалуйста, ознакомьтесь с 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. Email — (скоро)

Пожалуйста, не раскрывайте проблемы безопасности публично, пока не будет доступно исправление.


📝 Лицензия

MIT © 2024 amkyawdev


Сделано с ❤️ для разработчиков Мьянмы

Related MCP Connectors

Related MCP Servers