[project]
name = "swagger-mcp"
version = "0.1.3"
description = "MCP server for Swagger/OpenAPI integration"
readme = "README.md"
requires-python = ">=3.10"
authors = [
{name = "Kyle Pena", email = "kyle.pena@kuzco.xyz"}
]
dependencies = [
"httpx>=0.28.1",
"mcp[cli]>=1.2.0",
"requests>=2.31.0",
"PyYAML~=5.3.1",
# Sample Server stuff
"fastapi>=0.95.1",
"uvicorn>=0.34.0",
"pydantic>=2.10.6",
"typing-extensions>=4.12.2",
"sqlalchemy>=1.4.48",
"databases[sqlite]>=0.7.0",
"aiosqlite>=0.18.0",
"python-multipart>=0.0.5",
]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12"
]
urls = {Homepage = "https://github.com/context-labs/swagger-mcp"}
[project.optional-dependencies]
dev = [
# Testing
"pytest>=8.1.1",
"pytest-asyncio>=0.23.5.post1",
"pytest-cov>=4.1.0",
# Logging dependencies
"python-logging-loki>=0.3.1",
"python-json-logger>=2.0.7",
# Other dependencies
"annotated-types>=0.7.0",
"anyio>=4.8.0",
"certifi>=2025.1.31",
"click>=8.1.8",
"h11>=0.14.0",
"httpcore>=1.0.7",
"httpx-sse>=0.4.0",
"idna>=3.10",
"markdown-it-py>=3.0.0",
"mdurl>=0.1.2",
"pydantic-core>=2.27.2",
"pydantic-settings>=2.8.1",
"pygments>=2.19.1",
"python-dotenv>=1.0.1",
"rich>=13.9.4",
"shellingham>=1.5.4",
"sniffio>=1.3.1",
"sse-starlette>=2.2.1",
"starlette>=0.46.1",
"typer>=0.15.2"
]
[project.scripts]
swagger-mcp = "swagger_mcp.openapi_mcp_server:main"
swagger-mcp-parse-dry-run = "swagger_mcp.parse_dry_run:main"
swagger-mcp-sample-server = "sample_rest_api.run:run_cli"
[build-system]
requires = [
"setuptools>=69.2.0",
"wheel>=0.43.0",
"build>=1.1.1",
"tomli>=2.0.1"
]
build-backend = "setuptools.build_meta"
[tool.setuptools]
packages = {find = {include = ["swagger_mcp*", "sample_rest_api*"]}}
[tool.pytest.ini_options]
testpaths = ["swagger_mcp/tests/unit", "swagger_mcp/tests/integration"]
python_files = ["test_*.py"]