@astra-group/fect-mcp-server
v1.1.2
Published
MCP Servers for Slack Integration, Image Generation, Video Generation, Vision Analysis, TTS, Music Generation, and Excel
Downloads
390
Maintainers
Readme
FECT MCP Servers
Model Context Protocol (MCP) servers for Slack integration, Image Generation, Video Generation, Vision Analysis, Text-to-Speech, Music Generation, and Excel parsing.
All servers use stdio transport for communication with MCP clients like Claude Code, Claude Desktop, and Cursor.
Modules
| Module | Description | Required Env |
|--------|-------------|--------------|
| Slack | Slack workspace messaging & channel management | SLACK_BOT_TOKEN |
| Image | Image generation via Google Gemini 2.5 Flash Image | GOOGLE_API_KEY |
| Video | Video generation via Google Veo 3.1 | GOOGLE_API_KEY |
| Vision | Image analysis & OCR via Google Gemini 3 Flash | GOOGLE_API_KEY |
| TTS | Text-to-speech via Google Gemini 2.5 Flash TTS | GOOGLE_API_KEY |
| Music | Instrumental music generation via Google Lyria | GOOGLE_API_KEY |
| Excel | Excel file parsing | (none) |
Quick Start
Install via npx (Recommended)
No installation required — just configure your MCP client.
Combined server (all modules in one process):
claude mcp add fect-mcp -- npx -y @astra-group/fect-mcp-serverIndividual servers:
claude mcp add fect-slack -- npx -y -p @astra-group/fect-mcp-server fect-slack
claude mcp add fect-image -- npx -y -p @astra-group/fect-mcp-server fect-image
claude mcp add fect-video -- npx -y -p @astra-group/fect-mcp-server fect-video
claude mcp add fect-vision -- npx -y -p @astra-group/fect-mcp-server fect-vision
claude mcp add fect-tts -- npx -y -p @astra-group/fect-mcp-server fect-tts
claude mcp add fect-music -- npx -y -p @astra-group/fect-mcp-server fect-music
claude mcp add fect-excel -- npx -y -p @astra-group/fect-mcp-server fect-excelConfigure Environment Variables
API keys are passed via environment variables. Add them to ~/.zshrc (or ~/.bashrc):
# For Slack module
export SLACK_BOT_TOKEN=xoxb-your-token-here
# For Image/Video/Vision/TTS/Music modules
export GOOGLE_API_KEY=your-google-api-keyOr configure directly in your MCP client settings file (~/.claude.json):
{
"mcpServers": {
"fect-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@astra-group/fect-mcp-server"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token-here",
"GOOGLE_API_KEY": "your-google-api-key"
}
}
}
}Claude Desktop Configuration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"fect-mcp": {
"command": "npx",
"args": ["-y", "@astra-group/fect-mcp-server"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token-here",
"GOOGLE_API_KEY": "your-google-api-key"
}
}
}
}Cursor Configuration
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"fect-mcp": {
"command": "npx",
"args": ["-y", "@astra-group/fect-mcp-server"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token-here",
"GOOGLE_API_KEY": "your-google-api-key"
}
}
}
}Verify Installation
claude mcp listCredential Setup (Interactive)
Run the setup CLI to interactively configure and store credentials:
npx -y @astra-group/fect-mcp-server fect-setupThis stores credentials in your system keychain (macOS Keychain / Windows Credential Manager / Linux Secret Service).
Combined Server
The combined server (fect-mcp) loads modules conditionally based on available environment variables:
- Always loaded: Excel
- Requires
SLACK_BOT_TOKEN: Slack - Requires
GOOGLE_API_KEY: Image, Video, Vision, TTS, Music
Modules without required credentials are silently skipped.
Tools Reference
Slack Tools
| Tool | Description |
|------|-------------|
| slack_list_channels | List all channels in the workspace |
| slack_post_message | Send a message to a channel or thread |
| slack_get_history | Retrieve message history from a channel |
| slack_get_user_info | Get detailed user information |
| slack_add_reaction | Add an emoji reaction to a message |
| slack_search_channels | Search for channels by name |
Getting a Slack Bot Token:
- Go to https://api.slack.com/apps
- Create a new app or select an existing one
- Navigate to "OAuth & Permissions"
- Add Bot Token Scopes:
channels:read,channels:history,chat:write,groups:read,groups:history,users:read,reactions:write - Install the app to your workspace
- Copy the "Bot User OAuth Token" (starts with
xoxb-)
Image Generation Tools
| Tool | Description |
|------|-------------|
| image_text2img | Generate image from text prompt (returns base64) |
| image_img2img | Edit existing image with text prompt (returns base64) |
Supported Aspect Ratios: 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2, 21:9, 9:21
Video Generation Tools
| Tool | Description |
|------|-------------|
| video_text2video | Generate video from text prompt |
| video_img2video | Generate video from image (first frame) |
| video_extension | Extend existing video (max 141 seconds total) |
Specs: Veo 3.1, 8 seconds per generation, 16:9 or 9:16, ~1-3 min generation time
Optional: VIDEO_OUTPUT_PATH env var for default output directory.
Vision Analysis Tools
| Tool | Description |
|------|-------------|
| vision_analyze | Analyze local image file |
| vision_analyze_url | Analyze image from URL |
| vision_compare | Compare two images |
| vision_ocr | Extract text from image (OCR) |
Supported Languages: Korean (ko), English (en), Vietnamese (vi), Japanese (ja), Chinese (zh) Supported Image Formats: PNG, JPEG, GIF, WebP, BMP
TTS Tools
| Tool | Description |
|------|-------------|
| tts_generate | Convert text to single-speaker speech |
| tts_multi_speaker | Convert conversation script to multi-speaker audio (max 2) |
| tts_list_voices | List available 30 voices |
Specs: Gemini 2.5 Flash TTS, 30 voices, 24 languages, WAV output (16-bit PCM, 24kHz)
Optional: TTS_OUTPUT_PATH env var for default output directory.
| Voice | Characteristic | Voice | Characteristic | |-------|----------------|-------|----------------| | Zephyr | Bright | Puck | Upbeat | | Charon | Informative | Kore | Firm | | Fenrir | Excitable | Leda | Youthful | | Orus | Firm | Aoede | Breezy | | Callirrhoe | Easygoing | Autonoe | Bright | | Enceladus | Breathy | Iapetus | Clear | | Umbriel | Easygoing | Algieba | Smooth | | Despina | Smooth | Erinome | Clear | | Algenib | Gravelly | Rasalgethi | Informative | | Laomedeia | Upbeat | Achernar | Soft | | Alnilam | Firm | Schedar | Even | | Gacrux | Mature | Pulcherrima | Forward | | Achird | Friendly | Zubenelgenubi | Casual | | Vindemiatrix | Gentle | Sadachbia | Lively | | Sadaltager | Knowledgeable | Sulafat | Warm |
Recommendations:
- Professional/Business: Kore, Charon, Rasalgethi, Alnilam
- Friendly/Casual: Achird, Puck, Zubenelgenubi, Sulafat
- Calm/Gentle: Achernar, Vindemiatrix, Umbriel
- Energetic/Lively: Fenrir, Sadachbia, Laomedeia
- Clear Narration: Iapetus, Erinome, Schedar
| Code | Language | Code | Language | |------|----------|------|----------| | ko-KR | Korean | en-US | English (US) | | ja-JP | Japanese | vi-VN | Vietnamese | | zh-CN | Chinese (Simplified) | de-DE | German | | fr-FR | French | es-US | Spanish (US) | | pt-BR | Portuguese (Brazil) | it-IT | Italian | | ru-RU | Russian | th-TH | Thai | | id-ID | Indonesian | hi-IN | Hindi | | ar-EG | Arabic | nl-NL | Dutch | | pl-PL | Polish | tr-TR | Turkish | | ro-RO | Romanian | uk-UA | Ukrainian | | bn-IN | Bengali | mr-IN | Marathi | | ta-IN | Tamil | te-IN | Telugu |
Music Generation Tools
| Tool | Description |
|------|-------------|
| music_generate | Generate music from text prompt with genre/mood/instruments/BPM |
| music_generate_advanced | Generate music with weighted prompts and fine-grained control |
| music_list_options | List available genres, moods, and instruments |
Specs: Lyria RealTime, stereo WAV (48kHz), 5-300 seconds, instrumental only
Optional: MUSIC_OUTPUT_PATH env var for default output directory.
Genres (32): Acid Jazz, Afrobeat, Ambient, Blues, Bossa Nova, Breakbeat, Classical, Country, Disco, Drum and Bass, Dub, Dubstep, EDM, Electronic, Funk, Gospel, Hip Hop, House, Jazz, Latin, Lo-Fi, Metal, Minimal Techno, Pop, R&B, Reggae, Rock, Soul, Synthwave, Techno, Trance, World Music
Moods (25): Ambient, Atmospheric, Calm, Cheerful, Cinematic, Dark, Dreamy, Emotional, Energetic, Epic, Experimental, Happy, Hopeful, Intense, Melancholic, Mysterious, Nostalgic, Peaceful, Playful, Powerful, Relaxing, Romantic, Sad, Suspenseful, Uplifting
Instruments (22): 303 Acid Bass, Acoustic Guitar, Bass Guitar, Cello, Drums, Electric Guitar, Flute, Harp, Keyboard, Orchestra, Organ, Percussion, Piano, Saxophone, Strings, Synth, Synth Bass, Synth Lead, Synth Pad, Trumpet, Violin, Vocal Chops
Advanced Parameters:
| Parameter | Range | Default | Description | |-----------|-------|---------|-------------| | guidance | 0.0-6.0 | 4.0 | Prompt adherence | | bpm | 60-200 | - | Beats per minute | | density | 0.0-1.0 | - | Note density | | brightness | 0.0-1.0 | - | Tonal brightness | | temperature | 0.0-3.0 | 1.1 | Creativity level | | muteBass | boolean | false | Reduce bass | | muteDrums | boolean | false | Reduce drums |
Excel Tools
| Tool | Description |
|------|-------------|
| excel_read | Parse and read Excel files (.xlsx, .xls) |
Development
Prerequisites
- Node.js 18+
Setup
git clone https://github.com/ASTRA-TECHNOLOGY-COMPANY-LIMITED/fect-mcp-server.git
cd fect-mcp-server
npm install
npm run buildScripts
npm start # Combined server (all modules)
npm run start:<module> # Individual server (slack, image, video, vision, tts, music, excel)
npm run dev:<module> # Development mode with watch
npm test # Run tests
npm run setup # Interactive credential setupProject Structure
src/
├── combined-stdio.ts # Combined entry point (all modules)
├── shared/
│ ├── base-server.ts # MCP server factory
│ ├── error-utils.ts # Response helpers
│ ├── credential-*.ts # Credential management
│ └── path-utils.ts # File path utilities
├── slack/ # Each module follows 5-file pattern:
├── image/ # index.ts, client.ts, handlers.ts,
├── video/ # tools.ts, types.ts
├── vision/
├── tts/
├── music/
└── excel/Publishing
# Update version
npm version patch # or minor, major
# Publish to npm (build runs automatically)
npm publishContributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Commit Convention
Conventional Commits: feat:, fix:, docs:, refactor:, test:, chore:
License
MIT
Support
- Issues: https://github.com/ASTRA-TECHNOLOGY-COMPANY-LIMITED/fect-mcp-server/issues
- MCP Protocol: https://modelcontextprotocol.io
