[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "universal-connector-mcp" version = "0.2.0" description = "A security-first, local-first MCP server that connects any API (OpenAPI/GraphQL/gRPC/SOAP) to AI agents through a single normalized operation model." readme = "README.md" requires-python = ">=3.10" license = { text = "MIT" } authors = [{ name = "Universal Connector MCP Contributors" }] keywords = ["mcp", "model-context-protocol", "openapi", "graphql", "grpc", "soap", "api", "ai", "agent", "security"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Software Development :: Libraries", "Topic :: Security", ] dependencies = [ "mcp[cli]>=1.2.0", "httpx>=0.27", "pydantic>=2.6", "prance>=23.6", "openapi-spec-validator>=0.7", "pyyaml>=6.0", "truststore>=0.9", ] [project.optional-dependencies] graphql = ["graphql-core>=3.2"] grpc = ["grpcio>=1.60", "grpcio-reflection>=1.60", "protobuf>=4.25"] soap = ["zeep>=4.2"] keyring = ["keyring>=24.0"] all = [ "graphql-core>=3.2", "grpcio>=1.60", "grpcio-reflection>=1.60", "protobuf>=4.25", "zeep>=4.2", "keyring>=24.0", ] dev = [ "pytest>=8.0", "pytest-asyncio>=0.23", "respx>=0.21", "ruff>=0.6", ] [project.scripts] universal-connector-mcp = "universal_connector.server:main" [project.urls] Homepage = "https://github.com/TeodorMCP/universal-connector-mcp" Repository = "https://github.com/TeodorMCP/universal-connector-mcp" Issues = "https://github.com/TeodorMCP/universal-connector-mcp/issues" [tool.hatch.build.targets.wheel] packages = ["src/universal_connector"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [tool.ruff] line-length = 100 target-version = "py310" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "W"] ignore = ["E501"]