数学表达式计算服务

基于Express和MCP协议搭建的HTTP服务器,提供数学表达式解析与计算功能,支持会话管理和流式通信。

  • by joejztang
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 joejztang/math-mcp

使用说明

数学MCP服务器

这个项目使用Express和模型上下文协议(MCP)建立了一个HTTP服务器,用于评估数学表达式。它展示了如何创建一个服务器,该服务器注册了一个使用mathjs来评估数学表达式的工具。

概述

该服务器使用TypeScript构建于Node.js上,并采用了以下关键组件:

  • 快递用于设置HTTP服务器并处理请求。
  • MCP 服务器由……提供 @modelcontextprotocol/sdk 管理客户端-服务器通信。
  • StreamableHTTPServerTransport 可以翻译为“可流式传输的HTTP服务器传输”或“支持流式传输的HTTP服务器传输”。这里,“Streamable”指的是支持或能够进行流式传输的特性,“HTTPServerTransport”则指的是用于HTTP服务器的传输机制或协议处理跨不同会话的流式HTTP通信。
  • 数学工具使用自定义工具 mathjs 用于评估数学表达式。它已注册为 mathtool 并且能够解析和计算表达式。

设置

先决条件

  • Node.js (建议使用v14+版本)
  • npm(随Node.js一起提供)

安装

  1. 克隆或下载该仓库。

  2. 导航到项目目录:

  3. 安装依赖项:

    npm install
    

运行服务器

使用以下命令启动服务器:

tsx index.ts

服务器监听在端口 3000。

在Copilot中设置

创建 .vscode/mcp.json在文件中添加类似以下内容:

{
  "servers": {
    "math-mcp": {
      "type": "http",
      "url": "http://localhost:3000/mcp"
    }
  }
}

终点(或终点指标)

  • POST /mcp用于客户端到服务器的通信。此终端接受包含数学表达式的请求。如果会话已初始化,则重用现有的传输;否则,处理新的初始化请求。
  • GET /mcp 翻译为中文是:“获取 /mcp(资源或页面)”。不过,具体翻译可能因上下文而异,/mcp 可能代表某个特定的资源、页面或接口路径,在实际应用中需要根据具体情况来解释用于通过服务器发送事件(SSE)接收服务器到客户端的通知。
  • **DELETE /mcp 翻译为中文是:“删除 /mcp”**用于终止会话。

数学工具的使用

数学工具(mathtool) 使用(某种方法或工具)来评估表达式 mathjs例如:

  • 请求:

    {
      "message": "3+5*8"
    }
    
  • 回应:

    {
      "result": "43"
    }
    

其他例子:

  • sin(35)-76.42*102.3 根据标准的数学规则进行计算,确保角度单位正确。

项目结构

  • index.ts服务器的主要入口点。
  • README.md项目文档。

许可证

麻省理工学院许可证