Schwaizer
MCP Server: I14Y Interoperability platform
An unofficial MCP server for interacting with the Swiss I14Y Interoperability Platform.
This is a community project by Schwaizer and is not an official implementation by the Swiss government.
______________________________________________________________________
关于Schwaizer
塑造瑞士人工智能的未来 通过负责任的人工智能采用,赋予瑞士企业和社会权力。 Schwaizer成立于2025年,是一家非营利组织,致力于在瑞士加速负责任地采用人工智能。
网站:https://www.schwaizer.ch
______________________________________________________________________
概述
I14Y互操作性平台是瑞士的国家元数据目录,旨在促进政府机构和组织之间的数据互操作性。此MCP服务器为AI助手提供了搜索、检索和导出以下元数据的工具:
- 概念:标准化术语、代码列表和分类
- 数据集:数据收集及其结构和分布
- 数据服务:API和数据访问端点
- 公共服务:政府服务及其提供渠道
- 目录:符合DCAT的元数据导出
特性
概念工具
search_concepts-使用过滤器搜索概念get_concept-获取详细的概念信息get_code_list_entries-从代码列表中获取条目
数据集工具
search_datasets-使用过滤器搜索数据集get_dataset-获取详细的数据集信息
数据服务工具
search_data_services-搜索数据服务(API)get_data_service-获取详细的服务信息
公共服务工具
search_public_services-搜索公共服务get_public_service-获取详细的服务信息
安装
npm install配置
创建一个 .env 文件基于 .env.example:
# I14Y API Configuration
I14Y_API_BASE_URL=https://www.i14y.admin.ch/api/v1
I14Y_API_TOKEN=your_token_here_if_needed
# Server Configuration
LOG_LEVEL=info
DEFAULT_LANGUAGE=de
DEFAULT_PAGE_SIZE=20
API_TIMEOUT=30000环境变量
I14Y_API_BASE_URL-I14Y API的基本URL(默认值:https://www.i14y.admin.ch/api/v1)I14Y_API_TOKEN-受保护端点的可选身份验证令牌LOG_LEVEL-日志记录级别:跟踪、调试、信息、警告、错误(默认值:信息)DEFAULT_LANGUAGE-响应的默认语言:de、fr、it、en、rm(默认:de)DEFAULT_PAGE_SIZE-默认每页项目数(默认值:20)API_TIMEOUT-API请求超时(以毫秒为单位)(默认值:30000)
用法
运行服务器
# Development mode with auto-reload
npm run dev
# Production mode
npm start查询示例
按出版商搜索概念:
Search for concepts published by "CH_eHealth"获取数据集信息:
Get details for dataset with ID "004d6183-8135-4101-b998-2f9d9d58dc01"获取概念的代码列表条目:
Get code list entries for concept with ID "08dd632d-a98d-34ff-9252-123e46d6f053"按发布者搜索数据集:
Find all datasets published by the "CH1"示例工作流程:探索瑞士互操作性数据
目标: 在I14Y平台上查找和理解与特定主题相关的数据。
- 发现数据集:
- 目标: 查找与感兴趣的主题(例如“健康”)相关的数据集。 - 工具: search_datasets - 行动: 呼叫 search_datasets 使用查询参数来获取相关数据集的列表。这将提供数据集ID、标题和简要描述。
- 获取详细的数据集信息:
- 目标: 了解所选数据集的细节。 - 工具: get_dataset - 行动: 使用上一步中的ID进行呼叫 get_dataset这将返回详细的元数据,包括有关发布者、可用数据格式(分发)和相关概念的信息。
- 探索相关概念:
- 目标: 了解数据集中使用的术语和数据结构。 - 工具: search_concepts - 行动: 使用数据集描述中的关键字 search_concepts这将有助于确定定义数据的核心概念。
- 获取概念细节:
- 目标: 获得一个概念的精确定义。 - 工具: get_concept - 行动: 使用搜索结果中的概念ID进行调用 get_concept。这提供了完整的定义、版本历史和其他元数据。
- 检索代码列表条目:
- 目标: 如果一个概念是“代码列表”(即,它表示一组预定义的值),则检索所有可能的值。 - 工具: get_code_list_entries - 行动: 呼叫 get_code_list_entries 使用概念ID来获取所有有效代码及其含义的列表。这对于解释数据集中的分类数据至关重要。
- 发现相关API和服务:
- 目标: 查找与该主题相关的任何API(数据服务)或公共服务。 - 工具: search_data_services 和 search_public_services - 行动: 使用相关关键字搜索服务。这可以揭示访问数据或与公共行政流程交互的程序化方法。
- 获取服务详细信息:
- 目标: 了解如何使用已发现的API或公共服务。 - 工具: get_data_service 和 get_public_service - 行动: 使用服务ID获取详细信息,包括端点URL、文档链接和联系点。
此工作流程允许用户从广泛的搜索转向详细了解I14Y平台上可用的数据和服务,使他们能够有效地查找、解释和利用信息以满足他们的需求。
API 文档
I14Y API文档可在以下网址获取:
- 主要API:https://apiconsole.i14y.admin.ch/public/v1/index.html
- OpenAPI规范:https://apiconsole.i14y.admin.ch/public/v1/Release.json
发展
项目结构
schwaizer-I14Y/
├── src/
│ ├── index.js # MCP server entry point
│ ├── config.js # Configuration loader
│ ├── api/
│ │ ├── i14y-client.js # I14Y API client
│ │ └── schemas.js # Zod validation schemas
│ ├── tools/ # Tool implementations
│ │ ├── catalog-tools.js
│ │ ├── concept-tools.js
│ │ ├── dataset-tools.js
│ │ ├── data-service-tools.js
│ │ └── public-service-tools.js
│ └── utils/
│ ├── logger.js # Logging utility
│ └── formatting.js # Response formatting
├── tests/ # Test files
├── docs/ # Additional documentation
└── package.json运行测试
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Run tests in watch mode
npm run test:watch代码质量
# Lint code
npm run lint
# Format code
npm run format多语言支持
I14Y平台支持瑞士官方语言:
- 德语(de)-默认
- 法语(fr)
- 意大利语(it)
- 英语(en)
- 罗曼什语(rm)
大多数工具都接受 language 参数,用于指定所需的响应语言。
认证
I14Y API同时具有公共端点和受保护端点:
- 公共端点:无需身份验证(大多数读取操作)
- 受保护的端点:需要API令牌(写入操作,一些高级功能)
要访问受保护的端点,请从I14Y平台管理员处获取API令牌,并在 .env 文件。
局限性
- 只读访问(无写/更新操作)
- 速率限制可能适用(请查看I14Y API文档)
- 某些端点可能需要身份验证
- 响应大小受分页限制
贡献
欢迎投稿!请随时提交问题或拉取请求。
许可证
麻省理工学院
支持
关于以下问题:
- 此MCP服务器:在GitHub上打开一个问题
- 2014年API:联系I14Y平台管理员i14y@bfs.admin.ch
