[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"
[project]
name = "aind-metadata-mcp"
description = "MCP server for AIND metadata"
license = {text = "MIT"}
requires-python = ">=3.11"
authors = [
{name = "Allen Institute for Neural Dynamics"}
]
classifiers = [
"Programming Language :: Python :: 3"
]
readme = "README.md"
dynamic = ["version"]
dependencies = [
"aind-data-access-api",
"fastmcp",
"hdmf-zarr>=0.11.1",
"langchain-core>=0.3.60",
"pydantic>=2.11.4",
"suffix-trees>=0.3.0",
]
[project.optional-dependencies]
dev = [
'black',
'coverage',
'flake8',
'interrogate',
'isort',
'Sphinx',
'furo'
]
[project.scripts]
aind-metadata-mcp = "aind_metadata_mcp.data_access_server:main"
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.dynamic]
version = {attr = "aind_metadata_mcp.__version__"}
[tool.black]
line-length = 79
target_version = ['py310']
exclude = '''
(
/(
\.eggs # exclude a few common directories in the
| \.git # root of the project
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| _build
| build
| dist
)/
| .gitignore
)
'''
[tool.coverage.run]
omit = ["*__init__*"]
source = ["aind_metadata_mcp", "tests"]
[tool.coverage.report]
exclude_lines = [
"if __name__ == .__main__.:",
"^from .* import .*",
"^import .*",
"pragma: no cover"
]
fail_under = 100
[tool.isort]
line_length = 79
profile = "black"
[tool.interrogate]
exclude = ["setup.py", "docs", "build"]
fail-under = 100