File size: 2,205 Bytes
2f203f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9892398
a83e3a6
0d3fd72
2f203f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78

[project]
name = "data360-mcp"
version = "0.1.2"
description = "Model Context Protocol (MCP) server that gives LLM agents and chatbots direct access to the World Bank's Data360 Platform. Search, validate, and retrieve development indicators—from GDP and poverty to gender equality and climate—with structured metadata and time-series data, without hallucinating values."
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
  "fastmcp>=3.4.3",
  "prefab-ui>=0.20.2",
  "mcp>=1.18.0",
  "fastapi>=0.115.0",
  "uvicorn[standard]>=0.30.0",
  "typer>=0.20.1",
  "gunicorn>=23.0.0",
  "pydantic-settings>=2.0.0",
  "python-dotenv>=1.0.0",
  "draco @ git+https://github.com/avsolatorio/draco2.git@data360-mcp",
  "pandas>=3.0.0",
  "cachetools>=6.2.4",
  "scikit-learn>=1.8.0",
  "vl-convert-python>=1.9.0.post1",
  "huggingface-hub",
  "openai",
  "Pillow>=10.0.0",
  "deepeval>=4.1.0",
]

[build-system]
requires = ["setuptools>=42", 'setuptools-scm']
build-backend = "setuptools.build_meta"

[tool.setuptools.packages.find]
where = ["src"]

[tool.setuptools.package-data]
data360 = ["tool_contract_version.json", "databases.json", "ref_area_groups.json"]

[tool.ruff.lint]
select = ['I', 'UP', 'PL', 'F401']

[[tool.uv.index]]
name = "pypi"
url = "https://pypi.org/simple"
default = true

[tool.pyright]
typeCheckingMode = "standard"
extraPaths = ["packages/data360-mcp-agent/src"]

[tool.poe.tasks.serve]
help = "Run the Data360 MCP server"
cmd = "uv run fastmcp run src/data360/server.py --transport ${transport} --port ${port}"
args = [
   {name = "transport", options = ["--transport", "-t"], default = "streamable-http"},
   {name = "port", options = ["--port", "-p"], default = "8021"},
]

[tool.poe.tasks.test]
help = "Run tests"
cmd = "pytest"

[tool.poe.tasks.test-cov]
help = "Run tests with coverage"
cmd = "pytest --cov=src/data360 --cov-report=term-missing"

[tool.poe.tasks.licenses]
help = "Regenerate THIRD_PARTY_LICENSES.md"
cmd = "python scripts/generate_licenses.py"

[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"