An open API service indexing awesome lists of open source software.

https://github.com/akshitsinha/mcp-device-server

A Model Context Protocol (MCP) server for seamless integration with peripheral devices connected to your computer. Control, monitor, and manage hardware devices through a unified API.
https://github.com/akshitsinha/mcp-device-server

Last synced: 3 months ago
JSON representation

A Model Context Protocol (MCP) server for seamless integration with peripheral devices connected to your computer. Control, monitor, and manage hardware devices through a unified API.

Awesome Lists containing this project

README

          

# Devices MCP Server

A Model Context Protocol (MCP) server for seamless integration with peripheral devices connected to your computer. Control, monitor, and manage hardware devices through a unified API.

## Supported Tools

- **Camera Control**: Capture images and record video from connected cameras
- **Print Management**: Send documents to printers and manage print jobs
- **Audio Capabilities**: Record from microphones and play audio through speakers
- **Screen Capture**: Take screenshots and record screen activity from connected displays

## Prerequisites & Installation

### System Dependencies

The following system dependencies are required for full functionality:

- **FFMPEG**: Required for screen and camera recording functionality
- **PortAudio**: Required for audio recording functionality

#### macOS

```sh
brew install ffmpeg portaudio
```

#### Linux (Ubuntu/Debian)

```sh
sudo apt update
sudo apt install ffmpeg portaudio19-dev
```

#### Linux (Fedora)

```sh
sudo dnf install ffmpeg portaudio-devel
```

#### Windows

```powershell
winget install ffmpeg
```

### Project Installation

1. **Clone the repository**:

```bash
git clone https://github.com/akshitsinha/mcp-device-server.git
cd mcp-device-server
```

2. **Install Python dependencies**:

```bash
uv sync
```

## Usage

**Option A: Run directly**:

```bash
uv run src/main.py
```

**Option B: Use with Claude Desktop**:

Add the following configuration to your `claude_desktop_config.json`:

```json
{
"mcpServers": {
"mcp-device-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-device-server",
"run",
"src/main.py"
]
}
}
}
```

Then restart Claude Desktop to load the server.

## Configuration

Configure the server using environment variables. You can set these or create a `.env` file in the project root.

**Available configuration options**:

```
MCP_HOST=127.0.0.1 # Server host address
MCP_PORT=8000 # Server port
MCP_ENABLE_CAMERA=true # Enable camera functionality
MCP_ENABLE_PRINTER=true # Enable printer functionality
MCP_ENABLE_AUDIO=true # Enable audio functionality
MCP_ENABLE_SCREEN=true # Enable screen functionality
```

## Available MCP Tools

### Camera

| Tool | Description |
| ----------------------- | ------------------------------- |
| `list_cameras` | List all connected cameras |
| `get_camera_info` | Get detailed camera information |
| `capture_image` | Take a picture from a camera |
| `start_video_recording` | Begin video recording |
| `stop_video_recording` | Stop video recording |

### Printer

| Tool | Description |
| ------------------ | ------------------------- |
| `list_printers` | List available printers |
| `print_file` | Send a file to a printer |
| `print_as_pdf` | Print file as PDF |
| `get_print_job` | Get print job information |
| `cancel_print_job` | Cancel a print job |

### Audio

| Tool | Description |
| -------------------- | ----------------------------------- |
| `list_audio_devices` | List all audio input/output devices |
| `record_audio` | Record from an input device |
| `stop_record_audio` | Stop recording from an input device |
| `play_audio` | Play audio through a device |

### Screen

| Tool | Description |
| -------------------- | ----------------------- |
| `list_displays` | List connected displays |
| `capture_screenshot` | Take a screenshot |
| `record_screen` | Start screen recording |
| `stop_record_screen` | Stop screen recording |

## Documentation

For detailed information about all available tools and their usage, see the [Tools Reference Wiki](https://github.com/akshitsinha/mcp-device-server/wiki/Tools-Reference-Wiki).

## License

[MIT License](LICENSE.md)