上下文映射器MCP服务器
](https://www.npmjs.com/package/context-mapper-mcp) 
MCP(模型上下文协议)服务器,使AI助手能够使用Context Mapper的CML(上下文映射语言)处理领域驱动设计模型。
特性
- 解析和序列化CML文件 -完全支持Context Mapper的CML语法
- 管理受限上下文 -创建、更新、删除有界上下文
- 使用骨料 -定义实体、值对象、域事件、命令和服务
- 上下文映射关系 -定义和管理有界环境之间的关系(合作伙伴关系、共享内核、上游下游,具有OHS、PL、ACL、CF等模式)
- 生成PlantUML图 -可视化上下文映射和聚合结构
- 实时验证 -在创建时捕获错误,而不是在保存时捕获错误
- ID值对象 -用于创建符合DDD标准的标识符类型的专用工具
验证功能
服务器实时验证模型以防止常见的CML错误:
| 验证 | 何时 | 示例错误 |
|---|---|---|
| 重复名称 | 创建时 | 'AgentId' already exists in ContextA... |
| 无效类型 | 创建时 | Map is not supported in CML... |
| 保留名称 | 创建时 | 'Resource' is a reserved keyword... |
| 保留属性 | 保存时 | 自动转义 ^ 前缀 |
有效的属性类型
- 原语:
String,int,long,boolean,DateTime,BigDecimal,UUID - 集合:
List,Set - 参考文献:
- TypeName(引用域对象)
无效类型(已拒绝)
Map,Any,Tuple,Runnable,Callbacks,嵌套泛型
安装
克劳德代码
claude mcp add context-mapper -- npx -y context-mapper-mcp@latest克劳德桌面版
添加到您的Claude Desktop配置(claude_desktop_config.json):
{
"mcpServers": {
"context-mapper": {
"command": "npx",
"args": ["-y", "context-mapper-mcp@latest"]
}
}
}可用工具
模型管理
| 工具 | 说明 |
|---|---|
cml_create_model | 创建新的空CML模型 |
cml_load_model | 加载CML文件 |
cml_save_model | 将模型保存到磁盘 |
cml_validate_model | 验证CML语法和语义 |
cml_get_model_info | 获取模型统计信息 |
查询工具
| 工具 | 说明 |
|---|---|
cml_list_bounded_contexts | 列出所有有界上下文 |
cml_get_bounded_context | 获取上下文详细信息 |
cml_list_aggregates | 列出聚合(可选按上下文筛选) |
cml_get_aggregate | 获取聚合及其所有元素 |
cml_find_elements | 按名称模式搜索(正则表达式) |
cml_list_relationships | 列出上下文映射关系 |
上下文工具
| 工具 | 说明 |
|---|---|
cml_create_context_map | 创建上下文映射 |
cml_create_bounded_context | 创建有界上下文 |
cml_update_bounded_context | 更新有界上下文 |
cml_delete_bounded_context | 删除有界上下文 |
聚合工具
| 工具 | 说明 |
|---|---|
cml_create_aggregate | 创建聚合 |
cml_update_aggregate | 更新聚合 |
cml_delete_aggregate | 删除聚合 |
cml_add_entity | 将实体添加到聚合 |
cml_add_value_object | 添加值对象 |
cml_add_identifier | 添加ID值对象(DDD最佳实践) |
cml_add_domain_event | 添加域事件 |
cml_add_command | 添加命令 |
cml_add_service | 添加域服务 |
cml_batch_add_elements | 批量创建 一次调用中有多个域对象 |
cml_delete_entity | 删除实体 |
cml_delete_value_object | 删除值对象 |
cml_delete_domain_event | 删除域事件 |
cml_delete_command | 删除命令 |
cml_delete_service | 删除服务 |
批量创建(cml_batch_add_elements)
在一次调用中创建多个域对象以提高效率:
{
"contextName": "CustomerManagement",
"aggregateName": "Customer",
"identifiers": [
{ "name": "CustomerId" }
],
"entities": [
{
"name": "Customer",
"aggregateRoot": true,
"attributes": [
{ "name": "id", "type": "- CustomerId", "key": true },
{ "name": "email", "type": "String" }
]
}
],
"valueObjects": [
{
"name": "Address",
"attributes": [
{ "name": "street", "type": "String" },
{ "name": "city", "type": "String" }
]
}
],
"domainEvents": [
{ "name": "CustomerRegistered", "attributes": [{ "name": "customerId", "type": "- CustomerId" }] }
],
"commands": [
{ "name": "RegisterCustomer", "attributes": [{ "name": "email", "type": "String" }] }
]
}优点:
- 更快:单次往返,而不是8+次单独通话
- 原子验证:在创建任何元素之前,所有元素都经过验证
- 错误处理:使用
failFast: false一次收集所有错误
关系工具
| 工具 | 说明 |
|---|---|
cml_create_relationship | 创建上下文映射关系 |
cml_update_relationship | 更新关系 |
cml_delete_relationship | 删除关系 |
cml_get_relationship | 获取关系详细信息 |
支持的关系类型:
- 伙伴关系 -对称,两个上下文都协作
- 共享内核 -对称的共享代码/模型
- 上游下游 -图案不对称:
- 上游:OHS(开放主机服务)、PL(出版语言) - 下游:ACL(防腐层)、CF(合格)
生成工具
| 工具 | 说明 |
|---|---|
cml_generate_context_map_diagram | 生成PlantUML上下文图 |
cml_generate_aggregate_diagram | 生成聚合类图 |
cml_generate_full_diagram | 生成完整的模型图 |
CML文件示例
ContextMap ECommerceContextMap {
type = AS_IS
contains CustomerManagement, OrderManagement, Inventory
CustomerManagement [U,OHS,PL] -> [D,ACL] OrderManagement
OrderManagement [U] -> [D,CF] Inventory
}
BoundedContext CustomerManagement {
domainVisionStatement = "Manages customer data"
implementationTechnology = "TypeScript"
Aggregate Customer {
Entity Customer {
aggregateRoot
key String customerId
String email
String firstName
}
ValueObject Address {
String street
String city
}
DomainEvent CustomerRegistered {
String customerId
Date registeredAt
}
Command RegisterCustomer {
String email
String firstName
}
}
}发展
git clone https://github.com/thijs-hakkenberg/contextmapper_mcp.git
cd contextmapper_mcp
npm install
npm run build
npm test建筑
- 解析器:基于Chevrotain的CML语法词法分析器和解析器
- 作者:将模型序列化回CML格式
- 验证:检查模型一致性和语义规则
- 工具:所有操作的MCP工具实施
- 生成器:PlantUML图生成器
许可证
麻省理工学院
