硬币翻转工具

一个简单轻量的MCP服务器,提供随机硬币翻转功能,生成'正面'或'反面'结果。

  • by filiksyos
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 filiksyos/coin-flip-mcp

使用说明

🪙 硬币翻转MCP

一个简单轻便的模型上下文协议(MCP)服务器,提供硬币翻转工具。调用时随机生成“head”或“tails”。

这是什么?

这是一个MCP服务器 xmcp 它公开了一个工具: toss_coin这是一个使用TypeScript构建MCP服务器的简单示例。

特性

✨ 简单 -一个工具,一个目的
🎲 真正的随机 -用途 Math.random() 无偏见的硬币翻转
⚡ 轻量级 -最小依赖性
🚀 生产就绪 -使用xmcp框架构建

安装

  1. 克隆或下载此项目
  2. 安装依赖项:
pnpm install

快速开始

发展模式

通过热重新加载启动MCP服务器:

pnpm dev

这将启动服务器并监视更改。

生产构建

构建项目:

pnpm build

运行内置服务器:

pnpm start

用法

服务器公开 toss_coin 通过MCP工具。调用时,它返回以下任一值:

  • heads
  • tails

示例通话

Tool: toss_coin
Input: (no parameters needed)
Output: "heads" or "tails"

项目结构

src/
└── tools/
    └── toss-coin.ts    # The coin flip tool implementation

运作原理

这 toss_coin 该工具使用JavaScript Math.random() 以生成0到1之间的随机数。如果该数字小于0.5,则返回“tails”,否则返回“heads”。这是一个公平的50/50分配。

const result = Math.random() < 0.5 ? "heads" : "tails";

延伸

想添加更多工具吗?请按照以下步骤操作:

  1. 创建新 .ts 文件在 src/tools/
  2. 出口 schema (使用Zod的工具参数)
  3. 出口 metadata (工具名称、描述、注释)
  4. 导出实现该工具的默认函数

例子:

import { type InferSchema } from "xmcp";

export const schema = {
  sides: z.number().describe("Number of sides on the die"),
};

export const metadata = {
  name: "roll_die",
  description: "Roll a die",
};

export default async function rollDie({ sides }: InferSchema<typeof schema>) {
  const result = Math.floor(Math.random() * sides) + 1;
  return {
    content: [{ type: "text", text: String(result) }],
  };
}

该工具将由xmcp通过文件系统路由自动发现!

了解更多