2d33ea136a
- infrastructure.py: Add IODA (Georgia Tech) as fallback when Cloudflare Radar returns 403 (no API token). Internet outage data now available without CLOUDFLARE_API_TOKEN. - conflict.py: Increase UCDP GED API timeout from 15s to 30s to handle slow responses from ucdpapi.pcr.uu.se. - dashboard/app.py: Add /api/report/pdf endpoint for PDF daily brief export via weasyprint (optional dependency). - pyproject.toml: Add dashboard + pdf optional deps, intel-dashboard script entry point, update description for 55 tools. - tests: Add 11 new tests covering health, sanctions, elections, shipping, social, nuclear, infrastructure (IODA fallback + cable health), and UCDP conflict. Fix cross-loop asyncio lock issue in conftest. - Total: 50 tests passing, 55 tools verified. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
49 lines
1.2 KiB
TOML
49 lines
1.2 KiB
TOML
[project]
|
|
name = "world-intel-mcp"
|
|
version = "0.1.0"
|
|
description = "World Intelligence MCP Server - real-time global intelligence across 23 domains with 55 MCP tools"
|
|
readme = "README.md"
|
|
requires-python = ">=3.11"
|
|
license = {text = "MIT"}
|
|
authors = [
|
|
{name = "Phoenix AGI", email = "phoenix@2acrestudios.com"}
|
|
]
|
|
keywords = ["mcp", "intelligence", "osint", "markets", "geopolitical", "phoenix"]
|
|
|
|
dependencies = [
|
|
"mcp>=1.0.0",
|
|
"httpx>=0.27.0",
|
|
"pydantic>=2.0.0",
|
|
"feedparser>=6.0.0",
|
|
"click>=8.1.0",
|
|
"jinja2>=3.1.0",
|
|
"rich>=13.0.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dashboard = ["starlette>=0.37.0", "uvicorn>=0.29.0"]
|
|
pdf = ["weasyprint>=62.0"]
|
|
dev = [
|
|
"pytest>=8.0.0",
|
|
"pytest-asyncio>=0.23.0",
|
|
"pytest-cov>=4.0.0",
|
|
"respx>=0.21.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
world-intel-mcp = "world_intel_mcp.server:run"
|
|
intel = "world_intel_mcp.cli:main"
|
|
intel-dashboard = "world_intel_mcp.dashboard.app:run"
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/world_intel_mcp"]
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
testpaths = ["src/world_intel_mcp/tests"]
|
|
addopts = "-v --tb=short"
|