trackmcp
Back to directory
akshitsinha

mcp-device-server

View on GitHub

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.

5 stars PythonAI & Machine Learning Updated Oct 1, 2025

Documentation

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:

code
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

ToolDescription
`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

ToolDescription
`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

ToolDescription
`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

ToolDescription
`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.

License

MIT License

Frequently asked questions

What is mcp-device-server?

mcp-device-server is 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.

How do I install mcp-device-server?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is mcp-device-server open source?

Yes — it is hosted on GitHub at https://github.com/akshitsinha/mcp-device-server and has 5 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP