Skip to main content
Glama
amkyawdev
by amkyawdev

🇲🇲 Myanmar MCP Server

License: MIT TypeScript Node.js 18+

ミャンマーアプリケーション向けのアニメーションシステムを組み込んだModel Context Protocol (MCP)サーバー


✨ 特徴

機能

説明

🤖 MCPプロトコル

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: バグ報告と機能リクエスト用

  • メール: (近日公開)


🤝 コントリビューション

コントリビューションを歓迎します!ガイドラインについては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. プルリクエストを開く


🔒 セキュリティ

セキュリティの脆弱性を発見した場合は、以下の方法で報告してください:

  1. GitHub Security Advisories - 推奨方法

  2. メール - (近日公開)

修正が提供されるまで、セキュリティ問題を公開しないでください。


📝 ライセンス

MIT © 2024 amkyawdev


ミャンマーの開発者のために❤️を込めて作られました

Related MCP Connectors

Related MCP Servers