骰子模拟服务

一个基于FastMCP构建的演示MCP服务器,提供简单的骰子模拟功能。

  • by saurabh111222
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 saurabh111222/demo-mcp-server

使用说明

演示MCP服务器

使用FastMCP构建的演示模型上下文协议(MCP)服务器,提供了一个简单的掷骰子工具。

概述

该项目实现了一个基本的MCP服务器,该服务器通过模型上下文协议公开掷骰子功能。可以通过HTTP传输访问服务器。

代码结构(main.py)

进口

from fastmcp import FastMCP
import random
  • FastMCP:用于创建具有最小样板的MCP服务器的主要框架类
  • 随机:Python内置的随机数生成器模块,用于模拟骰子掷骰子

服务器初始化

mcp = FastMCP('demo-server')

创建名为“演示服务器”的FastMCP服务器实例。此名称标识MCP生态系统中的服务器。

工具定义

@mcp.tool
def roll_dice(n_dice: int = 1):
    '''roll the n_dice 6-sided dice and return result'''
    return [random.randint(1, 6) for _ in range(n_dice)]

目的:定义一个模拟滚动一个或多个6面骰子的工具。

参数:

  • n_dice (int,默认值=1):要掷骰子的数量

退货:一个整数列表,其中每个整数表示滚动一个骰子的结果(值在1到6之间)

实现细节:

  • 使用 @mcp.tool 装饰器将函数注册为MCP工具
  • 使用列表理解 random.randint(1, 6) 生成随机值
  • 每个模辊都是独立的,产生1到6(包括1和6)的值

服务器执行

if __name__ == "__main__":
    # mcp.run()
    mcp.run(transport="http", host="0.0.0.0", port=8000)

目的:直接运行脚本时启动MCP服务器。

配置:

  • 传输=“http”:使用HTTP作为通信协议(另一种选择是stdio)
  • 主机=“0.0.0.0”:绑定到所有可用的网络接口,使服务器可以从任何IP地址访问
  • 端口=8000:在端口8000上监听传入的HTTP请求

备注:评论行 # mcp.run() 显示了运行服务器的默认方式(使用stdio传输)。

用法

运行服务器

python main.py

服务器将于启动 http://0.0.0.0:8000 并揭露 roll_dice 工具通过MCP协议。

示例工具调用

服务器运行后,MCP客户端可以调用 roll_dice 工具:

  • 第一卷模具(默认): roll_dice()
  • 掷3个骰子: roll_dice(n_dice=3)

掷3个骰子的示例输出: [4, 2, 6]

依赖项

  • fastmcp:构建MCP服务器的框架
  • 随机:标准Python库(无需安装)

看 pyproject.toml 获取完整的依赖关系信息。

项目文件

  • main.py:主服务器实现
  • pyproject.toml:项目配置和依赖关系
  • uv.lock:可复制构建的依赖锁定文件
  • .python版本:指定项目的Python版本

许可证

这是一个学习MCP服务器开发的演示项目。