使用说明
Prozorro MCP服务器
模型上下文协议(MCP)服务器,为人工智能模型提供无缝访问乌克兰政府采购数据的能力 窗口 -乌克兰的公共采购制度。
❗❗❗ 提供所有可用的功能需要有一个代理服务器和数据库,所以现在MCP API不公开。若要获取API URL和API令牌,请与作者联系。
特性
- 🔍 搜索投标:按EDRPOU代码、法定名称、投标人/供应商名称或日期范围提供高级搜索功能
- ↕️ 服务器端排序:按金额或上次修改日期对结果进行排序,因此“最大”/“最新”查询返回实际的顶部结果,而不是任意页面
- 📄 分页:通过页面浏览大于100行的结果集
offset - ⚡ 快:API与Prozorro的公共采购数据库直接集成
- 🛠️ 易于集成:使用Claude Desktop和其他MCP客户端进行简单设置
可用工具
search_tenders
根据各种标准搜索政府招标(目前只有2025年的数据)。
参数:
EDRPOUCode(字符串,可选):采购组织的唯一标识符代码(乌克兰税务ID)legalName(string,可选):与采购组织的法定名称匹配的子字符串tendererName(string,可选):与投标人/供应商/投标人名称(非采购实体)匹配的子字符串。使用此功能查找作为投标人的个体企业家(FOP)——请参阅 已知限制 在......下面dateFrom(字符串,可选):搜索的开始日期(ISO 8601格式,例如。,2025-01-01)dateTo(字符串,可选):搜索的结束日期(ISO 8601格式,例如。,2025-12-31)sortBy(字符串,可选):其中之一amount_desc,amount_asc,dateModified_desc,dateModified_asc排序是在分页之前在服务器端对整个匹配数据集进行的,例如。amount_desc即使有数千场比赛,也能可靠地返回最大的投标。offset(number,可选):要跳过的记录数,用于分页超过第一条的记录limit结果(默认值:0)includeTotal(boolean,可选):如果为true,则响应包括total_count--所有页面上匹配结果的真实总数。需要额外的服务器端查询,因此它是可选的;在常规分页中省略它(默认值:false)limit(number,可选):每页返回的最大记录数(默认值:100,最大值:100——服务器硬上限为100,不管请求的值是多少;使用offset获取其他页面)
退货: 一个物体 data (一系列包含详细信息的招标对象,包括招标ID、标题、组织详细信息、日期和采购状态),以及 count (本页中的行), total_count (真实总数与所有页面的过滤器匹配-- null 除非 includeTotal 已设置), limit_applied, offset_applied,以及 sort_applied.
已知限制
- 个体企业家(FOP):Prozorro的公共数据源掩盖了个人企业家标识符ID(EDRPOU风格的代码)
0000000000为了隐私。这意味着EDRPOUCode/基于投标人ID的搜索 不 可靠地找到FOP。使用tendererName(子字符串匹配)相反,FOP几乎总是以投标人/供应商(投标人)的身份出现,而不是以采购实体的身份出现。
安装
方法1:从npm安装(推荐)
安装MCP服务器最简单的方法是通过npm:
npm install -g prozorro-mcp-server
安装后,添加到Claude Desktop配置:
视窗: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"prozorro": {
"command": "prozorro-mcp-server",
"env": {
"PROZORRO_API_TOKEN": "your-api-token-here",
"PROZORRO_SERVICE_URL": "mcp-api-url-here"
}
}
}
}
重新启动Claude Desktop,您就可以使用服务器了!
备注:在Linux/macOS上,如果您遇到权限问题,可能需要使用
sudo npm install -g prozorro-mcp-server或者配置npm使用用户目录。
方法2:从GitHub安装
- 从GitHub通过npm全局安装:
npm install -g git+https://github.com/VladyslavMykhailyshyn/prozorro-mcp-server.git
- 添加到Claude桌面配置:
视窗: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"prozorro": {
"command": "prozorro-mcp-server",
"env": {
"PROZORRO_API_TOKEN": "your-api-token-here",
"PROZORRO_SERVICE_URL": "mcp-api-url-here"
}
}
}
}
- 重新启动克劳德桌面 -服务器将准备就绪!
方法3:本地开发安装
- 克隆存储库:
git clone https://github.com/VladyslavMykhailyshyn/prozorro-mcp-server.git
cd prozorro-mcp-server
- 安装依赖项:
npm install
- 构建项目:
npm run build
- 添加到Claude桌面配置 (使用绝对路径):
{
"mcpServers": {
"prozorro": {
"command": "node",
"args": ["/absolute/path/to/prozorro-mcp-server/build/index.js"],
"env": {
"PROZORRO_API_TOKEN": "your-api-token-here",
"PROZORRO_SERVICE_URL": "https://prozorro.gov.ua"
}
}
}
}
配置
服务器需要特定的环境变量才能正常运行。您可以在Claude Desktop配置或 .env 本地开发文件。
| 变量 | 描述 | 必填 | 示例 |
|---|---|---|---|
PROZORRO_API_TOKEN |
您的Prozorro API Bearer代币 | 是 | Bearer abc123... |
PROZORRO_SERVICE_URL |
API的基本URL | 是 | https://mcp-service-url.... |
正在获取API凭据
要获取Prozorro的API凭据和URL,请执行以下操作:
- 联系作者
- 检索API令牌和URL
- 在配置中使用令牌和URL
常用工作流
工作流程1:按组织搜索标书
1. Use search_tenders with EDRPOUCode to find all tenders from a specific organization
2. Review the returned tender details including dates, amounts, and status
3. Filter results by date range if needed
工作流程2:查找最近的投标
1. Use search_tenders with dateFrom and dateTo parameters
2. Optionally filter by organization name using legalName
3. Limit results for better performance
工作流程3:查找最大或最近的投标
1. Use search_tenders with sortBy: "amount_desc" to get the biggest tenders by value,
or sortBy: "dateModified_desc" for the most recently updated tenders
2. Combine with legalName/EDRPOUCode/tendererName/date filters as needed
3. The top results are guaranteed to be the actual top matches, not just an
arbitrary page of the full result set
工作流程4:遍历大型结果集
1. Call search_tenders with limit: 100 and offset: 0
2. Repeat the call with the same filters/sortBy, increasing offset by 100 each
time, until a page comes back with fewer than 100 results
3. If you need to know the total number of matches upfront (e.g. to answer
"how many tenders in total"), pass includeTotal: true and read total_count
from the response — leave it off for routine paging, since it costs an
extra query
故障排除
服务器未出现在Claude Desktop中
- 检查路径是否正确
claude_desktop_config.json是正确的 - 确保您已使用以下工具构建了项目
npm run build - 验证是否安装了Node.js(需要版本18或更高版本)
- 重新启动克劳德桌面
- 检查Claude Desktop日志是否有错误
API请求失败
- 验证您的
PROZORRO_API_TOKEN有效且未过期 - 检查一下
PROZORRO_SERVICE_URL是正确的 - Prozorro API可能有速率限制-请考虑在请求之间添加延迟
- 需要连接到prozorro.gov.ua的网络
- 部分标书可能暂时无法获取
身份验证错误
- 确保您的API令牌包括
Bearer前缀(如果需要) - 检查您的令牌是否具有必要的权限
- 验证令牌是否未过期
发展
项目结构
prozorro-mcp-server/
├── src/
│ ├── index.ts # Main MCP server entry point
│ ├── tenders.ts # Tender search implementation
│ └── types.ts # TypeScript type definitions
├── build/ # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
└── README.md
以开发模式运行
# Watch mode - auto-rebuild on changes
npm run dev
# In another terminal
npm start
生产大楼
npm run build
API信息
该服务器使用Prozorro公共API检索投标信息。有关Prozorro系统和可用数据的更多详细信息:
- Prozorro网站: https://prozorro.gov.ua/
- API文档: https://prozorro.gov.ua/api
- 数据格式:包含详细招标信息的JSON响应
许可证
国际学生中心
贡献
欢迎投稿!请随时提交拉取请求。
联系
有关问题和疑问,请使用 GitHub问题 页面。
工具调用示例
示例 search_tenders 常见查询的参数。
查找特定组织的所有投标书:
{
"EDRPOUCode": "21560045"
}
按日期范围内的组织名称查找标书:
{
"legalName": "Укрпошта",
"dateFrom": "2025-01-01",
"dateTo": "2025-06-30"
}
按价值查找最大的投标:
{
"legalName": "Укрпошта",
"sortBy": "amount_desc",
"limit": 100
}
查找最新更新的标书:
{
"sortBy": "dateModified_desc",
"limit": 20
}
寻找个人企业家(FOP)作为投标人/供应商:
{
"tendererName": "Петренко Іван Іванович"
}
浏览大型结果集(第二页,每页100行):
{
"legalName": "Укрпошта",
"sortBy": "amount_desc",
"limit": 100,
"offset": 100
}
获取真实的匹配总数,而不仅仅是当前页面:
{
"legalName": "Укрпошта",
"includeTotal": true
}
响应包括 "total_count": 4832 旁边 "count" (本页中的行)和 "data".