mcp-clipboardify


Namemcp-clipboardify JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryMCP server providing clipboard access tools for AI assistants and automation workflows
upload_time2025-07-16 14:48:23
maintainerMCP Clipboard Server Contributors
docs_urlNone
authorMCP Clipboard Server Contributors
requires_python<4.0,>=3.11
licenseMIT
keywords mcp clipboard ai automation json-rpc tools
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # MCP Clipboard Server

A [Model Context Protocol (MCP)](https://spec.modelcontextprotocol.io/) server that provides clipboard access tools for AI assistants and automation workflows. Seamlessly integrate clipboard operations into your AI-powered applications.

[![PyPI version](https://badge.fury.io/py/mcp-clipboardify.svg)](https://badge.fury.io/py/mcp-clipboardify)
[![Python Support](https://img.shields.io/pypi/pyversions/mcp-clipboardify.svg)](https://pypi.org/project/mcp-clipboardify/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## ๐Ÿš€ Quick Start

Install the server:

```bash
pip install mcp-clipboardify
```

Start the server:

```bash
mcp-clipboardify
# or alternatively:
python -m mcp_clipboard_server
```

## โœจ Features

- **Cross-platform clipboard access** - Works on Windows, macOS, and Linux with platform-specific fallback handling
- **MCP protocol compliance** - Full JSON-RPC 2.0 over STDIO implementation with batch request support
- **JSON Schema validation** - Comprehensive parameter validation with detailed error messages
- **Two core tools**:
  - `get_clipboard` - Retrieve current clipboard content
  - `set_clipboard` - Set clipboard to provided text
- **Enhanced error handling** - Platform-specific guidance for troubleshooting clipboard issues
- **Graceful degradation** - Fails safely with empty string on read errors, detailed error messages on write failures
- **Size limits** - 1MB text limit to prevent memory issues
- **Unicode support** - Full UTF-8 support for international text and emoji
- **Type safety** - Built with TypedDict for reliable protocol compliance
- **Production ready** - Comprehensive testing across platforms with CI/CD pipeline

## ๐Ÿ“‹ Tools

### `get_clipboard`
Retrieves the current text content from the system clipboard.

**Parameters:** None

**Returns:** Current clipboard content as a string

### `set_clipboard`
Sets the system clipboard to the provided text content.

**Parameters:**
- `text` (string, required): The text content to copy to the clipboard
  - Maximum size: 1MB (1,048,576 bytes)
  - Supports Unicode text and emoji

**Returns:** Success confirmation

## ๐Ÿ”ง Usage Examples

### Basic MCP Client Communication

The server uses JSON-RPC 2.0 over STDIO. Here are example request/response patterns:

#### Initialize the connection:
```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2024-11-05",
    "capabilities": {},
    "clientInfo": {
      "name": "example-client",
      "version": "1.0.0"
    }
  }
}
```

#### List available tools:
```json
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/list",
  "params": {}
}
```

#### Get clipboard content:
```json
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "get_clipboard",
    "arguments": {}
  }
}
```

#### Set clipboard content:
```json
{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "tools/call",
  "params": {
    "name": "set_clipboard",
    "arguments": {
      "text": "Hello, World! ๐ŸŒ"
    }
  }
}
```

#### Batch Requests (JSON-RPC 2.0)
The server supports batch requests for processing multiple operations in a single call:
```json
[
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "get_clipboard",
      "arguments": {}
    }
  },
  {
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "set_clipboard",
      "arguments": {
        "text": "Batch operation result"
      }
    }
  }
]
```

## ๐Ÿ”ง JSON-RPC 2.0 Compliance

This server implements full JSON-RPC 2.0 specification with the following features:

### Supported Features
- โœ… **Single requests** - Standard request/response pattern
- โœ… **Batch requests** - Process multiple requests in one call
- โœ… **Notifications** - Fire-and-forget messages (e.g., `$/ping`)
- โœ… **Error handling** - Comprehensive error codes and messages
- โœ… **Parameter validation** - JSON Schema-based validation with detailed error reports

### Schema Validation
All tool parameters are validated against JSON schemas with helpful error messages:
- **Type validation** - Ensures parameters are correct types
- **Required fields** - Validates all required parameters are present
- **Size limits** - Enforces 1MB text size limit for clipboard operations
- **Additional properties** - Rejects unexpected parameters

### Error Codes
The server uses standard JSON-RPC 2.0 error codes plus MCP-specific extensions:
- `-32700` Parse error (invalid JSON)
- `-32600` Invalid Request (malformed JSON-RPC)
- `-32601` Method not found
- `-32602` Invalid params (schema validation failures)
- `-32603` Internal error
- `-32000` Server error (MCP-specific errors)

### Integration with MCP Clients

This server works with any MCP-compatible client. Example integration:

```python
import subprocess
import json

# Start the server
process = subprocess.Popen(
    ["mcp-clipboardify"],
    stdin=subprocess.PIPE,
    stdout=subprocess.PIPE,
    text=True
)

# Send initialize request
init_request = {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
        "protocolVersion": "2024-11-05",
        "capabilities": {},
        "clientInfo": {"name": "my-client", "version": "1.0.0"}
    }
}

process.stdin.write(json.dumps(init_request) + '\n')
process.stdin.flush()

# Read response
response = json.loads(process.stdout.readline())
print(response)
```

## ๐Ÿ—๏ธ Installation & Setup

### System Requirements

- **Python**: 3.8 or higher
- **Operating System**: Windows, macOS, or Linux
- **Dependencies**: pyperclip for cross-platform clipboard access

### Platform-Specific Setup

#### Linux
You may need to install additional packages for clipboard support:

```bash
# Ubuntu/Debian
sudo apt-get install xclip
# or
sudo apt-get install xsel

# Fedora/RHEL
sudo dnf install xclip
```

#### Windows & macOS
No additional setup required - clipboard access works out of the box.

### Install from PyPI

```bash
pip install mcp-clipboardify
```

### Install from Source

```bash
git clone https://github.com/fluffypony/mcp-clipboardify.git
cd mcp-clipboardify
poetry install
```

## ๐Ÿงช Development

### Setup Development Environment

1. **Clone the repository:**
   ```bash
   git clone https://github.com/fluffypony/mcp-clipboardify.git
   cd mcp-clipboardify
   ```

2. **Install Poetry** (if not already installed):
   ```bash
   curl -sSL https://install.python-poetry.org | python3 -
   ```

3. **Install dependencies:**
   ```bash
   poetry install
   ```

4. **Run the server in development:**
   ```bash
   poetry run python -m mcp_clipboard_server
   ```

### Testing

Run the test suite:

```bash
# Run all tests
poetry run pytest

# Run with coverage
poetry run pytest --cov=mcp_clipboard_server

# Run specific test categories
poetry run pytest tests/test_unit.py
poetry run pytest tests/test_integration.py
```

### Code Quality

```bash
# Type checking
poetry run mypy src/

# Linting
poetry run flake8 src/

# Formatting
poetry run black src/ tests/
```

## ๐Ÿ” Troubleshooting

### Platform Support

The MCP Clipboard Server provides comprehensive cross-platform support with intelligent fallback handling:

#### โœ… Windows
- **Requirements**: No additional dependencies
- **Supported**: Windows 10/11, Windows Server 2019+
- **Features**: Full Unicode support, CRLF line ending handling
- **Notes**: May require clipboard access permissions in some enterprise environments

#### โœ… macOS
- **Requirements**: macOS 10.15+ recommended
- **Supported**: Intel and Apple Silicon Macs
- **Features**: Full Unicode support, RTF content fallback to plain text
- **Notes**: Security permissions may be required (System Preferences > Privacy & Security)

#### โœ… Linux
- **Requirements**: X11 display server and clipboard utilities
- **Installation**:
  ```bash
  # Ubuntu/Debian
  sudo apt-get install xclip xsel

  # RHEL/CentOS/Fedora
  sudo yum install xclip xsel

  # Arch Linux
  sudo pacman -S xclip xsel
  ```
- **Supported Distributions**: Ubuntu, Debian, RHEL, CentOS, Fedora, Arch Linux
- **Features**: Full Unicode support, headless environment detection
- **Notes**: Requires DISPLAY environment variable for GUI clipboard access

#### ๐Ÿ”ง WSL (Windows Subsystem for Linux)
- **Requirements**: WSL2 with Windows 10 build 19041+
- **Installation**:
  ```bash
  sudo apt-get install wslu  # For clip.exe integration
  ```
- **Features**: Clipboard sharing with Windows host
- **Notes**: Use Windows Terminal or enable clipboard sharing in WSL configuration

#### ๐Ÿšซ Headless/Server Environments
- **Behavior**: Graceful degradation - read operations return empty string
- **Use Case**: Automated testing, CI/CD environments
- **Notes**: Write operations will fail with descriptive error messages

### Platform-Specific Guidance

The server automatically detects your platform and provides specific guidance when clipboard operations fail:

#### Linux Troubleshooting
```bash
# Missing utilities error
sudo apt-get install xclip xsel

# No display error
export DISPLAY=:0  # or run in desktop environment

# Headless system
# Read operations return empty string (graceful)
# Write operations fail with clear error message
```

#### WSL Troubleshooting
```bash
# Install Windows integration
sudo apt-get install wslu

# Enable clipboard sharing in ~/.wslconfig
[wsl2]
guiApplications=true
```

#### macOS Troubleshooting
```bash
# Security permissions
# Go to System Preferences > Privacy & Security > Input Monitoring
# Add Terminal or your application

# Sandboxed applications
# May have limited clipboard access
```

#### Windows Troubleshooting
```cmd
REM Antivirus blocking
REM Add exception for clipboard access

REM Enterprise policies
REM Check with IT administrator for clipboard permissions
```

### Common Issues

#### Platform Detection Issues
**Symptoms**: Unexpected platform-specific errors
**Solution**: The server automatically detects your environment. Check logs with `MCP_LOG_LEVEL=DEBUG` for detailed platform information.

#### Unicode Content Problems
**Symptoms**: International text or emoji not displaying correctly
**Solution**: Ensure your terminal/application supports UTF-8 encoding. The server handles Unicode correctly on all platforms.

#### Large Content Handling
**Solution**: The server enforces a 1MB limit. Split large content into smaller chunks.

#### Server Not Responding
**Solution**: Check that the client is sending proper JSON-RPC 2.0 formatted messages.

### Debugging

Enable debug logging:

```bash
# Set environment variable for detailed logs
export MCP_LOG_LEVEL=DEBUG
export MCP_LOG_JSON=true
mcp-clipboardify
```

### Getting Help

- **Platform Guide**: [Platform-specific setup instructions](docs/platform_guide.md)
- **Troubleshooting**: [Common issues and solutions](docs/troubleshooting.md)
- **Issues**: [GitHub Issues](https://github.com/fluffypony/mcp-clipboardify/issues)
- **Discussions**: [GitHub Discussions](https://github.com/fluffypony/mcp-clipboardify/discussions)
- **MCP Specification**: [Model Context Protocol](https://spec.modelcontextprotocol.io/)

### Installation Verification

After installation, verify everything works:

```bash
# Quick verification
mcp-clipboardify --help

# Comprehensive verification (requires download)
curl -sSL https://raw.githubusercontent.com/fluffypony/mcp-clipboardify/main/scripts/verify_installation.sh | bash

# Or with Python script
python -c "from scripts.verify_installation import InstallationVerifier; InstallationVerifier().run_all_tests()"
```

## ๐Ÿ“– Protocol Details

### MCP Compliance

This server implements the [Model Context Protocol](https://spec.modelcontextprotocol.io/) specification:

- **Transport**: JSON-RPC 2.0 over STDIO
- **Required methods**: `initialize`, `tools/list`, `tools/call`
- **Optional methods**: Ping notifications for keep-alive
- **Error handling**: Standard JSON-RPC error codes

### Message Format

All messages are line-delimited JSON objects:

```
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{...}}
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
```

### Error Codes

The server returns standard JSON-RPC 2.0 error codes:

- `-32700`: Parse error (invalid JSON)
- `-32600`: Invalid request (malformed JSON-RPC)
- `-32601`: Method not found
- `-32602`: Invalid params
- `-32603`: Internal error

## ๐Ÿค Contributing

We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.

### Development Workflow

1. Fork the repository
2. Create a feature branch: `git checkout -b feature/my-feature`
3. Make your changes
4. Add tests for new functionality
5. Run the test suite: `poetry run pytest`
6. Commit your changes: `git commit -am 'Add my feature'`
7. Push to the branch: `git push origin feature/my-feature`
8. Create a Pull Request

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ™ Acknowledgments

- [Model Context Protocol](https://spec.modelcontextprotocol.io/) specification
- [pyperclip](https://pypi.org/project/pyperclip/) for cross-platform clipboard access
- The Python community for excellent tooling and libraries

---

**Made with โค๏ธ for the AI and automation community**


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mcp-clipboardify",
    "maintainer": "MCP Clipboard Server Contributors",
    "docs_url": null,
    "requires_python": "<4.0,>=3.11",
    "maintainer_email": null,
    "keywords": "mcp, clipboard, ai, automation, json-rpc, tools",
    "author": "MCP Clipboard Server Contributors",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/4f/d9/80e568eb3de3a84a380df06f203a733687692c04941f35958738ac6cc270/mcp_clipboardify-1.0.0.tar.gz",
    "platform": null,
    "description": "# MCP Clipboard Server\n\nA [Model Context Protocol (MCP)](https://spec.modelcontextprotocol.io/) server that provides clipboard access tools for AI assistants and automation workflows. Seamlessly integrate clipboard operations into your AI-powered applications.\n\n[![PyPI version](https://badge.fury.io/py/mcp-clipboardify.svg)](https://badge.fury.io/py/mcp-clipboardify)\n[![Python Support](https://img.shields.io/pypi/pyversions/mcp-clipboardify.svg)](https://pypi.org/project/mcp-clipboardify/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## \ud83d\ude80 Quick Start\n\nInstall the server:\n\n```bash\npip install mcp-clipboardify\n```\n\nStart the server:\n\n```bash\nmcp-clipboardify\n# or alternatively:\npython -m mcp_clipboard_server\n```\n\n## \u2728 Features\n\n- **Cross-platform clipboard access** - Works on Windows, macOS, and Linux with platform-specific fallback handling\n- **MCP protocol compliance** - Full JSON-RPC 2.0 over STDIO implementation with batch request support\n- **JSON Schema validation** - Comprehensive parameter validation with detailed error messages\n- **Two core tools**:\n  - `get_clipboard` - Retrieve current clipboard content\n  - `set_clipboard` - Set clipboard to provided text\n- **Enhanced error handling** - Platform-specific guidance for troubleshooting clipboard issues\n- **Graceful degradation** - Fails safely with empty string on read errors, detailed error messages on write failures\n- **Size limits** - 1MB text limit to prevent memory issues\n- **Unicode support** - Full UTF-8 support for international text and emoji\n- **Type safety** - Built with TypedDict for reliable protocol compliance\n- **Production ready** - Comprehensive testing across platforms with CI/CD pipeline\n\n## \ud83d\udccb Tools\n\n### `get_clipboard`\nRetrieves the current text content from the system clipboard.\n\n**Parameters:** None\n\n**Returns:** Current clipboard content as a string\n\n### `set_clipboard`\nSets the system clipboard to the provided text content.\n\n**Parameters:**\n- `text` (string, required): The text content to copy to the clipboard\n  - Maximum size: 1MB (1,048,576 bytes)\n  - Supports Unicode text and emoji\n\n**Returns:** Success confirmation\n\n## \ud83d\udd27 Usage Examples\n\n### Basic MCP Client Communication\n\nThe server uses JSON-RPC 2.0 over STDIO. Here are example request/response patterns:\n\n#### Initialize the connection:\n```json\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"initialize\",\n  \"params\": {\n    \"protocolVersion\": \"2024-11-05\",\n    \"capabilities\": {},\n    \"clientInfo\": {\n      \"name\": \"example-client\",\n      \"version\": \"1.0.0\"\n    }\n  }\n}\n```\n\n#### List available tools:\n```json\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 2,\n  \"method\": \"tools/list\",\n  \"params\": {}\n}\n```\n\n#### Get clipboard content:\n```json\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 3,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_clipboard\",\n    \"arguments\": {}\n  }\n}\n```\n\n#### Set clipboard content:\n```json\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 4,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"set_clipboard\",\n    \"arguments\": {\n      \"text\": \"Hello, World! \ud83c\udf0d\"\n    }\n  }\n}\n```\n\n#### Batch Requests (JSON-RPC 2.0)\nThe server supports batch requests for processing multiple operations in a single call:\n```json\n[\n  {\n    \"jsonrpc\": \"2.0\",\n    \"id\": 1,\n    \"method\": \"tools/call\",\n    \"params\": {\n      \"name\": \"get_clipboard\",\n      \"arguments\": {}\n    }\n  },\n  {\n    \"jsonrpc\": \"2.0\",\n    \"id\": 2,\n    \"method\": \"tools/call\",\n    \"params\": {\n      \"name\": \"set_clipboard\",\n      \"arguments\": {\n        \"text\": \"Batch operation result\"\n      }\n    }\n  }\n]\n```\n\n## \ud83d\udd27 JSON-RPC 2.0 Compliance\n\nThis server implements full JSON-RPC 2.0 specification with the following features:\n\n### Supported Features\n- \u2705 **Single requests** - Standard request/response pattern\n- \u2705 **Batch requests** - Process multiple requests in one call\n- \u2705 **Notifications** - Fire-and-forget messages (e.g., `$/ping`)\n- \u2705 **Error handling** - Comprehensive error codes and messages\n- \u2705 **Parameter validation** - JSON Schema-based validation with detailed error reports\n\n### Schema Validation\nAll tool parameters are validated against JSON schemas with helpful error messages:\n- **Type validation** - Ensures parameters are correct types\n- **Required fields** - Validates all required parameters are present\n- **Size limits** - Enforces 1MB text size limit for clipboard operations\n- **Additional properties** - Rejects unexpected parameters\n\n### Error Codes\nThe server uses standard JSON-RPC 2.0 error codes plus MCP-specific extensions:\n- `-32700` Parse error (invalid JSON)\n- `-32600` Invalid Request (malformed JSON-RPC)\n- `-32601` Method not found\n- `-32602` Invalid params (schema validation failures)\n- `-32603` Internal error\n- `-32000` Server error (MCP-specific errors)\n\n### Integration with MCP Clients\n\nThis server works with any MCP-compatible client. Example integration:\n\n```python\nimport subprocess\nimport json\n\n# Start the server\nprocess = subprocess.Popen(\n    [\"mcp-clipboardify\"],\n    stdin=subprocess.PIPE,\n    stdout=subprocess.PIPE,\n    text=True\n)\n\n# Send initialize request\ninit_request = {\n    \"jsonrpc\": \"2.0\",\n    \"id\": 1,\n    \"method\": \"initialize\",\n    \"params\": {\n        \"protocolVersion\": \"2024-11-05\",\n        \"capabilities\": {},\n        \"clientInfo\": {\"name\": \"my-client\", \"version\": \"1.0.0\"}\n    }\n}\n\nprocess.stdin.write(json.dumps(init_request) + '\\n')\nprocess.stdin.flush()\n\n# Read response\nresponse = json.loads(process.stdout.readline())\nprint(response)\n```\n\n## \ud83c\udfd7\ufe0f Installation & Setup\n\n### System Requirements\n\n- **Python**: 3.8 or higher\n- **Operating System**: Windows, macOS, or Linux\n- **Dependencies**: pyperclip for cross-platform clipboard access\n\n### Platform-Specific Setup\n\n#### Linux\nYou may need to install additional packages for clipboard support:\n\n```bash\n# Ubuntu/Debian\nsudo apt-get install xclip\n# or\nsudo apt-get install xsel\n\n# Fedora/RHEL\nsudo dnf install xclip\n```\n\n#### Windows & macOS\nNo additional setup required - clipboard access works out of the box.\n\n### Install from PyPI\n\n```bash\npip install mcp-clipboardify\n```\n\n### Install from Source\n\n```bash\ngit clone https://github.com/fluffypony/mcp-clipboardify.git\ncd mcp-clipboardify\npoetry install\n```\n\n## \ud83e\uddea Development\n\n### Setup Development Environment\n\n1. **Clone the repository:**\n   ```bash\n   git clone https://github.com/fluffypony/mcp-clipboardify.git\n   cd mcp-clipboardify\n   ```\n\n2. **Install Poetry** (if not already installed):\n   ```bash\n   curl -sSL https://install.python-poetry.org | python3 -\n   ```\n\n3. **Install dependencies:**\n   ```bash\n   poetry install\n   ```\n\n4. **Run the server in development:**\n   ```bash\n   poetry run python -m mcp_clipboard_server\n   ```\n\n### Testing\n\nRun the test suite:\n\n```bash\n# Run all tests\npoetry run pytest\n\n# Run with coverage\npoetry run pytest --cov=mcp_clipboard_server\n\n# Run specific test categories\npoetry run pytest tests/test_unit.py\npoetry run pytest tests/test_integration.py\n```\n\n### Code Quality\n\n```bash\n# Type checking\npoetry run mypy src/\n\n# Linting\npoetry run flake8 src/\n\n# Formatting\npoetry run black src/ tests/\n```\n\n## \ud83d\udd0d Troubleshooting\n\n### Platform Support\n\nThe MCP Clipboard Server provides comprehensive cross-platform support with intelligent fallback handling:\n\n#### \u2705 Windows\n- **Requirements**: No additional dependencies\n- **Supported**: Windows 10/11, Windows Server 2019+\n- **Features**: Full Unicode support, CRLF line ending handling\n- **Notes**: May require clipboard access permissions in some enterprise environments\n\n#### \u2705 macOS\n- **Requirements**: macOS 10.15+ recommended\n- **Supported**: Intel and Apple Silicon Macs\n- **Features**: Full Unicode support, RTF content fallback to plain text\n- **Notes**: Security permissions may be required (System Preferences > Privacy & Security)\n\n#### \u2705 Linux\n- **Requirements**: X11 display server and clipboard utilities\n- **Installation**:\n  ```bash\n  # Ubuntu/Debian\n  sudo apt-get install xclip xsel\n\n  # RHEL/CentOS/Fedora\n  sudo yum install xclip xsel\n\n  # Arch Linux\n  sudo pacman -S xclip xsel\n  ```\n- **Supported Distributions**: Ubuntu, Debian, RHEL, CentOS, Fedora, Arch Linux\n- **Features**: Full Unicode support, headless environment detection\n- **Notes**: Requires DISPLAY environment variable for GUI clipboard access\n\n#### \ud83d\udd27 WSL (Windows Subsystem for Linux)\n- **Requirements**: WSL2 with Windows 10 build 19041+\n- **Installation**:\n  ```bash\n  sudo apt-get install wslu  # For clip.exe integration\n  ```\n- **Features**: Clipboard sharing with Windows host\n- **Notes**: Use Windows Terminal or enable clipboard sharing in WSL configuration\n\n#### \ud83d\udeab Headless/Server Environments\n- **Behavior**: Graceful degradation - read operations return empty string\n- **Use Case**: Automated testing, CI/CD environments\n- **Notes**: Write operations will fail with descriptive error messages\n\n### Platform-Specific Guidance\n\nThe server automatically detects your platform and provides specific guidance when clipboard operations fail:\n\n#### Linux Troubleshooting\n```bash\n# Missing utilities error\nsudo apt-get install xclip xsel\n\n# No display error\nexport DISPLAY=:0  # or run in desktop environment\n\n# Headless system\n# Read operations return empty string (graceful)\n# Write operations fail with clear error message\n```\n\n#### WSL Troubleshooting\n```bash\n# Install Windows integration\nsudo apt-get install wslu\n\n# Enable clipboard sharing in ~/.wslconfig\n[wsl2]\nguiApplications=true\n```\n\n#### macOS Troubleshooting\n```bash\n# Security permissions\n# Go to System Preferences > Privacy & Security > Input Monitoring\n# Add Terminal or your application\n\n# Sandboxed applications\n# May have limited clipboard access\n```\n\n#### Windows Troubleshooting\n```cmd\nREM Antivirus blocking\nREM Add exception for clipboard access\n\nREM Enterprise policies\nREM Check with IT administrator for clipboard permissions\n```\n\n### Common Issues\n\n#### Platform Detection Issues\n**Symptoms**: Unexpected platform-specific errors\n**Solution**: The server automatically detects your environment. Check logs with `MCP_LOG_LEVEL=DEBUG` for detailed platform information.\n\n#### Unicode Content Problems\n**Symptoms**: International text or emoji not displaying correctly\n**Solution**: Ensure your terminal/application supports UTF-8 encoding. The server handles Unicode correctly on all platforms.\n\n#### Large Content Handling\n**Solution**: The server enforces a 1MB limit. Split large content into smaller chunks.\n\n#### Server Not Responding\n**Solution**: Check that the client is sending proper JSON-RPC 2.0 formatted messages.\n\n### Debugging\n\nEnable debug logging:\n\n```bash\n# Set environment variable for detailed logs\nexport MCP_LOG_LEVEL=DEBUG\nexport MCP_LOG_JSON=true\nmcp-clipboardify\n```\n\n### Getting Help\n\n- **Platform Guide**: [Platform-specific setup instructions](docs/platform_guide.md)\n- **Troubleshooting**: [Common issues and solutions](docs/troubleshooting.md)\n- **Issues**: [GitHub Issues](https://github.com/fluffypony/mcp-clipboardify/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/fluffypony/mcp-clipboardify/discussions)\n- **MCP Specification**: [Model Context Protocol](https://spec.modelcontextprotocol.io/)\n\n### Installation Verification\n\nAfter installation, verify everything works:\n\n```bash\n# Quick verification\nmcp-clipboardify --help\n\n# Comprehensive verification (requires download)\ncurl -sSL https://raw.githubusercontent.com/fluffypony/mcp-clipboardify/main/scripts/verify_installation.sh | bash\n\n# Or with Python script\npython -c \"from scripts.verify_installation import InstallationVerifier; InstallationVerifier().run_all_tests()\"\n```\n\n## \ud83d\udcd6 Protocol Details\n\n### MCP Compliance\n\nThis server implements the [Model Context Protocol](https://spec.modelcontextprotocol.io/) specification:\n\n- **Transport**: JSON-RPC 2.0 over STDIO\n- **Required methods**: `initialize`, `tools/list`, `tools/call`\n- **Optional methods**: Ping notifications for keep-alive\n- **Error handling**: Standard JSON-RPC error codes\n\n### Message Format\n\nAll messages are line-delimited JSON objects:\n\n```\n{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{...}}\n{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/list\",\"params\":{}}\n```\n\n### Error Codes\n\nThe server returns standard JSON-RPC 2.0 error codes:\n\n- `-32700`: Parse error (invalid JSON)\n- `-32600`: Invalid request (malformed JSON-RPC)\n- `-32601`: Method not found\n- `-32602`: Invalid params\n- `-32603`: Internal error\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.\n\n### Development Workflow\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/my-feature`\n3. Make your changes\n4. Add tests for new functionality\n5. Run the test suite: `poetry run pytest`\n6. Commit your changes: `git commit -am 'Add my feature'`\n7. Push to the branch: `git push origin feature/my-feature`\n8. Create a Pull Request\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- [Model Context Protocol](https://spec.modelcontextprotocol.io/) specification\n- [pyperclip](https://pypi.org/project/pyperclip/) for cross-platform clipboard access\n- The Python community for excellent tooling and libraries\n\n---\n\n**Made with \u2764\ufe0f for the AI and automation community**\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "MCP server providing clipboard access tools for AI assistants and automation workflows",
    "version": "1.0.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/fluffypony/mcp-clipboardify/issues",
        "Changelog": "https://github.com/fluffypony/mcp-clipboardify/blob/main/CHANGELOG.md",
        "Documentation": "https://github.com/fluffypony/mcp-clipboardify/blob/main/README.md",
        "Homepage": "https://github.com/fluffypony/mcp-clipboardify",
        "Repository": "https://github.com/fluffypony/mcp-clipboardify"
    },
    "split_keywords": [
        "mcp",
        " clipboard",
        " ai",
        " automation",
        " json-rpc",
        " tools"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e56d8b23c2d707c6b9dbcb05258598a8d141874d5b57ef51e55891e87b5380c0",
                "md5": "77ae5bad1a5dc9c1c8bcbc95b77045bb",
                "sha256": "92630ab7a8668ff54ffc06142f1afc8f4f0d19082f67e6d5af9b8452379e831d"
            },
            "downloads": -1,
            "filename": "mcp_clipboardify-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "77ae5bad1a5dc9c1c8bcbc95b77045bb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.11",
            "size": 28031,
            "upload_time": "2025-07-16T14:48:22",
            "upload_time_iso_8601": "2025-07-16T14:48:22.106966Z",
            "url": "https://files.pythonhosted.org/packages/e5/6d/8b23c2d707c6b9dbcb05258598a8d141874d5b57ef51e55891e87b5380c0/mcp_clipboardify-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4fd980e568eb3de3a84a380df06f203a733687692c04941f35958738ac6cc270",
                "md5": "ca7457b09bae2100248f866b3a1a7015",
                "sha256": "7cd385222409be45485ad274b986ed53d328f46af37d54e6792e0b03c9f29c21"
            },
            "downloads": -1,
            "filename": "mcp_clipboardify-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "ca7457b09bae2100248f866b3a1a7015",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.11",
            "size": 25637,
            "upload_time": "2025-07-16T14:48:23",
            "upload_time_iso_8601": "2025-07-16T14:48:23.955107Z",
            "url": "https://files.pythonhosted.org/packages/4f/d9/80e568eb3de3a84a380df06f203a733687692c04941f35958738ac6cc270/mcp_clipboardify-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-16 14:48:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "fluffypony",
    "github_project": "mcp-clipboardify",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "mcp-clipboardify"
}
        
Elapsed time: 0.42990s