随机数生成服务

一个基于HTTP的流式随机数生成服务,提供随机数生成和数字聚合功能,支持进度通知和日志记录。

  • by shivanshu3
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 shivanshu3/HelloMcp

使用说明

“Magic Number MCP Server”翻译成中文是“魔法数字MCP服务器”

这个仓库托管了一个可流式传输的HTTP模型上下文协议(MCP)服务器,该服务器展示了两个工具,并配备了详尽的日志记录和进度遥测功能。服务器采用TypeScript编写,编译为Node.js,并通过HTTP暴露了一个单一的MCP端点。

工具暴露

  • get_magic_number
    生成一个1到100之间的随机整数(含1和100)。服务器在“准备魔法”时会发出多步进度通知,并返回人类可读的文本和结构化的JSON数据magicNumber, traceId, generatedAtIso)。

  • perform_magic_op
    接受一个数字数组,并执行一种神秘的聚合操作,返回一个隐藏的结果。进度通知描述了仪式的各个阶段,而结构化的响应则包含 resultValue, count, traceId,和 generatedAtIso任何非有限输入都将被排除,并发出警告。

所有工具调用都进行了详尽的监控:包括标准输出日志记录、服务器发送的日志通知(通过 sendLoggingMessage), 取消处理,以及MCP(管理控制点/主控程序)进度事件。

代码布局

  • src/server.ts 启动Express,加载配置,并注册MCP工具。
  • src/tools/ 包含每个工具的编排逻辑,将进度/日志记录委托给共享辅助程序。
  • src/operations/ 提供纯粹的业务逻辑(随机滚动,神秘聚合)。
  • src/logging/ 并且 src/mcp/ 保持可重复使用的日志记录管道,并 ToolExecution 包装器。

安装

npm install

开发工作流程

  • npm run dev — 通过(某种方式)启动TypeScript源代码 tsx 支持实时重载。
  • npm run build — 将TypeScript编译成 dist/。
  • npm start — 运行编译后的服务器(dist/server.js)。

环境变量:

  • PORT (默认 3000)
  • HOST (默认 127.0.0.1)
  • LOG_LEVEL (默认 debug): debug, info, warn, error。

MCP终端节点

服务器发布一个单一的MCP端点:

http://<HOST>:<PORT>/mcp

使用默认值时,这会变成 http://127.0.0.1:3000/mcp。

连接到MCP检查器

npx @modelcontextprotocol/inspector --url http://127.0.0.1:3000/mcp

从用户界面选择任意一个工具,提供参数(用于 perform_magic_op 提供JSON { "numbers": [1, 2, 3] }),并观察流式处理进度以及日志消息。

其他客户

  • **Claude Code / VS Code MCP(注:这里的“MCP”可能是一个特定上下文中的缩写或标识,但没有直接的中文对应,因此在翻译中保留原样。如果“MCP”有特定含义,如“微软认证专家”等,应根据具体语境进行翻译。)**添加一个指向相同URL的可流式HTTP服务器。
  • 光标使用MCP配置对话框并输入 http://127.0.0.1:3000/mcp。

日志记录与可观测性

控制台输出带有时间戳且结构化;MCP客户端也会接收到带有标签的日志通知 magic-number-server. 进度事件携带相同的信息 traceId 在工具输出中显示,以便更轻松地进行调试。