Content
# Tool List
Interview assignment: MCP Server + Skill, allowing Cursor / Claude Code / Codex Agent to automatically summarize bills and push reports.
## Project Structure
```
mcpskill/
├── mcp-server/
│ ├── server.py # MCP entry, registering 5 Tools
│ ├── bill_io.py # Tool 1/2 ✅ Implemented
│ ├── parsers.py # Tool 3 ✅ Implemented
│ ├── report.py # Tool 4 ✅ Implemented
│ ├── notify.py # Tool 5 ✅ Implemented
│ ├── requirements.txt
│ └── scripts/
│ └── smoke_test.py # Local verification Tool 1/2
├── sample_data/ # 3 format example bills
├── .cursor/
│ ├── mcp.json # Cursor MCP configuration
│ └── skills/
│ └── finance-bill-summary/
│ ├── SKILL.md # Agent operation manual
│ └── reference.md # Tool schema (progressive disclosure)
├── configs/ # Claude Code / Codex configuration
└── docs/
└── IMPLEMENTATION.md # Step-by-step implementation guide ← Start from here
```
## Quick Start (Conda, recommended)
This project uses the conda environment **`mcpskill`** (Python 3.12).
```bash
# 1. Create and activate environment (first time)
conda env create -f environment.yml
conda activate mcpskill
# If environment already exists, just activate
conda activate mcpskill
# 2. Verify Tool 1/2
python mcp-server/scripts/smoke_test.py
# 3. Configure Feishu Webhook (optional)
# Edit .cursor/mcp.json中的 FEISHU_WEBHOOK_URL
# 4. Enable MCP in Cursor
# Settings → MCP → Confirm finance-bill is green (need to Reload once)
```
**Python interpreter path** (Cursor / VS Code has written `.vscode/settings.json`):
```
D:\miniconda3\envs\mcpskill\python.exe
```
**For PyCharm users**: File → Settings → Project → Python Interpreter → Select the above path.
## Quick Start (venv, alternative)
```bash
python -m venv .venv
.venv\Scripts\activate
pip install -r mcp-server/requirements.txt
python mcp-server/scripts/smoke_test.py
```
## MCP Configuration Description
In `.cursor/mcp.json`:
```json
{
"command": "python",
"args": ["mcp-server/server.py"]
}
```
`args` points to the MCP Server entry, equivalent to executing `python mcp-server/server.py` in the terminal.
If using a virtual environment, change `command` to the absolute path of `.venv/Scripts/python.exe`.
## Implementation Progress
| Tool | Status | File |
|------|--------|------|
| list_directory | ✅ | bill_io.py |
| read_bill_file | ✅ | bill_io.py |
| parse_and_clean_bills | ✅ | parsers.py |
| generate_report | ✅ | report.py |
| send_notification | ✅ | notify.py |
Detailed steps see [docs/IMPLEMENTATION.md](docs/IMPLEMENTATION.md).
- [√] MCP Server can start normally
- [√] All 5 core Tools can be correctly called by AI Agent and return expected results
- [√] Skill file format is规范, can be loaded by Cursor / Claude Code / Codex for demonstration
- [√] `sample_data/` contains ≥3 `.md` bill files in different formats
- [√] End-to-end demonstration: from reading directory to sending notification, the entire process runs through
## Design Decisions (Interview Reference)
- **MCP as tools, Skill as orchestration**: Skill tells Agent when and in what order to call Tools
- **Tool granularity**: read, parse, summarize, send separated, single file failure does not affect the overall process
- **parse does not call LLM**: deterministic parsing, Agent responsible for orchestration rather than inference within Tools
## License
MIT