Minecraftnarratormcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Minecraftnarratormcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A fun MCP server that takes screenshots, describes what changed, generates hilarious narration, and plays it back as audio!
We made this product in Texas A&M's DATATHON 2025 - A hackathon with the focus of AI, ML, Computer Science, Data Science, and Statistics! <br></br>
#### Agent: 2nd Place 🏆 #### MCP(this repo): Best use of ElevenLabs 🏆 <br></br>
www.linkedin.com/in/jonathan-kalsky
https://www.linkedin.com/in/nianjin-yang/
https://www.linkedin.com/in/ethan-hince-a831a5381/
<br></br>
https://youtu.be/umaCNd4jPfY?si=QRRDb36p3LI-7tyr <br></br>
We do not allow the reproducing, forking, or stealing of our idea, code, or intellectual property. For information email [email protected]
<br></br> <br></br>
View: https://github.com/nianjindev/MinecraftMCPSender
python3 minecraft_reciever.pypython minecraft_reciever.py (windows)<br></br>
pip install -r requirements.txt.env file with your API keys:cp .env.example .env
# Edit .env and add your API keysTo include Minecraft gameplay events in the narration:
MinecraftMCP.java)python mincraft_client_only.pyThe narrator will describe both what's happening on screen AND in-game events like:
The client takes screenshots every 5 seconds and generates narrated audio:
python screenshot_client.pyThis will:
Note: The Minecraft receiver runs automatically in the background. No need to start it separately!
┌─────────────────┐<br></br> │ Minecraft Mod │ (Java)<br></br> │ (in game) │<br></br> └────────┬────────┘<br></br> │ HTTP POST<br></br> ▼<br></br> ┌─────────────────────┐<br></br> │ minecraft_receiver │ (Flask HTTP server)<br></br> │ Port 8080 │ Saves to minecraft_data.json<br></br> └────────┬────────────┘<br></br> │ File write<br></br> ▼<br></br> ┌─────────────────────┐<br></br> │ minecraft_data.json │ (Shared file)<br></br> └────────┬────────────┘<br></br> │ File read<br></br> ▼<br></br> ┌─────────────────────┐<br></br> │ screenshot_client │ Reads file, calls MCP tool<br></br> └────────┬────────────┘<br></br> │ MCP call<br></br> ▼<br></br> ┌─────────────────────┐<br></br> │ mcp_server.py │ Processes data via get_minecraft_input tool<br></br> └─────────────────────┘<br></br>
You can also use this as an MCP server in Kiro or other MCP clients:
{
"mcpServers": {
"screenshot-narrator": {
"command": "python",
"args": ["mcp_server.py"],
"env": {
"GEMINI_API_KEY": "your_key",
"ELEVENLABS_API_KEY": "your_key",
"SCREENSHOT_DIR": "./screenshots"
}
}
}
}screencapture to grab screenshots📸 Screenshot saved: screenshots/screenshot_20251108_143022.png
📸 Screenshot saved: screenshots/screenshot_20251108_143027.png
==================================================
🎬 Processing screenshots...
==================================================
📋 Getting screenshots...
🔍 Describing changes...
Description: The user has switched from their code editor to a web browser,
apparently giving up on debugging to search Stack Overflow instead.
🎭 Generating funny narration...
Narration: And here we observe the developer in their natural habitat,
abandoning all hope of solving the problem themselves and turning to the
ancient wisdom of strangers on the internet. Truly magnificent.
🎤 Converting to speech...
🔊 Playing audio: screenshots/narration_20251108_143030.mp3screencapture and afplay commandsscrot/gnome-screenshot for screenshots, various audio playersThis project uses sound effects from:
Sound effects are obtained via web scraping from MyInstants.com. This project:
If you use this project, please maintain this attribution and follow the same guidelines.
INTERVAL in screenshot_client.py to adjust screenshot frequencymcp_server.py for different comedy stylesmcp_server.py (ElevenLabs voices: Adam, Antoni, Arnold, Bella, Domi, Elli, Josh, Rachel, Sam, and more)get_sfx_for_narration() function to match different keywordsThe system uses AI to automatically select the perfect sound effect for each narration:
This gives unlimited variety - every narration gets a unique, contextually appropriate sound effect!
Example keywords extracted by AI: crash, laugh, explosion, scream, bell, drum, bruh, oof, yikes, gasp, applause, horn, punch, falling, and many more!
Sound effects are provided by:
Sounds are obtained via web scraping from MyInstants.com. This project complies with the API's usage requirements by providing proper attribution and is used for non-commercial, educational purposes only.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.