git-memory-mcp-server

nirutyodjai/git-memory-mcp-server

3.3

If you are the rightful owner of git-memory-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.

Git Memory MCP Server is a cutting-edge server that integrates Git repository management with advanced semantic memory capabilities, designed to enhance AI assistant functionalities.

5. Start Redis

Ubuntu/Debian

sudo systemctl start redis-server

macOS (Homebrew)

brew services start redis

Windows

redis-server


### 6. Configure Security Settings

#### API Key Authentication (Required for Production)
āđ€āļžāļīāđˆāļĄāļ•āļąāļ§āđāļ›āļĢ `GIT_MEMORY_API_KEY` āđƒāļ™ `.env` āđ€āļžāļ·āđˆāļ­āđ€āļ›āļīāļ”āđƒāļŠāđ‰āļ‡āļēāļ™ API key authentication āļŠāļģāļŦāļĢāļąāļš `/git/*` endpoints āđāļĨāļ° MCP tools:

```bash
GIT_MEMORY_API_KEY=your-secret-api-key-here

āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™:

# āđƒāļŠāđ‰ x-api-key header
curl -X POST http://localhost:3000/git/status \
  -H "Content-Type: application/json" \
  -H "x-api-key: your-secret-api-key-here" \
  -d '{"repoPath": "/path/to/repo", "json": true}'

# āļŦāļĢāļ·āļ­āđƒāļŠāđ‰ Authorization header (Bearer token)
curl -X POST http://localhost:3000/git/status \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-secret-api-key-here" \
  -d '{"repoPath": "/path/to/repo", "json": true}'

āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ: āļŦāļēāļāđ„āļĄāđˆāļ•āļąāđ‰āļ‡āļ„āđˆāļē GIT_MEMORY_API_KEY āļĢāļ°āļšāļšāļˆāļ°āđ„āļĄāđˆāļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰ API key (āđ€āļŦāļĄāļēāļ°āļŠāļģāļŦāļĢāļąāļš development āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™)

Repository Path Whitelist (Recommended)

āđ€āļžāļīāđˆāļĄāļ•āļąāļ§āđāļ›āļĢ GIT_MEMORY_ALLOWED_REPOS āđƒāļ™ .env āđ€āļžāļ·āđˆāļ­āļˆāļģāļāļąāļ” path āļ—āļĩāđˆāļ­āļ™āļļāļāļēāļ•āđƒāļŦāđ‰āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āļ„āļģāļŠāļąāđˆāļ‡ Git āļœāđˆāļēāļ™ CLI endpoints:

# Windows
GIT_MEMORY_ALLOWED_REPOS=D:\repos\project-a;D:\repos\project-b

# Linux/macOS
GIT_MEMORY_ALLOWED_REPOS=/var/repos/project-a:/var/repos/project-b

āļ„āļąāđˆāļ™āļŦāļĨāļēāļĒ path āļ”āđ‰āļ§āļĒ ; (Windows) āļŦāļĢāļ·āļ­ : (Linux/macOS). āļĢāļ°āļšāļšāļˆāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ§āđˆāļēāļ„āļģāļ‚āļ­āļ­āļĒāļđāđˆāļ āļēāļĒāđƒāļ™ path āļ—āļĩāđˆāļ­āļ™āļļāļāļēāļ•āļāđˆāļ­āļ™āļĢāļąāļ™āļ„āļģāļŠāļąāđˆāļ‡.

📊 Performance Testing

Load Testing

# Run basic load test
npm run test:load

# Run stress test with 3000 connections
npm run test:stress

# Run custom performance test
node test/performance-test.js --connections 3000 --duration 300

Testing Git CLI Endpoints

# Set environment variables
export GIT_MEMORY_API_KEY=your-test-api-key
export TEST_REPO_PATH=/path/to/test/repo

# Run endpoint tests
node test/test-git-endpoints.js

📈 Monitoring

Health Check Endpoint

curl http://localhost:3000/health

Metrics Endpoint (Prometheus format)

curl http://localhost:3000/metrics

Monitoring Dashboard

āļ”āļđāļ„āļđāđˆāļĄāļ·āļ­āļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļē Prometheus, Grafana āđāļĨāļ° Alerting āđ„āļ”āđ‰āļ—āļĩāđˆ

Key Metrics:

  • Active connections
  • Request rate and error rate
  • Average response time
  • Memory and CPU usage
  • Tool execution metrics

🚀 API Endpoints

Git Operations (HTTP)

MethodEndpointDescription
POST/git/statusGet repository status
POST/git/fetchFetch from remote repository
POST/git/rebaseRebase repository
POST/git/cloneClone repository
POST/git/pushPush to remote repository
POST/git/pullPull from remote repository
POST/git/mergeMerge branches
POST/git/branch/createCreate new branch
DELETE/git/branch/:nameDelete branch
GET/git/statsGet repository statistics
POST/git/stashStash changes
POST/git/stash/applyApply stashed changes
GET/git/diffGet diff between commits

WebSocket Real-time Features

Connect to ws://localhost:3000 for real-time updates:

const ws = new WebSocket('ws://localhost:3000');

// Subscribe to repository events
ws.send(JSON.stringify({
  type: 'subscribe_repo_events',
  data: { repoPath: '/path/to/repo' }
}));

// Subscribe to tool execution events
ws.send(JSON.stringify({
  type: 'subscribe_tool_executions',
  data: { toolName: 'git_status_cli' }
}));

// Execute tool with real-time updates
ws.send(JSON.stringify({
  type: 'execute_tool',
  data: {
    name: 'git_status_cli',
    arguments: { repoPath: '/path/to/repo', json: true }
  }
}));

ws.onmessage = (event) => {
  const message = JSON.parse(event.data);
  switch (message.type) {
    case 'repo_event':
      console.log('Repository event:', message.eventType);
      break;
    case 'tool_execution_event':
      console.log('Tool execution:', message.data.status);
      break;
  }
};

1. **Always set `GIT_MEMORY_API_KEY` in production**
2. **Configure `GIT_MEMORY_ALLOWED_REPOS` to limit repository access**
3. **Use HTTPS in production** (configure reverse proxy like nginx)
4. **Rotate API keys regularly**
5. **Monitor metrics endpoint** (`/metrics`) for suspicious activity
6. **Review logs** in `logs/error.log` and `logs/combined.log`

### Docker Deployment
```dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000 9090
CMD ["npm", "start"]

