mcp server
strands-fun-tools
Creative and interactive tools for Strands AI agents - Build agents with unique capabilities for Bluetooth, vision, cursor control, screen reading, chess, and more!
Set up
Runs on your computer. Pick your agent and operating system.
Before you start
- uv (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
{
"mcpServers": {
"strands-fun-tools": {
"command": "uvx",
"args": [
"strands-fun-tools"
]
}
}
}same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12
Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs
README
synced Oct 22, 2026🎨 Strands Fun Tools
Creative and utility tools for Strands AI agents - Bluetooth, vision, cursor control, audio, and more!
🔌 Use as an MCP server
Use strands-fun-tools from Claude Code, Claude Desktop, Cursor, Kiro, or any MCP client — every available tool (cursor, clipboard, chess, bluetooth, screen_reader, yolo_vision, take_photo, listen, dialog, and more) becomes an MCP tool.
claude mcp add fun -- uvx strands-fun-tools
Claude Desktop config:
{
"mcpServers": {
"fun": {
"command": "uvx",
"args": ["strands-fun-tools"]
}
}
}
Options:
strands-fun-tools --tools cursor,clipboard,take_photo # expose a subset
strands-fun-tools --skip bluetooth,chess # drop groups
strands-fun-tools --http --port 8000 # HTTP mode, multi-client
Tool groups import lazily — groups whose optional deps aren't installed are skipped automatically. Install extras for more tools:
uvx --with 'strands-fun-tools[all]' strands-fun-tools
📦 Installation
# Base installation (human_typer only)
pip install strands-fun-tools
# With specific features
pip install "strands-fun-tools[cursor,clipboard,vision]"
# Everything
pip install "strands-fun-tools[all]"
🛠️ Available Tools
🎮 Interaction
- human_typer - Human-like typing with emotions and typos
- cursor - Mouse & keyboard automation (pyautogui)
- clipboard - Clipboard monitoring & history
- dialog - Interactive terminal prompts
👁️ Vision
- screen_reader - OCR-based screen monitoring
- yolo_vision - Real-time object detection (YOLOv8)
- face_recognition - Face detection via AWS Rekognition
- take_photo - Camera capture & burst mode
🎤 Audio
- listen - Background audio transcription (Whisper)
📡 Connectivity
- bluetooth - BLE device monitoring & GATT operations
♟️ Games
- chess - Stockfish chess engine integration
🎨 Display
- spinner_generator - Custom loading animations
- template - Jinja2 template rendering
- asciimatics_ui - Terminal UI framework
🔧 Utilities
- utility - Crypto, encoding, hashing, JSON/YAML
- dynamic_package - Execute any Python package function
- npm - Run npm packages from Python
🚀 Quick Start
from strands import Agent
from strands_fun_tools import human_typer, cursor, clipboard
agent = Agent(
tools=[human_typer, cursor, clipboard],
system_prompt="You can type like a human and control the cursor!"
)
agent("Type 'Hello World!' with excited emotion and then copy it to clipboard")
📋 Tool Reference
| Tool | Install Extra | Key Actions |
|---|---|---|
| human_typer | (base) | Type with emotions: calm, excited, thoughtful, rushed, nervous |
| cursor | [cursor] | move, click, drag, type_text, hotkey |
| clipboard | [clipboard] | start, read, write, get_history |
| screen_reader | [vision] | start, capture_once, find_element |
| yolo_vision | [vision] | start, detect_once, query_objects |
| face_recognition | [face] | detect_faces, compare_faces |
| take_photo | [vision] | capture, burst, list_cameras |
| listen | [audio] | start, stop, get_transcripts |
| bluetooth | [bluetooth] | start, scan_once, list_devices, read_characteristic |
| chess | [chess] | new_game, get_best_move, make_move, analyze |
| spinner_generator | [display] | Display 50+ spinner types |
| template | [template] | create, render Jinja2 templates |
| utility | [utility] | encode, decode, hash, encrypt |
| dynamic_package | (base) | execute any Python function |
| npm | (base) | execute npm packages |
| dialog | [dialog] | Interactive terminal prompts |
| asciimatics_ui | [ui] | Terminal UI framework |
🎯 Examples
Background Monitoring
from strands import Agent
from strands_fun_tools import bluetooth, clipboard, yolo_vision
agent = Agent(tools=[bluetooth, clipboard, yolo_vision])
agent("""
Start monitoring:
1. Bluetooth devices nearby
2. Clipboard content changes
3. Objects visible on camera
""")
Autonomous Screen Control
from strands import Agent
from strands_fun_tools import screen_reader, cursor
agent = Agent(tools=[screen_reader, cursor])
agent("""
1. Find the 'Submit' button on screen
2. Click it
""")
Human-Like Typing
agent.tool.human_typer(
text="Hello World!",
emotion="excited", # calm, excited, thoughtful, rushed, nervous
typo_rate=2, # 0-10 percentage
thinking_pauses=True # Pause at punctuation
)
📚 Documentation
Full documentation at github.com/cagataycali/strands-fun-tools
🤝 Contributing
Issues and PRs welcome!
git clone https://github.com/cagataycali/strands-fun-tools.git
cd strands-fun-tools
pip install -e ".[all,dev]"
📄 License
Apache-2.0 - see LICENSE