Skip to main content
Glama
pyproject.toml3.29 kB
[project] name = "sso-mcp-server" version = "0.3.0" description = "MCP server providing development checklists, process documentation, and other tools with Azure Entra ID SSO authentication" readme = "README.md" requires-python = ">=3.11" license = { text = "MIT" } authors = [ { name = "Development Team" } ] keywords = ["mcp", "sso", "azure", "checklist", "process", "ai-assistant", "development-tools"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", ] dependencies = [ "mcp>=1.24.0", "msal>=1.30.0", "msal-extensions>=1.2.0", "python-frontmatter>=1.1.0", "python-dotenv>=1.0.0", "structlog>=24.0.0", # Cloud mode (OAuth 2.1 Resource Server) "PyJWT>=2.10.1", "cryptography>=42.0.0", "httpx>=0.27.0", ] [project.optional-dependencies] dev = [ "pytest>=8.0.0", "pytest-asyncio>=1.0.0", "pytest-cov>=4.0.0", "ruff>=0.14.0", "bandit[toml]>=1.7.8", ] [project.scripts] sso-mcp-server = "sso_mcp_server.__main__:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/sso_mcp_server"] [tool.ruff] target-version = "py311" line-length = 100 src = ["src", "tests"] [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # Pyflakes "I", # isort "B", # flake8-bugbear "C4", # flake8-comprehensions "UP", # pyupgrade "ARG", # flake8-unused-arguments "SIM", # flake8-simplify "TCH", # flake8-type-checking "PTH", # flake8-use-pathlib "ERA", # eradicate "PL", # Pylint "RUF", # Ruff-specific rules ] ignore = [ "PLR0913", # Too many arguments "PLR2004", # Magic value comparison "PLC0415", # Import not at top-level (intentional for lazy loading) ] [tool.ruff.lint.isort] known-first-party = ["sso_mcp_server"] [tool.ruff.lint.per-file-ignores] "tests/**/*.py" = [ "ARG002", # Unused method argument - fixtures may be needed for side effects "SIM117", # Nested with statements - acceptable in tests for clarity ] [tool.ruff.format] quote-style = "double" indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto" [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "function" addopts = [ "-v", "--tb=short", "--strict-markers", ] markers = [ "unit: Unit tests", "integration: Integration tests", "slow: Slow-running tests", ] [tool.coverage.run] source = ["src/sso_mcp_server"] branch = true omit = [ "*/tests/*", "*/__main__.py", "*/server.py", # Requires full MCP integration test "*/browser.py", # Requires MSAL browser flow mocking ] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "def __repr__", "raise NotImplementedError", "if TYPE_CHECKING:", "if __name__ == .__main__.:", ] fail_under = 80 [tool.bandit] exclude_dirs = ["tests", ".venv", "venv"] skips = ["B101"] # Skip assert_used for tests

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DauQuangThanh/sso-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server