How minjun069/news-tls-agent works
NewsTrace organizes archived news into evidence-backed issue timelines, then supports browsing, chat, article graphs, and PDF/Notion export. The main workflow runs from Vue issue-generation requests through FastAPI and its stdio MCP client to the timeline pipeline, which searches and validates candidate articles before storing an issue; users can then retrieve and explore that result. The README documents MCP as the data-access boundary, with MS-SQL for article and issue records and Qdrant for search. Route and tool wiring is only partly sampled, so uncertain internal calls are omitted.
Main entry points: routes API routes · repository.py SQL repository · tools MCP tools · exporting.py Briefing export
Components 21
Web experience
- Vue application
web/src/App.vue - API client
web/src/api/client.ts
API and MCP
- FastAPI app
backend/api/main.py - API routes
backend/api/routes - MCP tool client
backend/infra/mcp_client.py - MCP server
backend/mcp_server/server.py - MCP tools
backend/mcp_server/tools
Timeline and discovery
- Timeline pipeline
backend/app/pipeline.py - Article search
backend/app/search.py - Chat agent
backend/app/agent.py - Article graph
backend/app/graph.py - Briefing export
backend/app/exporting.py
Persistence and integrations
- SQL repository
backend/infra/repository.py - MS-SQL
backend/infra/db.py - Qdrant vectors
backend/infra/qdrant.py - Embedding provider
backend/infra/embedding.py - Gemini service
backend/infra/gemini.py - PDF renderer
backend/infra/pdf.py - Notion publisher
backend/infra/notion.py
Other components
- News reader
- Web browser
Connections 26
- News reader → Vue application: uses
- Vue application → API client: requests
- API client → FastAPI app: REST / SSE
- FastAPI app → API routes: dispatches
- API routes → Timeline pipeline: generates timeline
- API routes → MCP tool client: calls tools
- MCP tool client → MCP server: stdio MCP
- MCP server → MCP tools: registers
- MCP tools → Article search: searches
- MCP tools → SQL repository: reads / writes
- MCP tools → Briefing export: exports
- Timeline pipeline → Article search: finds candidates
- Timeline pipeline → SQL repository: loads / saves
- Article search → Embedding provider: embeds query
- Article search → Qdrant vectors: searches vectors
- Embedding provider → Gemini service: embeds remotely
- SQL repository → MS-SQL: reads / writes
- Briefing export → SQL repository: loads issue
- Briefing export → PDF renderer: renders PDF
- Briefing export → Notion publisher: publishes
- API routes → Chat agent: streams chat
- API routes → Article graph: builds graph
- Chat agent → MCP tool client: uses tools
- Article graph → SQL repository: reads graph data
- API routes → SQL repository: reads issues / articles
- FastAPI app → Web browser: serves downloads