DoffinMCP
MCP(模型上下文协议)服务器,用于在挪威官方公共采购数据库Doffin中搜索RFP(征求建议书)出版物。
概述
该服务器使人工智能助手能够通过Doffin API搜索和检索有关挪威公共采购机会的信息。它提供了对招标通知、征求建议书和其他采购相关出版物的访问。
特性
- 搜索 带高级过滤器的Doffin采购通知
- 下载 JSON格式的完整通知文档
- 列表 并下载所有附件以获取通知
- 检索有关征求建议书的详细信息,包括:
- 通知ID和标题 - 出版和截止日期 - 买方/订约当局信息 - 说明和CPV代码 - 估计值和位置 - 文件附件
- 高级过滤 按类型、状态、CPV代码、位置、日期和值
- 对大型结果集的分页支持
- 错误处理和验证
先决条件
- Node.js 18或更高版本
- Doffin API密钥(请参见 获取API密钥)
安装
从npm安装包:
npm install -g doffinmcp或者直接与npx一起使用,无需安装:
npx doffinmcp获取API密钥
要使用此MCP服务器,您需要从Doffin API管理门户获取API密钥:
- 访问 Doffin API管理门户网站
- 注册一个账户
- 注册公共API的订阅
- 复制您的订阅密钥
配置
设置 DOFFIN_API_KEY API密钥的环境变量:
export DOFFIN_API_KEY=your_api_key_here或者创建一个 .env 项目根目录中的文件:
DOFFIN_API_KEY=your_api_key_here用法
使用克劳德桌面
将此服务器添加到您的Claude Desktop配置文件中:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"doffin": {
"command": "npx",
"args": ["doffinmcp"],
"env": {
"DOFFIN_API_KEY": "your_api_key_here"
}
}
}
}与其他MCP客户端
直接运行服务器:
DOFFIN_API_KEY=your_api_key_here npx doffinmcp服务器按照MCP协议通过stdio进行通信。
可用工具
搜索_通知
使用高级过滤器搜索挪威公共采购通知。这是寻找采购机会的主要工具。
参数:
searchString(可选,字符串):在通知标题和描述之间进行自由文本搜索numHitsPerPage(可选,数字):每页结果数(默认值:20)page(可选,数字):页码,0索引(默认值:0)sortBy(可选,字符串):排序顺序-PUBLICATION_DATE_ASC或PUBLICATION_DATE_DESC(默认)type(可选,字符串):注意类型过滤器(例如,“竞争,结果”表示多个)status(可选,字符串):状态筛选器-ACTIVE,EXPIRED,AWARDEDcpvCode(可选,字符串):CPV分类代码(逗号分隔为多个)location(可选,字符串):位置ID过滤器(非特定位置使用“anyw”)issueDateFrom(可选,字符串):YYYY-MM-DD格式的开始日期issueDateTo(可选,字符串):YYYY-MM-DD格式的结束日期estimatedValueFrom(可选,数字):最小估计值estimatedValueTo(可选,数字):最大估计值
例子:
Search for IT services: searchString="IT services"
Active tenders only: status="ACTIVE"
Specific location: location="03"下载_通知
下载特定Doffin ID的完整通知文档。以JSON格式返回包括所有详细信息和元数据在内的完整通知数据。
参数:
doffinId(必填,字符串):通知的Doffin ID(例如,“2023-100282”)
例子:
Download notice: doffinId="2023-100282"get_notice-docues
\[实验性\] 获取采购通知所附的所有文件清单。
注意:官方API中没有记录此端点,可能不适用于所有通知。
参数:
noticeId(必填,字符串):通知的唯一标识符
退货:
- 包含名称、类型、URL、大小和上传日期的文档列表
下载_所有_文档
\[实验性\] 下载采购通知所附的所有文件。此工具获取文档列表并下载每个文档。
注意:这使用了一个未记录的端点,可能不适用于所有通知。
参数:
noticeId(必填,字符串):通知的唯一标识符includeContent(可选,布尔值):是否在响应中包含实际文件内容(默认值:false)。如果为true,文件将采用base64编码。
退货:
- 所有下载状态文档的摘要
- 如果
includeContent为true,包括base64编码的文件内容
例子:
List documents only: noticeId="2023-100282", includeContent=false
Download all content: noticeId="2023-100282", includeContent=true获取通知详细信息
\[实验性\] 获取特定采购通知的详细信息。
注意:官方API中没有记录此端点,可能无法工作。
参数:
noticeId(必填,字符串):通知的唯一标识符
get_cpv_codes
\[实验性\] 搜索CPV(通用采购词汇)分类代码。
注意:官方API中没有记录此端点,可能无法工作。
参数:
query(可选,字符串):搜索词以查找相关的CPV代码
获取引用数据
\[实验性\] 获取通知类型、程序类型和合同类型等参考数据。
注意:官方API中没有记录此端点,可能无法工作。
参数:
type(必填,字符串):参考数据的类型-notice-types,procedure-types,或contract-types
Claude中的示例用法
配置后,您可以向Claude提出以下问题:
搜索:
- “在Doffin搜索IT咨询RFP”
- “查找建筑项目的最新采购机会”
- “医疗保健领域最新的主动征求建议书是什么?”
- “显示软件开发招标的第2页”
- “寻找估计价值超过100万挪威克朗的标书”
正在下载:
- “下载Doffin ID 2023-100282的完整通知”
- “获取通知2023-100282所附的所有文件”
- “下载此征求建议书的所有文件及其内容”
分析:
- “IT服务使用哪些CPV代码?”
- “显示通知2023-100282的详细信息”
发展
项目结构
DoffinMCP/
├── src/
│ ├── index.ts # Main server implementation
│ └── types.ts # TypeScript type definitions
├── build/ # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
└── README.md建筑
npm run build测试
可以使用MCP检查器工具测试服务器:
npx @modelcontextprotocol/inspector npx doffinmcpAPI 参考
此服务器使用Doffin Public API v2(https://betaapi.doffin.no/public/v2).更多信息:
注: 有些工具被标记为EXPERIMENTAL,因为它们使用未记录的API端点。这些可能不适用于所有通知,也可能在不通知的情况下更改。
关于多芬
Doffin是挪威公共采购的官方数据库。所有公共合同都必须通过Doffin进行广告宣传,以确保透明度并促进竞争。该平台由公共管理和电子政务局(DFØ)管理。
许可证
ISC
贡献
欢迎投稿!请随时提交拉取请求。
支持
对于以下问题:
- 此MCP服务器:在GitHub上打开一个问题
- Doffin API:通过其门户网站联系DFæ
- MCP协议:见 模型上下文协议文档
