README
🚀 Prozorro MCP服务器
Prozorro MCP服务器是一个模型上下文协议(MCP)服务器,它能让AI模型无缝访问来自Prozorro(乌克兰公共采购系统)的乌克兰政府采购数据。
⚠️ 重要提示
要使用所有可用功能,需要有代理服务器和数据库,因此目前MCP API不对外公开。如需获取API URL和API令牌,请联系作者。
✨ 主要特性
- 🔍 招标搜索:可通过EDRPOU代码、法定名称或日期范围进行高级搜索。
- ⚡ 快速响应:直接与Prozorro的公共采购数据库进行API集成。
- 🛠️ 易于集成:可与Claude Desktop和其他MCP客户端轻松设置集成。
📦 安装指南
方法一:通过npm安装(推荐)
通过npm安装MCP服务器是最简单的方法:
npm install -g prozorro-mcp-server
安装完成后,将其添加到Claude Desktop配置中:
- Windows:
%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使用用户目录。
方法二:从GitHub安装
- 通过npm从GitHub全局安装:
npm install -g git+https://github.com/VladyslavMykhailyshyn/prozorro-mcp-server.git
- 添加到Claude Desktop配置中:
- Windows:
%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"
}
}
}
}
- 重启Claude Desktop:服务器即可使用!
方法三:本地开发安装
- 克隆仓库:
git clone https://github.com/VladyslavMykhailyshyn/prozorro-mcp-server.git
cd prozorro-mcp-server
- 安装依赖:
npm install
- 构建项目:
npm run build
- 添加到Claude Desktop配置中(使用绝对路径):
{
"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。
💻 使用示例
可用工具 - search_tenders
根据各种条件搜索政府招标信息(目前仅提供2025年的数据)。
参数:
EDRPOUCode(字符串,可选):组织的唯一标识符代码(乌克兰税号)。legalName(字符串,可选):用于匹配组织法定名称的子字符串。dateFrom(字符串,可选):搜索的开始日期(ISO 8601格式,例如2025-01-01)。dateTo(字符串,可选):搜索的结束日期(ISO 8601格式,例如2025-12-31)。limit(数字,可选):返回的最大记录数(默认值:100,最大值:1000)。
返回值:包含详细信息的招标对象数组,包括招标ID、标题、组织详情、日期和采购状态。
常见使用流程
流程一:按组织搜索招标
1. 使用 `search_tenders` 并传入 `EDRPOUCode` 参数,查找特定组织的所有招标。
2. 查看返回的招标详情,包括日期、金额和状态。
3. 如有需要,按日期范围过滤结果。
流程二:查找近期招标
1. 使用 `search_tenders` 并传入 `dateFrom` 和 `dateTo` 参数。
2. 可选择使用 `legalName` 按组织名称过滤。
3. 限制结果数量以提高性能。
📚 详细文档
故障排除
服务器未在Claude Desktop中显示
- 检查
claude_desktop_config.json中的路径是否正确。 - 确保已使用
npm run build构建项目。 - 验证是否安装了Node.js(需要版本18或更高)。
- 重启Claude Desktop。
- 检查Claude Desktop日志以查找错误信息。
API请求失败
- 验证
PROZORRO_API_TOKEN是否有效且未过期。 - 检查
PROZORRO_SERVICE_URL是否正确。 - Prozorro API可能有速率限制,可考虑在请求之间添加延迟。
- 需要与prozorro.gov.ua建立网络连接。
- 部分招标信息可能暂时不可用。
身份验证错误
- 确保API令牌(如果需要)包含
Bearer前缀。 - 检查令牌是否具有必要的权限。
- 验证令牌是否未过期。
开发说明
项目结构
prozorro-mcp-server/
├── src/
│ ├── index.ts # 主MCP服务器入口点
│ ├── tenders.ts # 招标搜索实现
│ └── types.ts # TypeScript类型定义
├── build/ # 编译后的JavaScript(自动生成)
├── package.json
├── tsconfig.json
└── README.md
在开发模式下运行
# 监听模式 - 文件更改时自动重建
npm run dev
# 在另一个终端中
npm start
生产环境构建
npm run build
API信息
此服务器使用Prozorro公共API来检索招标信息。有关Prozorro系统和可用数据的更多详细信息:
- Prozorro网站:https://prozorro.gov.ua/
- API文档:https://prozorro.gov.ua/api
- 数据格式:包含详细招标信息的JSON响应。
📄 许可证
ISC
贡献说明
欢迎贡献代码!请随时提交拉取请求。
联系我们
如有问题,请使用GitHub Issues页面进行反馈。
微信扫一扫