We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/89jobrien/mcp-joecc'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
[project]
name = "mcp-task-aggregator"
version = "0.1.0"
description = "MCP server that aggregates tasks from Jira, GitHub, and Linear into a unified SQLite database"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"fastmcp>=2.14.1",
"jira>=3.10.5",
"loguru>=0.7.3",
"openpipe-art>=0.5.4",
"pydantic>=2.12.5",
"pydantic-settings>=2.12.0",
"sqlmodel>=0.0.27",
]
[project.scripts]
mcp-task-aggregator = "mcp_task_aggregator.__main__:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/mcp_task_aggregator"]
[dependency-groups]
dev = [
"pip-audit>=2.10.0",
"pytest>=9.0.2",
"pytest-asyncio>=1.3.0",
"pytest-cov>=7.0.0",
"ruff>=0.14.10",
]
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
python_files = ["test_*.py"]
python_functions = ["test_*"]
[tool.ruff]
line-length = 120
target-version = "py312"
src = ["src"]
[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
]
ignore = [
"E501", # line too long (handled by formatter)
"B008", # do not perform function calls in argument defaults
]
[tool.ruff.lint.isort]
known-first-party = ["mcp_task_aggregator"]