Skip to content
Conduit

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!

cagataycali/strands-fun-toolscommunitylistedunreviewed

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`)
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "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

Awesome Strands Agents

Creative and utility tools for Strands AI agents - Bluetooth, vision, cursor control, audio, and more!

License Python

🔌 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

ToolInstall ExtraKey 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


↑↓ navigate openesc close