[project]
name = "mcp-server-whisper"
version = "1.1.0"
description = "An MCP server for transcribing audio files using OpenAI Whisper and GPT-4o"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"aiofiles>=25.1.0",
"aioresult",
"anyio",
"async-lru>=2.0.5",
"audioop-lts; python_version >= '3.13'",
"dotenv",
"ffmpeg-python",
"mcp>=1.17.0",
"openai>=2.4.0",
"pydantic-settings>=2.11.0",
"pydub",
]
[[project.authors]]
name = "Richie Caputo"
email = "rcaputo3@tjclp.com"
[dependency-groups]
dev = [
"mypy>=1.18.2",
"pre-commit",
"pytest",
"pytest-asyncio",
"pytest-anyio",
"pytest-mock",
"pytest-cov",
"ruff>=0.14.0",
"toml",
"types-aiofiles"
]
[build-system]
requires = [ "hatchling",]
build-backend = "hatchling.build"
[project.license]
text = "MIT"
[project.urls]
Homepage = "https://github.com/arcaputo3/mcp-server-whisper"
"Bug Tracker" = "https://github.com/arcaputo3/mcp-server-whisper/issues"
[project.scripts]
mcp-server-whisper = "mcp_server_whisper:main"
[tool.ruff]
line-length = 120
[tool.pydocstyle]
convention = "google"
[tool.ruff.lint]
select = [ "E", "F", "I", "D", "W",]
ignore = [ "D203", "D213",] # D203/D211 conflict, D212/D213 conflict - use Google style
fixable = [ "I", "E", "W",]
[tool.pytest.ini_options]
anyio_backends = ["asyncio"]
filterwarnings = [ "ignore:Unused async fixture loop scope:pytest.PytestWarning",]