数学服务器工具

FastMCP数学服务器是一个基于FastMCP构建的示例服务器,用于展示四种核心MCP类别:能力发现、数据提供、提示返回和自主推理。

  • by toby-young-os
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 toby-young-os/mcp-servers

使用说明

FastMCP数学服务器

使用FastMCP构建的示例服务器,以说明四个核心MCP类别:能力发现、数据提供、提示返回和自主推理。该软件包还包括一个用于实验的简单客户端。

演示客户端

安装项目(或在仓库内使用 src 布局)并运行:

fastmcp-math-demo --list        # see available scenarios
fastmcp-math-demo               # run every scenario sequentially
fastmcp-math-demo capability    # run a single scenario

每个场景实例化相关的FastMCP服务器,打印其清单,并执行一个代表性工具(如适用),以便您可以观察不同的MCP交互模式。

交互式聊天

看 docs/planner.md 更深入地解释计划模式、工具选择以及何时使用。

要在REPL风格的循环中与服务器对话,请执行以下操作:

fastmcp-math-chat --server autonomous        # default, asks OpenAI-powered server
fastmcp-math-chat --server prompt            # simple math ops that return prompts
fastmcp-math-chat --server data --show-json  # inspect raw JSON responses
fastmcp-math-chat --server autonomous --model gpt-4.1-mini
fastmcp-math-chat --server data --planner    # let the LLM planner call tools for you
fastmcp-math-chat --server data --no-planner # fall back to manual commands

使用 exit 退出, help 作为指导,以及 tools 重新打印舱单。当计划器可用时(加载了OpenAI密钥),聊天客户端会自动通过LLM计划器路由非自治服务器,以便您可以键入自然语言请求。使用禁用该行为 --no-planner没有计划器,数据/提示服务器需要以下命令 add 2 3 或 divide 10 5.

计划员行为: 随着 --planner 启用后,客户端会要求LLM计划员每轮选择一个工具调用,打印计划员的决定(洋红色),然后执行该工具。除非您使用自主服务器,否则多步骤指令仍然需要额外的循环,该服务器将子步骤链接到自己的工具实现中。

OpenAI证书

一些场景(例如自主推理)称为OpenAI。创建一个 .env 文件旁边 pyproject.toml 与:

OPENAI_API_KEY=sk-...

通过加载密钥 python-dotenv,因此演示客户端和服务器将自动拾取它们(如果存在)。如果没有密钥,自主服务器就会退回到启发式推理器。

类别详解

这一切是如何结合在一起的

看 docs/setup.md 用于环境设置、安装和运行测试。

  1. 服务器蓝图 住在 src/mcp_math_servers/servers/__init__.py.每个 ServerBlueprint 描述FastMCP服务器(名称/别名、类别、摘要、工厂功能)。
  2. 客户 (聊天或演示)电话 get_blueprint(...),通过以下方式实例化服务器 blueprint.factory(),并从FastMCP检索工具元数据(server._tool_manager.get_tools()).
  3. 处理器 (能力、数据、提示、自主)使用这些工具定义来执行命令,为用户或规划者返回结构化JSON(和可选提示)。
  4. 计划模式 (可选 --planner)要求LLM根据工具元数据每轮选择一个工具调用;在执行工具之前,计划员的决定以洋红色打印。
  5. 自主服务器 这是一个特例:它的工具在内部委托给OpenAI,因此多阶段推理发生在该工具内部(需要 OPENAI_API_KEY).

看 docs/mcp_server_use_classies.md 查看每个类别的完整细分以及详细指南的链接。如果你想要高级接线图,请阅读 docs/architecture.md.

  • 能力服务器(类别1) 列出工具模式,但从不执行。演示与 fastmcp-math-chat --server capability --no-planner;尝试的命令返回“只读”提醒。
  • 数据服务器(类别2) –执行数学工具并返回干净的JSON(operation, inputs, result).尝试 fastmcp-math-chat --server data --no-planner --show-json 然后跑 add 2 3.
  • 提示返回服务器(类别3) –返回结构化数据和 next_prompt 以指导下游推理。例子: fastmcp-math-chat --server prompt --no-planner --show-json 随后 add 5 11.
  • 自主服务器(第4类) –在OpenAI内部运行推理,将任何所需的子操作链接到单个工具调用中(需要 OPENAI_API_KEY).例子: fastmcp-math-chat --server autonomous --no-planner --show-json 然后问“将7乘以3的结果是什么?”