[project]
name = "mcp-this"
version = "0.0.22"
description = "MCP Server that exposes CLI commands as tools for Claude using YAML configuration files"
readme = "README.md"
requires-python = ">=3.11"
authors = [
{name = "Shane Kercheval", email = "shane.kercheval@gmail.com"},
]
keywords = ["MCP", "Claude", "AI", "CLI", "tools"]
classifiers = [
"Development Status :: 4 - Beta",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Intended Audience :: Developers",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Utilities",
]
dependencies = [
"click>=8.1.8",
"python-dotenv>=1.0.1",
"pyyaml",
"mcp",
"jinja2>=3.1.6",
]
[dependency-groups]
dev = [
"coverage>=7.7.1",
"pytest>=8.3.5",
"pytest-asyncio>=0.25.3",
"pytest-timeout>=2.3.1",
"ruff>=0.11.0",
"pip>=25.0.1",
"ipykernel>=6.29.5",
"sik-llms",
"mcp[cli]",
"aiofiles>=24.1.0",
]
[project.scripts]
mcp-this = "mcp_this.__main__:main"
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.wheel]
packages = ["src/mcp_this"]
include = [
"src/mcp_this/configs/*.yaml",
"src/mcp_this/templates/*.jinja2",
]
[build-system]
requires = ["hatchling>=1.17.1"]
build-backend = "hatchling.build"
[tool.pytest.ini_options]
timeout = 60
timeout_method = "signal" # note this only works on unix; "thread" method (default) is safer but might not catch hanging subprocesses
testpaths = ["tests"]
pythonpath = ["src"]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"