npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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

Readme

FECT MCP Servers

npm version License: MIT

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-server

Individual 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-excel

Configure 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-key

Or 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 list

Credential Setup (Interactive)

Run the setup CLI to interactively configure and store credentials:

npx -y @astra-group/fect-mcp-server fect-setup

This 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:

  1. Go to https://api.slack.com/apps
  2. Create a new app or select an existing one
  3. Navigate to "OAuth & Permissions"
  4. Add Bot Token Scopes: channels:read, channels:history, chat:write, groups:read, groups:history, users:read, reactions:write
  5. Install the app to your workspace
  6. 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 build

Scripts

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 setup

Project 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 publish

Contributing

  1. Fork the repository
  2. Create a 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

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