Production Deployment with PM2

# Install PM2 globally
npm install -g pm2

# Start with PM2
pm2 start ecosystem.config.js

# Monitor
pm2 monit

ðŸģ Kubernetes Deployment

Quick Start with Kubernetes

  1. Deploy to development:
# Deploy development environment
kubectl apply -k k8s/overlays/development

# Check deployment status
kubectl get pods -n git-memory
kubectl get services -n git-memory
  1. Deploy to production:
# Deploy production environment
kubectl apply -k k8s/overlays/production

# Check HPA and ingress
kubectl get hpa -n git-memory
kubectl get ingress -n git-memory
  1. Access services:
# Port forward for local access
kubectl port-forward -n git-memory service/git-memory-mcp-server 3000:80

# Access Jaeger UI
kubectl port-forward -n git-memory service/git-memory-jaeger 16686:16686

# Access Grafana
kubectl port-forward -n git-memory service/git-memory-grafana 3001:3000

Kubernetes Features

  • Horizontal Pod Autoscaling (HPA) with CPU/Memory metrics
  • Ingress with SSL/TLS āđāļĨāļ° rate limiting
  • Persistent Volumes āļŠāļģāļŦāļĢāļąāļš logs āđāļĨāļ° data
  • Network Policies āļŠāļģāļŦāļĢāļąāļš security
  • Service Monitoring āļŠāļģāļŦāļĢāļąāļš Prometheus
  • Kustomize āļŠāļģāļŦāļĢāļąāļš environment management

ðŸ’ŧ VS Code Development Setup

Recommended Extensions

āđ€āļ›āļīāļ” VS Code āđāļĨāļ°āļ•āļīāļ”āļ•āļąāđ‰āļ‡ extensions āļ—āļĩāđˆāđāļ™āļ°āļ™āļģ:

# Extensions āļˆāļ°āļ–āļđāļāđāļ™āļ°āļ™āļģāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāđ€āļĄāļ·āđˆāļ­āđ€āļ›āļīāļ” workspace
# āļŦāļĢāļ·āļ­āļ•āļīāļ”āļ•āļąāđ‰āļ‡āļ”āđ‰āļ§āļĒāļ•āļ™āđ€āļ­āļ‡āļˆāļēāļāđ„āļŸāļĨāđŒ .vscode/extensions.json

Debugging Configurations

  1. Debug Server: F5 āđ€āļžāļ·āđˆāļ­āđ€āļĢāļīāđˆāļĄ debugging
  2. Debug with Docker: Debug āļ āļēāļĒāđƒāļ™ Docker container
  3. Debug TypeScript: Debug āđ„āļŸāļĨāđŒ TypeScript
  4. Debug Tests: Debug unit tests
  5. Attach to Process: Attach āđ„āļ›āļĒāļąāļ‡ process āļ—āļĩāđˆāļāļģāļĨāļąāļ‡āļĢāļąāļ™

