使用说明
Bidzaar MCP工具
简单的STDIO MCP服务器,可将AI代理与交易平台集成 Bidzaar (ETP)
允许您创建、管理和分析采购流程、参与者、文档、事件,并通过AI生成描述。
📘 Bidzaar API文档
https://phoenix.bidzaar.com/doc/connector/index.htm
🚀 主要功能
- 整个治疗生命周期
创建(草稿/发布)、接收、更新、删除草稿、发布 - 参与者管理
邀请(INN/EMAIL)、锁定/解锁、锁定列表、搜索详细信息 - 文件
下载(本地路径或base64),通过ID下载文件 - 事件和报告
通过筛选器获取事件,生成比较报告(XLSX) - AI功能
improve_description-通过AI改进程序描述
predict_and_apply_tags-自动生成和应用标签 - 完成程序
无获奖者,返回评估阶段,完成接受阶段 - 处理与会者的申请
查询文件,查看订单,更改价格 - 信息技术
公司数据,标签,细分市场,聊天室,特殊条款
🛠 工具列表(Tools)
在服务器代码中实现。以下是主要群体。
程序
create_procedure-创建程序(立即发布或起草)get_procedure获取完整的UUID数据update_procedure-更新设置(日期、位置、标签、联系人等)delete_procedure_draft-删除草稿publish_procedure-发布(可能延迟)complete_without_winners-无赢家完成return_to_evaluation-将完成的过程退回评估finish_proposals_acceptance-强制关闭申请
出席情况
get_participants与会者名单(原始)get_participants_with_details-使用名称/INN/EMAIL筛选器进行搜索invite_participants-邀请(TIN/EMAIL/COMPANYNAME对象数组)block_participants/unblock_participants-按名称、电子邮件、INN或UUID锁定/解锁get_blocked_participants-冻结名单approve_participants/reject_participants批准/拒绝(非公开程序)
文件
upload_files下载(本地路径)file_path或Base64)get_file在Base64中获取文件
事件和报告
get_events-按日期、类型、程序、阶段过滤get_comparison_file-请求生成XLSX报告(返回taskid)get_report_file下载任务报告
人工智能
improve_description-改进HTML程序描述predict_and_apply_tags-预测程序的标签并应用它们
额外
get_companies_info-UUID公司名单信息get_tags-搜索Paginia标签get_stages,get_stages_full_info-程序各阶段的信息announce_new_stage创建新阶段set_winners/get_choices-选择赢家request_documents-向与会者索取文件send_chat_message-向聊天室发送消息add_additional_currency/update_additional_currenciescancel_delayed_publication,cancel_stage- 其他(完整名单见
list_tools)
📦 安装
要求
- Python 3.10+
- Bidzaar帐户(客户端ID,客户端秘密,用户电子邮件)
git clone https://github.com/lxxr/bidzaar_mcp_server.git
cd bidzaar_mcp_server
python -m venv venv
source venv/bin/activate # или .\venv\Scripts\activate
pip install -r requirements.txt
环境变量
在项目根中创建.env文件(或在settingsu env中指定路径):
# Stage (тест https://phoenix.bidzaar.com) или production (https://bidzaar.com)
BIDZAAR_BASE_URL=https://phoenix.bidzaar.com
# Учётные данные из личного кабинета Bidzaar
BIDZAAR_CLIENT_ID=your_client_id
BIDZAAR_CLIENT_SECRET=your_client_secret
# Email пользователя-организатора (должен существовать в системе)
BIDZAAR_USER_EMAIL=organizer@example.com
# Версия API (согласно документации – 5.4)
BIDZAAR_API_VERSION=5.4
# Путь для временного хранения загружаемых файлов (должен существовать)
BIDZAAR_FILES_BASE_PATH=/tmp/bidzaar_uploads
⚠️ 重要提示:BIDZAARu FILESu BASEu PATH路径用于通过fileu PATH下载文件。服务器不会自动创建它。
🔌 AI代理配置
1.克劳德桌面
Добавьтевclaude_desktop_config.json(macOS:~/库/应用程序支持/claude/,Windows:%APPDATA%\claude):
{
"mcpServers": {
"bidzaar": {
"command": "python",
"args": ["/абсолютный/путь/к/bidzaar_mcp_server.py"],
"env": {
"BIDZAAR_BASE_URL": "https://phoenix.bidzaar.com",
"BIDZAAR_CLIENT_ID": "your_client_id",
"BIDZAAR_CLIENT_SECRET": "your_client_secret",
"BIDZAAR_USER_EMAIL": "organizer@example.com",
"BIDZAAR_API_VERSION": "5.3",
"BIDZAAR_FILES_BASE_PATH": "/tmp/bidzaar_uploads"
}
}
}
}
2.LangChain(сLangChain mcp适配器)
from langchain_mcp_adapters.client import MultiServerMCPClient
MCP_SERVERS = {
"bidzaar": {
"command": "python",
"args": ["/path/to/bidzaar_mcp_server.py"],
"transport": "stdio",
"env": {
"BIDZAAR_CLIENT_ID": "...",
"BIDZAAR_CLIENT_SECRET": "...",
"BIDZAAR_USER_EMAIL": "...",
"BIDZAAR_BASE_URL": "https://phoenix.bidzaar.com",
"BIDZAAR_API_VERSION": "5.3",
"BIDZAAR_FILES_BASE_PATH": "/tmp/bidzaar_uploads"
}
}
}
async def get_tools():
client = MultiServerMCPClient(MCP_SERVERS)
return await client.get_tools()
3.纳米机器人
from nanobot import Nanobot
from mcp import StdioServerParameters
server_params = StdioServerParameters(
command="python",
args=["/path/to/bidzaar_mcp_server.py"],
env={
"BIDZAAR_CLIENT_ID": "...",
"BIDZAAR_CLIENT_SECRET": "...",
"BIDZAAR_USER_EMAIL": "...",
"BIDZAAR_BASE_URL": "https://phoenix.bidzaar.com",
"BIDZAAR_API_VERSION": "5.3",
"BIDZAAR_FILES_BASE_PATH": "/tmp/bidzaar_uploads"
}
)
bot = Nanobot()
bot.register_mcp_server("bidzaar", server_params)
4.任何MCP客户端
python /path/to/bidzaar_mcp_server.py
💡 使用示例
程序创建(RFI–市场监控)
result = await agent.call_tool("create_procedure", {
"name": "Поиск поставщиков ноутбуков",
"type": 1, # закупка
"trading_type": 8, # мониторинг рынка (RFI)
"description": "Необходимо оценить рынок ноутбуков...",
"open_type": 0, # открытая
"acceptance_end_days": 10,
"contacts": "Иван Иванов, +7...",
"tags": ["IT", "ноутбуки"],
"publish_immediately": True
})
邀请会员参加INN
await agent.call_tool("invite_participants", {
"procedure_id": "550e8400-e29b-41d4-a716-446655440000",
"invitations": [
{"tin": "7707083893"}, # по ИНН
{"email": "supplier@example.com", "companyName": "ООО Ромашка"}
]
})
按公司名称锁定参与者
await agent.call_tool("block_participants", {
"procedure_id": "...",
"participant_ids": ["ООО Ромашка"], # или UUID / email
"block_reason": "Не предоставил документы"
})
下载文件(本地路径)
await agent.call_tool("upload_files", {
"files": [{
"file_path": "contract.pdf",
"name": "Договор.pdf",
"extension": "pdf"
}]
})
通过AI改进描述
improved = await agent.call_tool("improve_description", {
"procedure_id": "...",
"description": "нужны стулья офисные недорогие, 50 штук"
})
📁 项目结构
bidzaar_mcp_server/
├── bidzaar_mcp_server.py # Основной сервер MCP (включает API клиент)
├── requirements.txt # Зависимости (mcp, pydantic-settings, requests)
├── .env.example # Шаблон переменных окружения
└── README.md
🧪 实现特点
- 运输 STDIO(兼容所有MCP客户端)
- 授权 –OAuth2
client_credentials自动更新令牌(缓冲60秒) - 记录 –输出到
stderr(不影响MCP协议) - 文件 支持两种传输方式:
base64或file_path(相对)BIDZAAR_FILES_BASE_PATH) - 参与者处理 –方法
block/unblock能够通过名称、电子邮件、Inn或UUID找到参与者 - 程序类型:
trading_type: 1(RFP),2(RFQ),4(PCO),8(RFI)
🐛 故障排除
错误: File not found 下载文件时
确保:
- 目录
BIDZAAR_FILES_BASE_PATH存在 - 该文件位于该目录内或指定完整路径
- 有读取文件的权限
错误: 401 Unauthorized
检查:
- 正派
BIDZAAR_CLIENT_ID和BIDZAAR_CLIENT_SECRET - Bidzaar系统中的帐户活动
- 正确
BIDZAAR_BASE_URL
错误: ModuleNotFoundError
建立依赖关系: pip install -r requirements.txt
📄 许可证和链接
许可证: 麻省理工学院
有用的链接: