AI代理交易平台集成工具

Bidzaar MCP工具是一个用于集成AI代理与Bidzaar交易平台的简单stdio MCP服务器,支持创建、管理和分析采购流程、参与者、文档、事件以及通过AI生成描述。

  • by lxxr
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 lxxr/bidzaar_mcp_server

使用说明

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_currencies
  • cancel_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 下载文件时

确保:

  1. 目录 BIDZAAR_FILES_BASE_PATH 存在
  2. 该文件位于该目录内或指定完整路径
  3. 有读取文件的权限

错误: 401 Unauthorized

检查:

  1. 正派 BIDZAAR_CLIENT_ID 和 BIDZAAR_CLIENT_SECRET
  2. Bidzaar系统中的帐户活动
  3. 正确 BIDZAAR_BASE_URL

错误: ModuleNotFoundError

建立依赖关系: pip install -r requirements.txt

📄 许可证和链接

许可证: 麻省理工学院

有用的链接: