[project]
name = "clipboard-mcp"
version = "0.1.0"
description = "MCP server for reading and writing clipboard data on Linux/macOS/Windows/WSL"
readme = "README.md"
license = "AGPL-3.0-only"
authors = [{ name = "Hong Minhee", email = "hong@minhee.org" }]
keywords = ["mcp", "clipboard", "model-context-protocol"]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU Affero General Public License v3",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Software Development :: Libraries :: Python Modules",
]
requires-python = ">=3.10"
dependencies = [
"mcp>=1.25.0",
"pyperclip>=1.11.0",
]
[project.urls]
Homepage = "https://github.com/dahlia/clipboard-mcp"
Repository = "https://github.com/dahlia/clipboard-mcp"
Issues = "https://github.com/dahlia/clipboard-mcp/issues"
[project.scripts]
clipboard-mcp = "clipboard_mcp:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[dependency-groups]
dev = [
"pyright>=1.1.407",
"pytest>=9.0.2",
"ruff>=0.14.0",
]
[tool.ruff]
target-version = "py310"
[tool.ruff.lint]
select = ["ALL"]
ignore = [
"D", # pydocstyle (docstring style)
"COM812", # missing-trailing-comma (conflicts with formatter)
"ISC001", # single-line-implicit-string-concatenation (conflicts with formatter)
]
[tool.ruff.lint.per-file-ignores]
"tests/*" = ["S101"] # allow assert in tests