Development Tasks

āđƒāļŠāđ‰ VS Code Tasks āļŠāļģāļŦāļĢāļąāļš:

  • npm: dev - āđ€āļĢāļīāđˆāļĄ development server
  • npm: test - āļĢāļąāļ™ tests
  • npm: lint - āļĢāļąāļ™ ESLint
  • npm: format - āļˆāļąāļ”āļĢāļđāļ›āđāļšāļš code
  • docker: build - āļŠāļĢāđ‰āļēāļ‡ Docker image
  • k8s: deploy - Deploy āđ„āļ›āļĒāļąāļ‡ Kubernetes

Keyboard Shortcuts

  • Ctrl+Shift+P → "Tasks: Run Task" āļŠāļģāļŦāļĢāļąāļšāļĢāļąāļ™ tasks
  • F5 → āđ€āļĢāļīāđˆāļĄ debugging
  • Ctrl+Shift+D → āđ€āļ›āļīāļ” debug panel
  • Ctrl+Shift+E → āđ€āļ›āļīāļ” explorer
  • `Ctrl+`` → āļŠāļĨāļąāļš terminal

✅ āļŸāļĩāđ€āļˆāļ­āļĢāđŒāļŦāļĨāļąāļāļ—āļĩāđˆāļŠāļĄāļšāļđāļĢāļ“āđŒ

  1. 🔌 WebSocket Real-time Features

    • Repository event subscriptions āđāļĨāļ° broadcasting
    • Tool execution monitoring āļāļąāļš real-time updates
    • WebSocket client example āļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™
    • Connection management āļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡
  2. 🔧 Enhanced Git API Endpoints

    • Clone, push, pull, merge operations
    • Branch management (create/delete)
    • Repository statistics āđāļĨāļ° analytics
    • Stash operations āđāļĨāļ° diff viewing
    • Advanced Git operations service
  3. 📊 Monitoring & Observability

    • Distributed Tracing āļāļąāļš Jaeger/OpenTelemetry
    • Performance Profiling āļŠāļģāļŦāļĢāļąāļš memory āđāļĨāļ° CPU analysis
    • Structured Logging āļ—āļĩāđˆāļ„āļĢāļ­āļšāļ„āļĨāļļāļĄ
    • Prometheus Metrics āļŠāļģāļŦāļĢāļąāļš monitoring
    • Grafana Dashboards āļŠāļģāļŦāļĢāļąāļš visualization
  4. ðŸģ Docker & CI/CD Infrastructure

    • Development Environment āļ—āļĩāđˆāļŠāļĄāļšāļđāļĢāļ“āđŒāļ”āđ‰āļ§āļĒ Docker Compose
    • CI/CD Pipeline āļ”āđ‰āļ§āļĒ GitHub Actions
    • Production-ready Dockerfiles
    • Automated Testing āđāļĨāļ° deployment
  5. â˜ļïļ Kubernetes Deployment

    • Complete Kubernetes manifests āļŠāļģāļŦāļĢāļąāļš production
    • Multi-environment support (development/production)
    • Auto-scaling āđāļĨāļ° monitoring āļ”āđ‰āļ§āļĒ HPA āđāļĨāļ° ServiceMonitor
    • Security policies āđāļĨāļ° network isolation
  6. 🊝 Git Webhooks Support

    • GitHub/GitLab Webhooks endpoint āļžāļĢāđ‰āļ­āļĄ signature verification
    • Event Processing āļŠāļģāļŦāļĢāļąāļš push, pull request, issues
    • Integration āļāļąāļš WebSocket real-time features
    • Security Validation āđāļĨāļ° origin checking
  7. ⚡ Performance Profiling Tools

    • Memory Leak Detection āđāļĨāļ° monitoring
    • Git Operation Profiling āļŠāļģāļŦāļĢāļąāļš performance analysis
    • System Metrics Collection āđāļšāļš real-time
    • Performance Report Generation
  8. 📝 TypeScript Support

    • Complete Type Definitions āļŠāļģāļŦāļĢāļąāļšāļ—āļļāļāļŸāļĩāđ€āļˆāļ­āļĢāđŒ
    • ESLint & Prettier Configuration
    • Type-safe Development āļžāļĢāđ‰āļ­āļĄ JSDoc annotations
    • Gradual Migration Path āļˆāļēāļ JavaScript
  9. ðŸ’ŧ VS Code Development Environment

    • Comprehensive Extensions āļŠāļģāļŦāļĢāļąāļš development workflow
    • Debugging Configurations āļŠāļģāļŦāļĢāļąāļšāļ—āļļāļ scenarios
    • Build āđāļĨāļ° test tasks āļŠāļģāļŦāļĢāļąāļš automation
    • Kubernetes integration āļŠāļģāļŦāļĢāļąāļš deployment
  10. 🚀 Advanced Rate Limiting

    • Multiple algorithms (Token Bucket, Sliding Window, Fixed Window)
    • Dynamic rate limiting based on system load
    • Distributed rate limiting with Redis
    • WebSocket rate limiting āđāļĨāļ° per-user limits
    • Rate limiting analytics āđāļĨāļ° monitoring
  11. 📋 Comprehensive Audit Logging

    • Structured audit logs with multiple storage backends
    • GDPR compliance with data anonymization
    • Real-time log streaming āđāļĨāļ° filtering
    • Log retention policies āđāļĨāļ° rotation
    • Performance impact monitoring
  12. 🔗 Advanced Connection Pooling

    • Dynamic connection pool management
    • Connection health monitoring āđāļĨāļ° recovery
    • Load balancing across multiple database instances
    • Automatic failover āđāļĨāļ° retry mechanisms
    • Performance monitoring āđāļĨāļ° metrics
  13. ⚖ïļ Advanced Load Balancing

    • Multiple algorithms (Round Robin, Least Connections, IP Hash, etc.)
    • Dynamic algorithm switching based on system conditions
    • Health checking āđāļĨāļ° automatic failover
    • Session persistence āđāļĨāļ° sticky sessions
    • Geographic load balancing support
  14. ðŸ’ū Multi-Level Advanced Caching

    • Multi-tier caching (Memory, Redis, File/SSD)
    • Intelligent cache warming āđāļĨāļ° preloading
    • Adaptive TTL based on access patterns
    • Cache partitioning āđāļĨāļ° sharding
    • Background refresh āđāļĨāļ° stale-while-revalidate
  15. 🔄 API Versioning Support

    • Semantic versioning (Major.Minor.Patch)
    • Version negotiation (Accept header, URL path, query parameter)
    • Backward compatibility management
    • Breaking change detection āđāļĨāļ° notification
    • A/B testing support āļŠāļģāļŦāļĢāļąāļš API versions

ðŸŽŊ āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāļ—āļĩāđˆāļžāļąāļ’āļ™āļēāđāļĨāđ‰āļ§

  • Ultra-High-Performance Server āļĢāļ­āļ‡āļĢāļąāļš 3000+ concurrent connections
  • Enterprise-Grade Architecture āļ”āđ‰āļ§āļĒ microservices āđāļĨāļ° event-driven design
  • Scalable Infrastructure āļžāļĢāđ‰āļ­āļĄ Docker, Kubernetes āđāļĨāļ° auto-scaling
  • Comprehensive Monitoring āļ”āđ‰āļ§āļĒ distributed tracing āđāļĨāļ° advanced metrics
  • Security-First Design āļ”āđ‰āļ§āļĒ authentication, authorization āđāļĨāļ° encryption
  • Developer Experience āļ—āļĩāđˆāļ”āļĩāđ€āļĒāļĩāđˆāļĒāļĄāļ”āđ‰āļ§āļĒ TypeScript āđāļĨāļ° tooling āļ—āļĩāđˆāļ„āļĢāļ­āļšāļ„āļĨāļļāļĄ
  • Production-Ready āļŠāļģāļŦāļĢāļąāļš enterprise deployment āļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡āļŠāļļāļ”

📈 Performance & Scalability āļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļš

  • Connection Metrics: Active connections, WebSocket events, session management
  • Performance Metrics: Response times, memory usage, CPU utilization āļ—āļĩāđˆ optimize āđāļĨāđ‰āļ§
  • Git Operation Metrics: Tool execution times, success/failure rates āļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡
  • Caching Metrics: Multi-level cache hit rates, memory usage, Redis performance
  • Load Balancing Metrics: Algorithm performance, backend health, geographic routing
  • Rate Limiting Metrics: Request throttling, user behavior analysis, system protection
  • Audit Metrics: Log processing performance, compliance tracking, security monitoring

🚀 āļāļēāļĢāļ•āļīāļ”āļ•āļąāđ‰āļ‡āđāļĨāļ°āđƒāļŠāđ‰āļ‡āļēāļ™

# āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļžāļąāļ’āļ™āļē
git clone <repository-url>
cd git-memory-mcp-server
npm install

# āđ€āļĢāļīāđˆāļĄ development environment āļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡āļŠāļļāļ”
docker-compose -f docker-compose.dev.yml up -d

# āļŦāļĢāļ·āļ­ deploy production āļ—āļĩāđˆ scale āđ„āļ”āđ‰āđ„āļĄāđˆāļˆāļģāļāļąāļ”
kubectl apply -k k8s/overlays/production

# āđ€āļ‚āđ‰āļēāļ–āļķāļ‡ services āļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡
# - Server: http://localhost:3000 āļŦāļĢāļ·āļ­ Kubernetes service āļ—āļĩāđˆ scale āđ„āļ”āđ‰
# - Admin Dashboard: http://localhost:3000/admin (āļŠāļģāļŦāļĢāļąāļšāļˆāļąāļ”āļāļēāļĢ server)
# - Jaeger: http://localhost:16686 (distributed tracing)
# - Grafana: http://localhost:3001 (advanced monitoring)
# - Prometheus: http://localhost:9090 (metrics collection)
{{ ... }}
- **Comprehensive Git Operations** āļ”āđ‰āļ§āļĒ REST API, CLI āđāļĨāļ° advanced tooling
- **Advanced Monitoring** āđāļĨāļ° observability āļ—āļĩāđˆāļ„āļĢāļ­āļšāļ„āļĨāļļāļĄāļ—āļļāļ aspect
- **Production-Ready Infrastructure** āļžāļĢāđ‰āļ­āļĄ Docker, Kubernetes āđāļĨāļ° auto-scaling
- **Enterprise-Grade Security** āļ”āđ‰āļ§āļĒ authentication, authorization āđāļĨāļ° compliance
- **Developer Experience** āļ—āļĩāđˆāļ”āļĩāđ€āļĒāļĩāđˆāļĒāļĄāļ”āđ‰āļ§āļĒ TypeScript, VS Code integration āđāļĨāļ° tooling
- **Management Interface** āļ—āļĩāđˆāđƒāļŠāđ‰āļ‡āļēāļ™āļ‡āđˆāļēāļĒāļ”āđ‰āļ§āļĒ Admin Dashboard
- **Scalability āđāļĨāļ° Performance** āļ—āļĩāđˆāđ€āļŠāļ·āđˆāļ­āļ–āļ·āļ­āđ„āļ”āđ‰āļŠāļģāļŦāļĢāļąāļšāļ­āļ‡āļ„āđŒāļāļĢāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆ

āļĢāļ°āļšāļšāļ™āļĩāđ‰āļžāļĢāđ‰āļ­āļĄāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡āđƒāļ™āļ­āļ‡āļ„āđŒāļāļĢāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ– **scale āđ„āļ”āđ‰āđ„āļĄāđˆāļˆāļģāļāļąāļ”** āļ•āļēāļĄāļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢ! 🚀

---

## 🌟 **āļŠāļ–āļīāļ•āļīāđāļĨāļ°āļ„āļ§āļēāļĄāļŠāļģāđ€āļĢāđ‡āļˆ**

- **16+ Advanced Services** āļ—āļĩāđˆāļžāļąāļ’āļ™āļēāđ€āļŠāļĢāđ‡āļˆāļŠāļĄāļšāļđāļĢāļ“āđŒ ✅
- **Enterprise-Grade Architecture** āļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļš production workload ✅
- **Comprehensive Feature Set** āļ—āļĩāđˆāļ„āļĢāļ­āļšāļ„āļĨāļļāļĄāļ—āļļāļ requirement ✅
- **High-Performance Design** āļ—āļĩāđˆ optimize āļŠāļģāļŦāļĢāļąāļš maximum throughput ✅
- **Production-Ready Codebase** āļ—āļĩāđˆāļžāļĢāđ‰āļ­āļĄ deploy āļ—āļąāļ™āļ—āļĩ ✅
- **Modern Admin Interface** āļŠāļģāļŦāļĢāļąāļšāļˆāļąāļ”āļāļēāļĢ server āļ­āļĒāđˆāļēāļ‡āļ‡āđˆāļēāļĒāļ”āļēāļĒ âœ…

**āļĢāļ°āļšāļšāļ™āļĩāđ‰āđ„āļ”āđ‰āļžāļąāļ’āļ™āļēāđ„āļ›āļ–āļķāļ‡āļˆāļļāļ”āļŠāļđāļ‡āļŠāļļāļ”āļ‚āļ­āļ‡āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āđ€āļĨāļīāļĻāļ—āļēāļ‡āđ€āļ—āļ„āļ™āļīāļ„āđāļĨāđ‰āļ§āļ„āļĢāļąāļš!** 🚀âœĻ

## 📄 License

MIT