Metadata-Version: 2.5
Name: scm-crawler-mcp-server
Version: 1.0.0
Summary: 中化采购平台公告抓取 MCP 服务
Requires-Python: >=3.10
Requires-Dist: fastmcp>=0.2.0
Requires-Dist: openpyxl>=3.1.0
Requires-Dist: oss2>=2.18.0
Description-Content-Type: text/markdown

# 中化采购平台公告抓取 MCP 服务

一个基于 [FastMCP](https://github.com/jlowin/fastmcp) 的 MCP 服务，用于抓取中化采购供应链平台（scm.esinochem.com）的公告信息，按关键字筛选近 7 天数据，生成 Excel 并上传至阿里云 OSS，返回下载链接。

## 功能

- 抓取三个类别：招标公告、资格预审公告、采购公告
- 按标题搜索关键字：外包、派遣、招聘、猎头、培训
- 自动去重，保留命中关键字列表
- 过滤近 7 天发布且需求类型为"服务"的公告
- 生成格式化的多 Sheet Excel 文件
- 上传至阿里云 OSS，返回 7 天有效的签名下载链接
- 作为 MCP 工具 `fetch_notices` 供智能体调用

## 安装

本项目通过 PyPI 发布，可直接使用 `uvx` 运行：

```bash
uvx scm-crawler-mcp-server
```

或在百炼 MCP 配置中引用：

```json
{
  "command": "uvx",
  "args": ["scm-crawler-mcp-server"]
}
```

## 环境变量

运行前需配置以下 OSS 环境变量（百炼部署时通过 MCP 配置的 `env` 注入）：

| 变量名 | 说明 | 示例 |
| -------- | ------ | ------ |
| `OSS_ENDPOINT` | OSS 端点（不带协议前缀） | `oss-cn-shanghai.aliyuncs.com` |
| `OSS_ACCESS_KEY_ID` | 阿里云 AccessKey ID | `LTAI5t...` |
| `OSS_ACCESS_KEY_SECRET` | 阿里云 AccessKey Secret | `dwNTj...` |
| `OSS_BUCKET_NAME` | Bucket 名称 | `gi-gicnisys-dev` |
| `OSS_PREFIX` | 上传目录前缀（可选） | `scm-reports/` |

## 使用

在支持 MCP 的客户端（如 Cline、百炼智能体）中调用工具 `fetch_notices`，无参数，返回 JSON：

```json
{
  "status": "success",
  "file_name": "中化采购平台_公告关键字搜索结果_近7天_2026-09-14.xlsx",
  "oss_url": "https://...",
  "date": "2026-09-14",
  "categories": {
    "招标公告": {"count": 3, "keyword_hits": {"外包": 2, "培训": 1}},
    "采购公告": {"count": 5, "keyword_hits": {"招聘": 4, "培训": 1}}
  }
}
```

## 本地开发

```bash
# 创建虚拟环境
uv venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# 安装依赖
uv add fastmcp openpyxl oss2

# 运行服务
uv run python -m scm_crawler_mcp_server.server
```

## 依赖

- Python >= 3.10
- fastmcp >= 0.2.0
- openpyxl >= 3.1.0
- oss2 >= 2.18.0

## 许可证

MIT
