ULID生成服务

一个在CloudFlare Workers上运行的ULID生成MCP服务器,提供标准ULID生成、种子时间指定ULID生成、单调递增ULID生成和ULID解析功能,适用于LLM测试代码中的ULID模拟数据生成。

  • by endoumame
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 endou-mame/ulid-generator-mcp

使用说明

ULID发电机MCP服务器

CloudFlare Workers在上面运行ULID生成MCP(Model Context Protocol)服务器。

概要

此项目包括:LLM在实施测试代码时ULID为了顺利地进行模型数据生成MCP提供服务器。

机能

三个ULID生成模式

  1. 标准ULID生成 (generate_standard_ulid)

    • 结合时间戳和隐式安全伪随机数生成算法生成的随机比特生成
  2. 指定种子时间ULID生成 (generate_seeded_ulid)

    • 指定种子时间生成
    • 使用相同的种子时间,时间戳组件(前8个字节)将相同
    • 随机比特(剩余8字节)不同ULID生成
  3. 単调增加ULID生成 (generate_monotonic_ulid)

    • 通过指定相同的种子时间,将最低随机比特递增1
    • 经过严格的排序ULID生成

追加机能

  1. ULID珀斯 (parse_ulid)
    • 现有ULID透视以获取详细信息

技术仕样

  • 协议:MCP HTTP流式传输
  • 框架结构:Hono.js
  • 运行时间:CloudFlare工人
  • 言语:TypeScript
  • ULID程序库: ulid (Node.js最有名的ULID库)

安装和运行

安装相关性

npm install

在开发环境中运行

npm run dev

构建

npm run build

CloudFlare Workers部署到

npm run deploy

运行测试

npm test

模具检查

npm run type-check

API仕様

端点

  • GET /:健康检查和服务器信息
  • POST /mcp: MCP HTTP Streamable端点

MCP工具

1.generate_standard_ulid

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "generate_standard_ulid",
    "arguments": {}
  }
}

2.发电机_种子_盖子

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "generate_seeded_ulid",
    "arguments": {
      "seedTime": 1640995200000
    }
  }
}

3.generate_tonical_ulid

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "generate_monotonic_ulid",
    "arguments": {
      "seedTime": 1640995200000
    }
  }
}

4.parse_ulid

{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "tools/call",
  "params": {
    "name": "parse_ulid",
    "arguments": {
      "ulid": "01FN2GZJZK0000000000000000"
    }
  }
}

响应示例

生成类工具的响应

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [{
      "type": "text",
      "text": "{\n  \"ulid\": \"01FN2GZJZK0123456789ABCDEF\",\n  \"timestamp\": 1640995200000,\n  \"randomness\": \"0123456789ABCDEF\"\n}"
    }]
  }
}

透视工具响应

{
  "jsonrpc": "2.0",
  "id": 4,
  "result": {
    "content": [{
      "type": "text",
      "text": "{\n  \"ulid\": \"01FN2GZJZK0000000000000000\",\n  \"timestampPart\": \"01FN2GZJZK\",\n  \"randomnessPart\": \"0000000000000000\",\n  \"timestamp\": 1640995200000,\n  \"date\": \"2022-01-01T00:00:00.000Z\"\n}"
    }]
  }
}

开発

项目结构

ulid-generator-mcp/
├── src/
│   ├── index.ts              # メインエントリーポイント(Honoアプリ)
│   ├── mcp-server.ts         # MCPサーバー実装
│   ├── mcp-types.ts          # MCP型定義
│   └── ulid-generator.ts     # ULID生成ロジック
├── test/
│   ├── ulid-generator.test.ts
│   └── mcp-server.test.ts
├── package.json
├── tsconfig.json
├── vitest.config.ts
├── wrangler.toml
└── README.md

测试覆盖

npm test -- --coverage

许可证

MIT许可证