🚀 招标MCP:面向土耳其公共招标的MCP服务器
本项目旨在创建一个 FastMCP 服务器,用于简化对土耳其公共招标(ekap.kik.gov.tr)的访问。通过该服务器,基于模型上下文协议(MCP)的大语言模型(LLM)应用程序(如 Claude Desktop 或 5ire)以及其他客户端,能够以工具形式实现从 EKAP v2 门户搜索招标信息、获取招标详情以及以 Markdown 格式获取招标公告等操作。
✨ 主要特性
- 标准化 MCP 接口:为 EKAP v2 门户提供了用于程序访问的标准 MCP 接口。
- 丰富的功能:
- 详细招标搜索:支持通过招标名称/内容、IKN 编号、招标类型、省份、日期范围以及 17 种以上布尔过滤器进行全面搜索。
- 招标详情获取:可获取特定招标的完整详细信息,包括属性、OKAS 代码、管理信息和操作规则。
- 招标公告获取:自动将 HTML 格式转换为 Markdown 格式,获取与招标相关的所有公告,如预公告、招标公告、结果公告等。
- OKAS 代码搜索:支持在土耳其公共采购分类代码中进行搜索。
- 管理机构搜索:可搜索如部委、市政府、大学等公共机构。
- 格式转换:将招标文本从 HTML 格式转换为 Markdown 格式,便于大语言模型进行处理。
- 集成便捷:易于与 Claude Desktop 应用程序集成,同时也支持 5ire 等其他 MCP 客户端。
📦 安装指南
🚀 非 Claude 模型的简易安装(以 5ire 为例)
本部分适用于希望将招标 MCP 工具与 Claude Desktop 以外的 MCP 客户端(如 5ire)配合使用的用户。
- 安装 Python:系统需安装 Python 3.11 或更高版本。安装时请务必勾选“Add Python to PATH”(将 Python 添加到系统路径)选项,可从 此处 下载。
- 安装 Git(Windows):从 此处 下载并安装 Git 软件,建议选择“Git for Windows/x64 Setup”选项。
- 安装
uv:
- Windows 用户(PowerShell):打开 CMD 窗口,运行以下命令:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- **Mac/Linux 用户(终端)**:打开终端窗口,运行以下命令:
curl -LsSf https://astral.sh/uv/install.sh | sh
- 安装 Microsoft Visual C++ Redistributable(Windows):部分 Python 包的正常运行依赖该组件,可从 此处 下载并安装。
- 安装 5ire:根据操作系统下载并安装 5ire MCP 客户端。
- 配置 5ire:打开 5ire 应用程序,在“Workspace -> Providers”菜单中输入所需 LLM 服务的 API 密钥。
- 添加工具:进入“Tools”菜单,点击“+Local”或“New”按钮,进行如下配置:
- Tool Key:
ihalemcp
- Name:
招标 MCP
- Command:
uvx --from git+https://github.com/saidsurucu/ihale-mcp ihale-mcp
点击“Save”按钮保存配置。
- 启用工具:此时应能在“Tools”菜单下看到“招标 MCP”工具,将鼠标悬停在该工具上,点击右侧出现的按钮启用(绿色指示灯应亮起)。
- 开始使用:现在可以与招标 MCP 进行交互。
⚙️ Claude Desktop 手动安装步骤
- 确认依赖:确保系统已安装 Python、
uv 以及(Windows 用户)Microsoft Visual C++ Redistributable。具体安装步骤可参考上述“5ire 安装”部分。
- 编辑配置文件:打开 Claude Desktop,依次点击“Settings -> Developer -> Edit Config”。
- 添加配置信息:在打开的
claude_desktop_config.json 文件中,在 mcpServers 下添加以下内容:
{
"mcpServers": {
"招标 MCP": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/saidsurucu/ihale-mcp",
"ihale-mcp"
]
}
}
}
- 重启应用程序:关闭并重新启动 Claude Desktop。
💻 使用示例
🛠️ 可用工具(MCP 工具)
此 FastMCP 服务器为 LLM 模型提供了以下工具:
search_tenders:在 EKAP v2 门户上进行全面的招标搜索。
- 主要参数:
search_text、ikn_year、ikn_number、tender_types、tender_date_start/end、announcement_date_start/end
- 布尔过滤器:
e_ihale、ortak_alim_mi、kismi_teklif_mi、yabanci_isteklilere_izin_veriliyor_mu 等 13 种以上过滤器
- 列表过滤器:
provinces、tender_statuses、tender_methods、okas_codes、authority_ids、proposal_types、announcement_types
- 搜索范围:
search_in_title、search_in_announcement、search_in_tech_spec 等 11 个不同字段
- 返回值:分页的招标列表及总结果数
search_okas_codes:在 OKAS(公共采购分类)代码中进行搜索。
- 参数:
search_term、kalem_turu(1 = 商品,2 = 服务,3 = 建设)、limit
- 返回值:OKAS 代码、说明及类别
search_authorities:在土耳其公共机构中进行搜索。
- 参数:
search_term、limit
- 返回值:机构 ID、名称及层级信息
get_recent_tenders:获取最近 N 天内的招标信息。
- 参数:
days(1 - 30)、tender_types、limit
- 返回值:近期招标列表
get_tender_announcements:获取特定招标的所有公告。
- 参数:
tender_id、include_html
- 返回值:自动转换为 Markdown 格式的招标公告
get_tender_details:获取特定招标的详细信息。
- 参数:
tender_id
- 返回值:招标属性、OKAS 代码、管理信息、操作规则以及自动转换为 Markdown 格式的公告摘要
招标类型
- 1 - 商品:物资和设备采购
- 2 - 建设:建筑和基础设施项目
- 3 - 服务:服务合同
- 4 - 咨询:咨询服务
示例应用场景
- 市场调研:跟踪特定行业或地区的机会。
- 合规监测:监控招标公告以确保符合法律法规。
- 商业智能:分析公共支出模式和趋势。
- 通知系统:为特定招标类型设置提醒系统。
- 数据分析:提取招标数据进行研究和分析。
新特性
- 17 种以上布尔过滤器:支持电子招标、联合采购、部分报价、外国参与等过滤条件。
- 列表过滤器:支持按省份、招标状态、方式、OKAS 代码、管理机构 ID 等进行过滤。
- 搜索范围控制:可在 IKN、标题、公告、技术规格等多个字段进行搜索。
- 管理机构搜索:支持在 72,000 多个公共机构(部委、市政府、大学等)中进行搜索。
- 招标公告处理:自动将 HTML 格式的公告转换为 Markdown 格式,提供完整公告文本。
- 全面招标详情:整合所有招标元数据、属性和规则。
API 速率限制
本服务器遵循 EKAP 门户的速率限制。在生产环境中使用时,请考虑以下几点:
- 请求缓存:通过缓存请求减少 API 调用次数。
- 指数退避重试机制:采用指数退避策略进行重试。
- 请求队列:对于高流量使用场景,使用请求队列。
📄 许可证
本项目采用 MIT 许可证授权。详细信息请参阅 LICENSE 文件。
免责声明
本项目是与土耳其政府 EKAP 门户的非官方集成。用户有责任遵守该门户的服务条款和适用法规。作者与土耳其政府或 EKAP 门户无关联。