UNPKG

@neirth/sony-camera-mcp

Version:

MCP Server for controlling Sony Alpha 6100 camera

251 lines (171 loc) 6.31 kB
# Sony Camera MCP Server A Model Context Protocol (MCP) server for controlling Sony Alpha cameras remotely. This server provides AI assistants with the ability to interact with Sony cameras using the Camera Remote API. ## Features - **Exposure Control**: Adjust ISO, shutter speed, and exposure compensation - **Photo Capture**: Take pictures and receive them as base64-encoded images - **Zoom Control**: Control camera zoom in/out with different modes - **Shoot Mode Management**: Switch between still and movie modes - **Live View**: Start and stop live view streaming - **Real-time Communication**: Direct integration with Sony Camera Remote API ## Quick Start The easiest way to use this MCP server is with npx: ```bash npx -y @neirth/sony-camera-mcp ``` ## Requirements - Sony Alpha camera with Wi-Fi capability and Camera Remote API support - Camera connected via Wi-Fi Direct or to the same network as your computer - Node.js 18+ (for development) > **Note**: This server has been tested and verified to work with the Sony Alpha 6100. Other Sony Alpha cameras with Camera Remote API support should work as well. ## Supported Sony Cameras This server works with Sony Alpha cameras that support the Camera Remote API, including: - Sony α7 series - Sony α6000 series - Sony FX series - And other compatible Sony cameras with Wi-Fi ## Configuration ### Environment Variables You can configure the server using environment variables: ```bash CAMERA_IP=192.168.122.1 # Camera IP address (default: 192.168.122.1) CAMERA_PORT=10000 # Camera port (default: 10000) DD_XML_PORT=64321 # Device description XML port (default: 64321) DEBUG=true # Enable debug logging (default: false) ``` ### Camera Setup 1. Enable Wi-Fi on your Sony camera 2. Set the camera to "Control with Smartphone" mode or enable Wi-Fi Direct 3. Connect your camera to your Wi-Fi network or establish a Wi-Fi Direct connection 4. Note the camera's IP address (usually found in camera network settings) > **Wi-Fi Direct**: If using Wi-Fi Direct, your camera will create its own network that you can connect to directly from your computer. This is often the easiest setup method. ## Available Tools ### `exposure_control` Control camera exposure settings. **Parameters:** - `action`: "get" or "set" - `parameter`: "iso", "shutter_speed", "ev", "white_balance" (for get/set operations) - `value`: New value (for set operations) **Examples:** - Get current ISO: `{"action": "get", "parameter": "iso"}` - Set ISO to 800: `{"action": "set", "parameter": "iso", "value": "800"}` - Get all exposure settings: `{"action": "get"}` ### `shoot_control` Capture photos. **Parameters:** - `action`: "capture" **Example:** - Take a picture: `{"action": "capture"}` ### `zoom_control` Control camera zoom. **Parameters:** - `action`: "in" or "out" - `type`: "1shot", "start", or "stop" **Example:** - Zoom in once: `{"action": "in", "type": "1shot"}` ### `shoot_mode` Manage shooting mode. **Parameters:** - `action`: "get" or "set" - `mode`: "still" or "movie" (for set operations) **Examples:** - Get current mode: `{"action": "get"}` - Set to still mode: `{"action": "set", "mode": "still"}` ### `live_view` Control live view streaming. **Parameters:** - `action`: "start" or "stop" **Examples:** - Start live view: `{"action": "start"}` - Stop live view: `{"action": "stop"}` ## Development ### Installation ```bash git clone <repository-url> cd sony_camera_mcp npm install ``` ### Building ```bash npm run build ``` ### Testing ```bash npm test ``` ### Running in Development Mode ```bash npm run dev ``` ### Contributing with Conventional Commits This project uses conventional commits for better changelog generation and automated versioning. #### Making Commits Use the interactive commit tool: ```bash npm run commit # or ./commit.sh ``` This will guide you through creating properly formatted commit messages. #### Manual Commits If you prefer to write commits manually, follow the conventional commit format: ``` <type>[optional scope]: <description> [optional body] [optional footer(s)] ``` **Types:** - `feat`: New feature - `fix`: Bug fix - `docs`: Documentation changes - `style`: Code style changes (formatting, etc.) - `refactor`: Code refactoring - `test`: Adding or updating tests - `chore`: Maintenance tasks - `perf`: Performance improvements - `ci`: CI/CD changes - `build`: Build system changes #### Creating Releases To create a new release: ```bash npm run release ``` This will: 1. Analyze commits since the last release 2. Determine the next version number 3. Generate/update CHANGELOG.md 4. Create a git tag 5. Commit the changes ### CI/CD Pipeline The project includes GitHub Actions workflows for: - **CI/CD Pipeline** (`.github/workflows/ci-cd.yml`): - Runs tests on multiple Node.js versions - Builds the project - Publishes to NPM on releases - Validates conventional commits on PRs - **Manual Release** (`.github/workflows/release.yml`): - Manually triggered releases - Choose release type (patch/minor/major) - Automated NPM publishing #### Required Secrets To enable NPM publishing, add the following secret to your GitHub repository: - `NPM_TOKEN`: Your NPM authentication token ## Integration with AI Assistants This MCP server is designed to work with AI assistants that support the Model Context Protocol. When integrated, AI assistants can: - Automatically adjust camera settings based on scene analysis - Capture photos and analyze them in real-time - Provide cinematography advice and apply optimal settings - Control multiple camera functions through natural language ## Troubleshooting ### Common Issues 1. **Camera not found**: Ensure the camera is connected to Wi-Fi or Wi-Fi Direct and the IP address is correct 2. **Connection timeout**: Check that both devices are on the same network or properly connected via Wi-Fi Direct 3. **Permission denied**: Make sure the camera is in "Control with Smartphone" mode or Wi-Fi Direct is enabled ### Debug Mode Enable debug logging to see detailed API communication: ```bash DEBUG=true npx -y @neirth/sony-camera-mcp ``` ## License MIT License ## Contributing Contributions are welcome! Please feel free to submit a Pull Request.