Skip to main content
Glama
pyproject.toml4.73 kB
[project] name = "biomcp-python" version = "0.4.6" description = "Biomedical Model Context Protocol Server" authors = [{ name = "Ian Maurer", email = "imaurer@gmail.com" }] readme = "README.md" keywords = ['python'] requires-python = ">=3.10,<4.0" classifiers = [ "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Libraries :: Python Modules", ] dependencies = [ "certifi>=2025.1.31", "diskcache>=5.6.3", "httpx>=0.28.1", "mcp[cli]>=1.12.3,<2.0.0", "platformdirs>=4.3.6", "psutil>=7.0.0", "pydantic>=2.10.6", "python-dotenv>=1.0.0", "rich>=14.0.0", "typer>=0.15.2", "uvicorn>=0.34.2", "alphagenome>=0.1.0", ] [project.urls] Homepage = "https://genomoncology.com/biomcp/" Repository = "https://github.com/genomoncology/biomcp" Documentation = "https://genomoncology.com/biomcp/" [dependency-groups] dev = [ "pytest>=7.2.0", "pytest-xdist>=3.5.0", "pre-commit>=2.20.0", "tox-uv>=1.11.3", "deptry>=0.22.0", "mypy>=0.991", "pytest-cov>=4.0.0", "pytest-asyncio>=0.24.0", "ruff>=0.9.2", "mkdocs>=1.4.2", "mkdocs-material>=8.5.10", "mkdocstrings[python]>=0.26.1", "anyio>=4.8.0", # "ipython>=9.0.2", "pytest-bdd>=8.1.0", "tomlkit>=0.13.2", "assertpy>=1.1", "twine>=4.0.0", "pandas>=2.0.0", # Used for mocking AlphaGenome responses in tests "PyYAML>=6.0.0", # Used for mkdocs.yml parsing in scripts "pydantic-ai>=0.0.14", # For testing Pydantic AI integration ] [project.optional-dependencies] api = [ ] worker = [ "fastapi>=0.110.0", "starlette>=0.36.0", "uvicorn>=0.28.0", ] [build-system] requires = ["setuptools >= 61.0"] build-backend = "setuptools.build_meta" [tool.setuptools.package-data] biomcp = ["resources/*.md"] [project.scripts] biomcp = "biomcp.__main__:main" [tool.mypy] files = ["src"] ignore_missing_imports = true disallow_untyped_defs = false disallow_any_unimported = false no_implicit_optional = true check_untyped_defs = false warn_return_any = false warn_unused_ignores = true show_error_codes = true plugins = [ "pydantic.mypy" ] disable_error_code = [ "union-attr", "prop-decorator", ] [tool.pytest.ini_options] testpaths = ["tests"] addopts = "--import-mode=importlib" asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "function" markers = [ "integration: marks tests as integration tests (deselect with '-m \"not integration\"')", ] filterwarnings = [ # Ignore protobuf version warnings from AlphaGenome "ignore:Protobuf gencode version.*is exactly one major version older.*:UserWarning", # Ignore false positive warning from pytest-xdist about coroutines # This occurs during parallel test execution when mock objects are cleaned up "ignore:coroutine 'search_trials_unified' was never awaited:RuntimeWarning", ] [tool.ruff] target-version = "py310" line-length = 79 fix = true unsafe-fixes = true [tool.ruff.lint] select = [ # flake8-2020 "YTT", # flake8-bandit "S", # flake8-bugbear "B", # flake8-builtins "A", # flake8-comprehensions "C4", # flake8-debugger "T10", # flake8-simplify "SIM", # isort "I", # mccabe "C90", # pycodestyle "E", "W", # pyflakes "F", # pygrep-hooks "PGH", # pyupgrade "UP", # ruff "RUF", ] ignore = [ # LineTooLong "E501", # DoNotAssignLambda "E731", # Consider unpacking "RUF005", # Union for type annotations "UP007", # Asserts are ok when I say they are ok. "S101", ] [tool.ruff.lint.per-file-ignores] "tests/*" = ["S101"] "__init__.py" = ["I001"] "src/biomcp/variants/external.py" = ["C901"] # Complex API interactions are acceptable [tool.ruff.format] preview = true [tool.ruff.lint.flake8-bugbear] extend-immutable-calls = [ "fastapi.Depends", "fastapi.Query", "typer.Argument", "typer.Option", ] [tool.coverage.report] skip_empty = true [tool.coverage.run] branch = true source = ["src"] omit = [ "src/*/__main__.py", "src/*/server.py", "src/*/http_client.py", ] [tool.deptry] exclude = [ "example_scripts/python_sdk.py", "venv", ".venv", ".direnv", "tests", ".git", "build", "dist", "scripts", "spike", ] [tool.deptry.per_rule_ignores] DEP001 = ["alphagenome"] # Optional dependency, must be installed manually DEP002 = ["uvicorn"] DEP003 = ["biomcp", "alphagenome"]

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/genomoncology/biomcp'

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