EBL MCP服务器
该项目实现了 模型上下文协议(MCP) 服务器管理电子提单(eBL)。它提供签发、查询、转移和交出电子提单的功能。
技术栈
- 语言: TypeScript
- 包管理器: pnpm
- 运行时间: Node.js
- 框架: @模型上下文协议/sdk
核心功能
- 问题eBL: 创建并注册新的电子提单。
- eBL查询: 检索现有eBL的详细信息。
- 转账电子提单: 更改eBL的持有人/所有者。
- 交出电子提单: 通常在货物交付时,将电子提单标记为已交出。
入门指南
先决条件
- Node.js(推荐LTS版本)
- pnpm(通过安装
npm install -g pnpm)
安装
- 克隆存储库:
git clone
cd ebl-mcp-server- 安装依赖项:
pnpm install运行服务器
- 开发模式:
pnpm dev- 生产模式:
pnpm build
pnpm start*(注意:构建和启动脚本需要在中定义 package.json)*
项目结构(初步构想)
ebl-mcp-server/
├── src/
│ ├── index.ts # Main application entry point
│ ├── routes/ # API route definitions
│ ├── controllers/ # Request handlers
│ ├── services/ # Business logic
│ ├── models/ # Data models/interfaces (e.g., eBL structure)
│ ├── middleware/ # Custom middleware (auth, logging, etc.)
│ └── config/ # Configuration files
├── test/ # Unit and integration tests
├── .env.example # Environment variable template
├── .gitignore
├── package.json
├── pnpm-lock.yaml
├── tsconfig.json
├── README.md # This file
└── PLAN.md # Development plan贡献
我们欢迎为改进EBL MCP服务器做出贡献!请遵循以下准则,以确保顺利合作:
开发工作流程
- 分叉存储库并从中创建功能分支
main - 安装依赖项
pnpm install - 按照我们的编码标准进行更改
- 添加新功能的测试
- 运行测试以确保一切按预期运行
- 提交拉取请求
编码标准
- 使用正确的类型定义编写TypeScript代码
- 遵循函数式编程范式;避免使用类
- 尽可能确保所有功能纯净无副作用
- 使用带有助动词的描述性变量名(例如isLoading、hasError)
- 结构文件:导出的组件、子组件、助手、静态内容
- 使用@modelcontextprotocol/sdk的机制实现全面的错误处理
拉取请求流程
- 更新文档以反映任何更改
- 确保代码通过所有测试
- 获得至少一名维护人员的批准
- 通过有意义的提交消息维护干净的提交历史记录
报告问题
如果您发现错误或有功能请求,请创建一个问题,提供:
- 对问题/请求的清晰描述
- 复制步骤(针对bug)
- 预期和实际行为(针对错误)
- 任何相关日志或截图
许可证
此项目根据Apache许可证2.0版获得许可-请参阅 许可证 文件以获取详细信息。
样品
发布eBL
{
"method": "tools/call",
"params": {
"name": "issue_ebl",
"arguments": {
"requester_bu_id": "did:openebl:3993ace7-eb6c-4a1f-bed8-121643a278c9",
"file_content": {
"url": "https://flash-store.kevin-a65.workers.dev/file/pStQB1tvsV89Ms6AhImTQQ"
},
"bl_number": "BL-20250417-12999",
"bl_doc_type": "HouseBillOfLading",
"pol": {
"locationName": "YanTian",
"UNLocationCode": "CNYTN"
},
"pod": {
"locationName": "LA",
"UNLocationCode": "USLAX"
},
"shipper": "did:openebl:d2856f4e-e636-4cf0-9110-fbb45304e614",
"consignee": "did:openebl:0158341d-5c6b-4121-bfe4-535c7606bbd5",
"release_agent": "did:openebl:66c71465-3d0b-43d8-9e1b-c88c7a7634ca",
"draft": false,
"to_order": false,
"eta": "2025-05-01",
"endorsee": "",
"notify_parties": [],
"note": "Test from MCP",
"encrypt_content": false
},
"_meta": {
"progressToken": 11
}
}
}