Myanmar MCP Server
by amkyawdev
README.md
# ๐ฒ๐ฒ Myanmar MCP Server
<div align="center">
[](https://opensource.org/licenses/MIT)
[](https://www.typescriptlang.org/)
[](https://nodejs.org/)
**A Model Context Protocol (MCP) server with built-in animation system for Myanmar applications**
</div>
---
## โจ Features
| Feature | Description |
|---------|-------------|
| **๐ค MCP Protocol** | Full MCP SDK implementation with stdio transport |
| **๐ฌ Animation System** | Timeline-based animation engine with keyframes & triggers |
| **๐ง Extensible Tools** | GitHub integration, filesystem operations, custom tools |
| **๐ฆ TypeScript** | Full type safety with strict mode |
| **๐งช Testing** | Jest test suite with coverage reports |
| **๐ณ Docker** | Containerized deployment ready |
---
## ๐ Quick Start
### Installation
```bash
# 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
```
### Development
```bash
# Run with hot reload
npm run dev
# Run tests
npm test
# Lint code
npm run lint
# Format code
npm run format
```
---
## โ๏ธ Configuration
Create a `.env` file from the example:
```bash
cp .env.example .env
```
### Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `PORT` | Server port | `3000` |
| `HOST` | Server host | `localhost` |
| `LOG_LEVEL` | Logging level (`debug`, `info`, `warn`, `error`) | `info` |
| `GITHUB_TOKEN` | GitHub API token | - |
| `ENABLE_ANIMATION` | Enable animation system | `true` |
| `ENABLE_FILESYSTEM` | Enable filesystem tools | `true` |
| `ENABLE_GITHUB` | Enable GitHub tools | `true` |
---
## ๐ฌ Animation System
The heart of Myanmar MCP Server - a powerful timeline-based animation system.
### Usage Example
```typescript
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();
```
### Available Presets
| Preset | Description |
|--------|-------------|
| `fadeIn` | Simple opacity fade in |
| `slideInLeft` | Slide from left with fade |
| `bounce` | Bouncy vertical movement |
| `pulse` | Scale pulsing effect |
| `spin` | 360ยฐ rotation |
| `typewriter` | Text reveal effect |
| `wave` | Wave-like oscillation |
### Easing Functions
| Function | Use Case |
|----------|----------|
| `linear` | Constant speed |
| `ease-in` | Start slow, end fast |
| `ease-out` | Start fast, end slow |
| `ease-in-out` | Slow start and end |
| `bounce` | Bouncy effect |
| `elastic` | Spring-like motion |
### Triggers
```json
{
"triggers": [
{ "type": "time", "time": 1000, "action": "onComplete" },
{ "type": "condition", "condition": "progress >= 0.5", "action": "onMidpoint" },
{ "type": "event", "event": "userClick", "action": "pauseAnimation" }
]
}
```
### Animation JSON Format
```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": {}
}
```
---
## ๐ ๏ธ Available Tools
### GitHub Tool
```json
{
"action": "get_user",
"username": "amkyawdev"
}
```
**Actions:** `get_user`, `get_repo`, `list_repos`, `create_issue`
### Filesystem Tool
```json
{
"action": "read_file",
"path": "/path/to/file.txt"
}
```
**Actions:** `read_file`, `write_file`, `list_dir`, `create_dir`, `delete`
### Animation Tool
```json
{
"action": "run_script",
"script": "{ ... }",
"output": "console"
}
```
**Actions:** `play`, `stop`, `pause`, `seek`, `get_state`, `list_presets`, `get_preset`, `run_script`
---
## ๐ณ Docker
```bash
# Build and run
docker-compose up -d
# View logs
docker-compose logs -f
# Stop
docker-compose down
```
### Manual Docker Build
```bash
docker build -t myanmar-mcp-server .
docker run -p 3000:3000 --env-file .env myanmar-mcp-server
```
---
## ๐ Project Structure
```
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
```
---
## ๐ Scripts
| Command | Description |
|---------|-------------|
| `npm run dev` | Development with hot reload |
| `npm run build` | Build for production |
| `npm start` | Run production build |
| `npm test` | Run test suite |
| `npm run test:coverage` | Run with coverage report |
| `npm run lint` | Lint with ESLint |
| `npm run lint:fix` | Auto-fix linting issues |
| `npm run format` | Format with Prettier |
| `npm run typecheck` | TypeScript type checking |
---
## ๐งช Testing
```bash
# Run all tests
npm test
# Watch mode
npm run test:watch
# Coverage report
npm run test:coverage
```
---
## ๐จโ๐ผ Admin / Maintainer
| Role | Name | GitHub |
|------|------|--------|
| **Owner & Maintainer** | Aung Myat Kyaw | [@amkyawdev](https://github.com/amkyawdev) |
### Responsibilities
- Code review and merge approvals
- Release management
- Security vulnerability handling
- Community support and issue triage
### Contact
- **GitHub Issues:** For bug reports and feature requests
- **Email:** (Coming soon)
---
## ๐ค Contributing
Contributions are welcome! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'feat: add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
---
## ๐ Security
If you discover a security vulnerability, please report it via:
1. **GitHub Security Advisories** - Preferred method
2. **Email** - (Coming soon)
Please do not disclose security issues publicly until a fix is available.
---
## ๐ License
MIT ยฉ 2024 [amkyawdev](https://github.com/amkyawdev)
---
<div align="center">
**Made with โค๏ธ for Myanmar developers**
</div>
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues