中化采购平台公告抓取 MCP 服务
一个基于 FastMCP 的 MCP 服务,用于抓取中化采购供应链平台(scm.esinochem.com)的公告信息,按关键字筛选近 7 天数据,生成 Excel 并上传至阿里云 OSS,返回下载链接。
功能
- 抓取三个类别:招标公告、资格预审公告、采购公告
- 按标题搜索关键字:外包、派遣、招聘、猎头、培训
- 自动去重,保留命中关键字列表
- 过滤近 7 天发布且需求类型为"服务"的公告
- 生成格式化的多 Sheet Excel 文件
- 上传至阿里云 OSS,返回 7 天有效的签名下载链接
- 作为 MCP 工具
fetch_notices供智能体调用
安装
本项目通过 PyPI 发布,可直接使用 uvx 运行:
uvx scm-crawler-mcp-server
或在百炼 MCP 配置中引用:
{
"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:
{
"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}}
}
}
本地开发
# 创建虚拟环境
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
Metadata
Release files for scm-crawler-mcp-server 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| scm_crawler_mcp_server-1.0.0.tar.gz | 147.9 kB | Without provenance | Details for scm_crawler_mcp_server-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| scm_crawler_mcp_server-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for scm_crawler_mcp_server-1.0.0-py3-none-any.whl |
Total release size: 156.5 kB
Release files / scm_crawler_mcp_server-1.0.0.tar.gz
| Download URL | scm_crawler_mcp_server-1.0.0.tar.gz |
|---|---|
| Size | 147.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2c548c700d0f8023ee5a0e987bbdde7d1350dbc1dd04ff83488269fb675e5251
|
|
BLAKE2b-256 checksum How to use checksums |
de67b5e7f6a9955ea08220c10057d85bbdfc89e03c9433e328618e932e3414f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / scm_crawler_mcp_server-1.0.0-py3-none-any.whl
| Download URL | scm_crawler_mcp_server-1.0.0-py3-none-any.whl |
|---|---|
| Size | 8.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5654f8a4e7874ed3d25e49845772a02e956923f76dff010293cdc67ef7daaf3b
|
|
BLAKE2b-256 checksum How to use checksums |
ba2512d70aebcc3fef264443bc461543424f10d7d9150df0c99cdd30c3d5db84
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for scm-crawler-mcp-server 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.