内容
<!-- mcp-name: io.github.atomno-mcp/mcp-zakupki -->
# atomno-mcp-zakupki
> **MCP 服务器,用于获取俄罗斯政府采购数据** (44-FZ / 223-FZ / 615-PP)— 直接从 Cursor、Claude Desktop、Cline、Goose 和任何 MCP 兼容的客户端查找招标、客户/供应商历史、OKPD2 查询。
[](https://pypi.org/project/atomno-mcp-zakupki/)
[](LICENSE)
[](https://www.python.org/downloads/)
[](https://modelcontextprotocol.io)
`atomno-mcp-zakupki` 是 [MCP](https://modelcontextprotocol.io) 服务器(Model Context Protocol - 连接 LLM 客户端到外部工具的开放协议),它将 [`zakupki.gov.ru`](https://zakupki.gov.ru) 门户转换为 AI 助手的一组工具。
安装后,在 Cursor / Claude Desktop / Cline 中配置并在配置文件中写入 - 然后在一个提示中请求:*“显示今天 OKPD2 62.0 在莫斯科的最新招标,最高出价 500 万 ₽”*。服务器访问选定的数据源,规范化响应并为 LLM 返回现成的结构。
## 为什么
| 问题 | 目前 | 使用 `atomno-mcp-zakupki` |
|---|---|---|
| 每天早上手动筛选 30–60 分钟的政府采购信息或每年支付 16–67K ₽ 用于 Kontur / Seldon | Excel 汇总 + 电子邮件通知 | 从 Cursor 发出一次 MCP 调用 → LLM 自动过滤、解释、比较 |
| 使用 `ftp.zakupki.gov.ru` 的 Python 脚本在 2025 年 1 月起停止工作 | 寻找通过商业 API 的替代方案 | 混合提供商:DaMIA、GosPlan API v2、navodki;可选的政府采购令牌 |
| AI 代理无法自行读取招标信息 | 复制粘贴到聊天窗口 | `get_tender(reg_number)` 以 JSON 格式返回整个招标卡片 |
## 内部工具
| 工具 | 层级 | 功能 |
|---|---|---|
| `search_tenders` | **Self-hosted** | 按 30+ 个筛选条件搜索招标。需要 DaMIA / GosPlan / navodki 的 API 密钥。 |
| `get_tender` | **Self-hosted** | 按注册号获取招标卡片。需要提供商的 API 密钥。 |
| `lookup_okpd2` | **Free** | 按文本搜索 OKPD2 / KTRU 代码(本地目录,无需联网)。 |
| `get_customer_history` | **Pro hosted** | 订购者采购历史 - 仅需 `MCP_ZAKUPKI_API_KEY`。 |
| `get_supplier_stats` | **Pro hosted** | 供应商统计 - 仅需 `MCP_ZAKUPKI_API_KEY`。 |
> **生产环境:** 建议使用 Atomno 的企业 API (`MCP_ZAKUPKI_API_KEY` 在 [atomno-mcp.ru/pricing#zakupki-pro](https://atomno-mcp.ru/pricing#zakupki-pro))。
> 自托管(使用自己的 DaMIA/GosPlan 密钥)- 用于开发和试点;聚合分析和扩展报告可通过企业端点获得。
> **v0.1.1:** 删除了非官方的政府采购网站 HTML 解析。`get_customer_history` 和 `get_supplier_stats` 工具需要企业 API 密钥。
## 快速开始
### 1. 安装
```bash
# 通过 uvx(推荐 - 不需要系统安装):
uvx atomno-mcp-zakupki --help
# 通过 pipx:
pipx install atomno-mcp-zakupki
atomno-mcp-zakupki --version
# 在虚拟环境中:
pip install atomno-mcp-zakupki
```
可选的政府采购网站官方令牌额外安装(需要财政部证书):
```bash
pip install "atomno-mcp-zakupki[eis-official]"
```
### 2. 配置
**生产环境** - 获取托管 Pro 密钥: [atomno-mcp.ru/pricing#zakupki-pro](https://atomno-mcp.ru/pricing#zakupki-pro) → `MCP_ZAKUPKI_API_KEY`。
**开发环境(自托管)** - 一个 API 提供商的密钥(DaMIA / GosPlan / navodki)用于 `search_tenders` 和 `get_tender`。
如果没有密钥,`lookup_okpd2`(本地 OKPD2 目录)也可以使用。
> **HTML 备用方案已在 v0.1.1 中删除。** 政府采购网站解析 - 仅在托管后端(私有服务器,第 2 阶段)。
| 变量 | 描述 | 获取方式 |
|---|---|---|
| `MCP_ZAKUPKI_DAMIA_KEY` | DaMIA API 密钥 | [damia.ru/apizakupki](https://damia.ru/apizakupki) (免费套餐“Start” ≈ 100 次/月) |
| `MCP_ZAKUPKI_GOSPLAN_KEY` | GosPlan API v2 密钥 | [wiki.gosplan.info](https://wiki.gosplan.info) (无需注册的 sandbox:`fz44test.gosplan.info`) |
| `MCP_ZAKUPKI_NAVODKI_KEY` | navodki.ru 密钥 | [navodki.ru](https://navodki.ru) |
| `MCP_ZAKUPKI_EIS_TOKEN` | 政府采购网站令牌(通过 `pmd/auth/welcome`) | [zakupki.gov.ru/pmd/auth/welcome](https://zakupki.gov.ru/pmd/auth/welcome) + 财政部证书 |
| `MCP_ZAKUPKI_API_KEY` | **Pro 主机** - `get_customer_history` / `get_supplier_stats` 和未来 AI 工具的必需品 | [atomno-mcp.ru/pricing#zakupki-pro](https://atomno-mcp.ru/pricing#zakupki-pro) |
| `MCP_ZAKUPKI_LOG_LEVEL` | DEBUG / INFO / WARNING / ERROR / CRITICAL | 默认 `INFO` |
| `MCP_ZAKUPKI_CACHE_DB` | SQLite 缓存路径 | 默认 `./mcp_zakupki_cache.sqlite` |
| `MCP_ZAKUPKI_PROVIDERS` | 备用提供商链(BYOK) | 默认 `damia,gosplan,navodki` |
| `MCP_ZAKUPKI_RPS` | 每分钟请求限制 | 默认 `30` |
### 3. 连接到 Cursor
打开 `~/.cursor/mcp.json`(或 `Cursor → Settings → Model Context Protocol`)并添加:
```json
{
"mcpServers": {
"zakupki": {
"command": "uvx",
"args": ["atomno-mcp-zakupki"],
"env": {
"MCP_ZAKUPKI_DAMIA_KEY": "your-damia-key-here",
"MCP_ZAKUPKI_LOG_LEVEL": "INFO"
}
}
}
}
```
### 4. 连接到 Claude Desktop
`%APPDATA%\Claude\claude_desktop_config.json`(Windows)或 `~/Library/Application Support/Claude/claude_desktop_config.json`(macOS):
```json
{
"mcpServers": {
"zakupki": {
"command": "uvx",
"args": ["atomno-mcp-zakupki"]
}
}
}
```
### 5. 连接到 Cline / Goose / Kiro
任何 MCP 客户端:启动 `atomno-mcp-zakupki`(默认_stdio传输)并在其配置中编写启动命令。
对于 HTTP 模式:
```bash
atomno-mcp-zakupki --transport http --host 127.0.0.1 --port 8765
```
## 示例
### 早晨招标监控
```
[Cursor]: 显示今天 OKPD2 62.0 在乌拉尔联邦区内的最新招标,最高出价 500K-3M ₽,仅限 SMP。
→ search_tenders(
okpd2_codes=["62.01", "62.02", "62.09"],
regions=["66", "74", "59", "45", "72", "86", "89"],
price_min_rub=500000, price_max_rub=3000000,
smp_only=True,
publish_date_from="2026-04-26",
status=["applications_open"]
)
← 找到 7 个招标,耗时 412 毫秒。
```
### 招标卡片
```
[Cursor]: 详细说明注册号 0173100007426000018 的招标。
→ get_tender(reg_number="0173100007426000018", include_documents=True)
← 所有字段:客户,最高出价,文档(PDF),截止日期,平台...
```
### 客户分析(Pro)
```
[Cursor]: 谁是 INN 7449023800?显示 2 年来的采购历史。
→ get_customer_history(inn="7449023800", period_from="2024-01-01")
← 需要 `MCP_ZAKUPKI_API_KEY`(托管 Pro)。
```
### OKPD2 查找
```
[Cursor]: 网络门户开发的 OKPD2 代码是什么?
→ lookup_okpd2(query="网络门户开发", limit=5)
← [{"code":"62.01.11.000","name":"信息系统设计服务","match":0.94}, ...]
```
## CLI
```text
atomno-mcp-zakupki --help
atomno-mcp-zakupki --version
atomno-mcp-zakupki --check-config
atomno-mcp-zakupki --log-level DEBUG
atomno-mcp-zakupki --transport http --host 127.0.0.1 --port 8765
atomno-mcp-zakupki --transport sse --port 9000
```
完整的选项列表在 `atomno-mcp-zakupki --help` 中。
## 数据源
| 提供商 | 资费 | 涵盖范围 | 何时使用 |
|---|---|---|---|
| **DaMIA API-采购** | 免费“Start” ≈ 100 次/月 → 按需付费 | 44-FZ + 223-FZ + 615-PP,`zakupka`, `contract`, `zsearch`, `customer`, `eruz`, `rnp` 方法 | 默认 1st(如果有 `MCP_ZAKUPKI_DAMIA_KEY`) |
| **GosPlan API v2** | 免费 sandbox + 付费计划 | 44-FZ(Beta),615-PP(Pre1),223-FZ(Pre2) | Fallback 2nd |
| **navodki.ru** | 免费 | 44-FZ + 223-FZ | Fallback 3rd |
| **官方政府采购网站令牌(可选)** | 免费(仅限物理令牌) | SOAP `int.zakupki.gov.ru` | 如果有 `MCP_ZAKUPKI_EIS_TOKEN` |
提供商链:`MCP_ZAKUPKI_PROVIDERS=damia,gosplan,navodki`。
HTML 爬虫 **已在 v0.1.1 中删除** - 使用托管 Pro。
如果没有提供商响应,工具将返回类型化的 `provider_unavailable` 错误。
## 架构(简要)
```
AI 客户端(Cursor / Claude / Cline) ──MCP──▶ atomno-mcp-zakupki
│
├──▶ lookup_okpd2(离线)
├──▶ 自托管 API(search/get)
└──▶ 托管 Pro(api.atomno-mcp.ru)- 生产环境
```
所有提供商都实现通用 `BaseProvider` 接口。响应标准化为 Pydantic 模型 `Tender`, `Customer`, `Document`, `OrgHistorySummary`.
## 开发
```bash
git clone https://github.com/atomno-mcp/mcp-zakupki.git
cd mcp-zakupki
python -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
pip install -e ".[dev]"
pytest -v --cov=src/mcp_zakupki
ruff check src tests
```
## 免责声明
- 服务 **不隶属于** 俄罗斯财政部、联邦反垄断局、政府采购网站运营商或特定交易平台。
- 我们通过 **许可 API 提供商**、官方政府采购网站令牌或 Atomno 的 **托管后端** 获取政府采购网站的数据 - 而不是通过客户端的爬虫。
- HTML 备用方案已在 v0.1.1 中删除(符合政府采购登记册的 ToS)。
- 自行承担风险。投标申请的决定由用户自行负责。
## 许可证
[MIT](LICENSE) © 2026 Atomno.
## Atomno 的 MCP 服务器家族
`atomno-mcp-zakupki` 是 `atomno-mcp-*` 家族的第五个服务器:
- [`atomno-mcp-cbr-rates`](https://github.com/atomno-mcp/mcp-cbr-rates) - 俄罗斯央行汇率
- [`atomno-mcp-egrul`](https://github.com/atomno-mcp/mcp-egrul) - 来自统一法人登记册的法人实体详细信息
- [`atomno-mcp-fns-check`](https://github.com/atomno-mcp/mcp-fns-check) - 纳税人检查
- [`atomno-mcp-fssp`](https://github.com/atomno-mcp/mcp-fssp) - 债务和执行程序(准备中)
- **`atomno-mcp-zakupki`** - *您在这里*
- [`atomno-mcp-rosreestr`](https://github.com/atomno-mcp/mcp-rosreestr) - 房地产,土地登记册(准备中)
- [`atomno-mcp-sudact`](https://github.com/atomno-mcp/mcp-sudact) - 法院实践(准备中)
将所有这些连接起来 - 并在一个提示中获得招标的完整 B2G 档案。