mining-rights-daily-agent
by dianyxx
README.md
# Mining Rights Daily Agent Console
Chinese mining-rights daily brief agent with three MCP-style tools, a visible workflow canvas and auditable raw tool output. The user enters an industry topic such as `给我生成一份关于 Pilbara 锂矿的今日简报`; the agent plans the request, calls news/resource/price tools, and returns a structured Chinese Markdown brief.
This repository is project 02 from the mining interview MVP set. It is fully standalone and can be evaluated or zipped independently.
## What It Does
- Implements three independent MCP-style servers/tools:
- `mining-news-mcp`: `search(query, days)`, `fetch_article(url)`
- `mineral-pdf-mcp`: `extract_resources(pdf_url)`
- `lme-price-mcp`: `get_price(commodity, date)`, `get_trend(commodity, days)`
- Parses commodity, region, topic and time window from Chinese, English or mixed prompts.
- Generates Chinese Markdown briefs with a fixed structure.
- Shows the agent workflow as a production-style canvas: User Input -> Planner -> three MCP tools -> Brief Synthesizer -> Markdown Output.
- Keeps Raw Tool Output folded by default for audit and debugging.
- Uses a live model when configured, with a Chinese template fallback when no key is present.
- Returns `limited` plus warnings for unsupported commodities or missing evidence instead of silently falling back to lithium.
## Brief Structure
```markdown
# 主题今日简报
## 一、执行摘要
## 二、新闻摘要
## 三、资源量 / 储量数据
## 四、价格走势
## 五、风险提示
## 六、引用来源
## 七、数据缺口
```
The brief body is Chinese and does not include `[ok]` or chat-style prefixes.
## Quick Start
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
make brief
make console
```
Open `http://localhost:8002`.
Docker:
```bash
docker compose up --build
```
## Model Configuration
The app reads model settings from environment variables only. Do not commit real keys.
```bash
export MODEL_API_KEY=your_key
export MODEL_BASE_URL=https://apihub.agnes-ai.com/v1
export MODEL_NAME=agnes-2.0-flash
```
When `MODEL_API_KEY` is present, the Brief Synthesizer uses the configured OpenAI-compatible chat endpoint. Without a key, the deterministic Chinese template keeps the demo runnable.
## API Example
```bash
curl -s http://localhost:8002/brief \
-H 'content-type: application/json' \
-d '{"prompt":"给我生成一份关于 Indonesia nickel 的今日简报"}' | jq
```
Stable response fields include `status`, `warnings`, `source_mode`, `elapsed_ms`, `data_quality`, `intent`, `markdown` and `workflow_trace`.
## QA And Packaging
```bash
make test
make qa
make package
```
`make qa` runs multi-topic brief cases including Pilbara lithium, Peru copper, Indonesia nickel, China rare earth, DRC cobalt, iron ore, zinc, gold, uranium and graphite. `make package` creates `/Users/Zhuanz/Desktop/02-mining-rights-daily-agent-tool.zip`.
## MCP Client Config
`mcp-config.json` is included for Claude Desktop / Cursor-style MCP clients. Adjust absolute paths if the project is moved.
## Boundaries
This is a complete interview MVP, not a production data room. Fixture sources are marked as fixture data, unsupported commodities remain limited, and real paid/login sources are not bypassed.