Math-All-MCP Tools文档

April 6, 2025 · View on GitHub

本文档详细介绍了Math-All-MCP 的所有Tools,包括它们的功能、实现方式、参数和返回值,并提供了使用示例。

目录

BasicMathService

BasicMathService提供基础数学运算功能,包括基本算术运算、幂运算、三角函数、对数函数等。该服务使用Java的BigDecimal和Apache Commons Math库实现高精度计算。

基本运算

add

  • 功能:计算两个数的和
  • 实现:使用BigDecimal的add方法
  • 参数
    • a: 第一个加数(字符串表示的数值)
    • b: 第二个加数(字符串表示的数值)
  • 返回值:字符串表示的两数之和
  • 示例
    add("1", "1") // 返回 "2"
    add("0.1", "0.2") // 返回 "0.3"
    add("-1", "1") // 返回 "0"
    

subtract

  • 功能:计算两个数的差
  • 实现:使用BigDecimal的subtract方法
  • 参数
    • a: 被减数(字符串表示的数值)
    • b: 减数(字符串表示的数值)
  • 返回值:字符串表示的两数之差
  • 示例
    subtract("1", "1") // 返回 "0"
    subtract("0.5", "0.3") // 返回 "0.2"
    subtract("-1", "1") // 返回 "-2"
    

multiply

  • 功能:计算两个数的乘积
  • 实现:使用BigDecimal的multiply方法
  • 参数
    • a: 第一个因数(字符串表示的数值)
    • b: 第二个因数(字符串表示的数值)
  • 返回值:字符串表示的两数之积
  • 示例
    multiply("2", "3") // 返回 "6"
    multiply("0.1", "0.1") // 返回 "0.01"
    multiply("-1", "1") // 返回 "-1"
    

divide

  • 功能:计算两个数的商
  • 实现:使用BigDecimal的divide方法,精度为10位,四舍五入
  • 参数
    • a: 被除数(字符串表示的数值)
    • b: 除数(字符串表示的数值)
  • 返回值:字符串表示的两数之商
  • 示例
    divide("6", "2") // 返回 "3"
    divide("1", "3") // 返回 "0.3333333333"
    divide("10", "3") // 返回 "3.3333333333"
    

remainder

  • 功能:计算两个数的余数
  • 实现:使用BigDecimal的remainder方法
  • 参数
    • a: 被除数(字符串表示的数值)
    • b: 除数(字符串表示的数值)
  • 返回值:字符串表示的余数
  • 示例
    remainder("10", "3") // 返回 "1"
    remainder("10", "2") // 返回 "0"
    remainder("5.5", "2") // 返回 "1.5"
    

幂运算和根运算

power

  • 功能:计算一个数的幂
  • 实现:使用FastMath.pow方法
  • 参数
    • base: 底数(字符串表示的数值)
    • exponent: 指数(字符串表示的数值)
  • 返回值:字符串表示的幂运算结果
  • 示例
    power("2", "3") // 返回 "8"
    power("2", "0") // 返回 "1"
    power("10", "-2") // 返回 "0.01"
    

square

  • 功能:计算一个数的平方
  • 实现:使用FastMath.pow方法,指数为2
  • 参数
    • a: 底数(字符串表示的数值)
  • 返回值:字符串表示的平方结果
  • 示例
    square("2") // 返回 "4"
    square("-2") // 返回 "4"
    square("0.5") // 返回 "0.25"
    

squareRoot

  • 功能:计算一个数的平方根
  • 实现:使用FastMath.sqrt方法
  • 参数
    • a: 被开方数(字符串表示的非负数值)
  • 返回值:字符串表示的平方根结果
  • 示例
    squareRoot("4") // 返回 "2"
    squareRoot("2") // 返回 "1.4142135623730951"
    squareRoot("0.25") // 返回 "0.5"
    

cubeRoot

  • 功能:计算一个数的立方根
  • 实现:使用FastMath.cbrt方法
  • 参数
    • a: 被开方数(字符串表示的数值)
  • 返回值:字符串表示的立方根结果
  • 示例
    cubeRoot("8") // 返回 "2"
    cubeRoot("-8") // 返回 "-2"
    cubeRoot("0.125") // 返回 "0.5"
    

nthRoot

  • 功能:计算一个数的n次根
  • 实现:使用FastMath.pow方法,指数为1/n
  • 参数
    • a: 被开方数(字符串表示的数值)
    • n: 根次(字符串表示的非零数值)
  • 返回值:字符串表示的n次根结果
  • 示例
    nthRoot("16", "2") // 返回 "4"
    nthRoot("16", "4") // 返回 "2"
    nthRoot("-32", "5") // 返回 "-2"
    

值操作

absoluteValue

  • 功能:计算一个数的绝对值
  • 实现:使用FastMath.abs方法
  • 参数
    • a: 输入数值(字符串表示的数值)
  • 返回值:字符串表示的绝对值结果
  • 示例
    absoluteValue("5") // 返回 "5"
    absoluteValue("-5") // 返回 "5"
    absoluteValue("0") // 返回 "0"
    

ceilingValue

  • 功能:计算一个数的向上取整值
  • 实现:使用FastMath.ceil方法
  • 参数
    • a: 输入数值(字符串表示的数值)
  • 返回值:字符串表示的向上取整结果
  • 示例
    ceilingValue("1.1") // 返回 "2"
    ceilingValue("-1.1") // 返回 "-1"
    ceilingValue("1.0") // 返回 "1"
    

floorValue

  • 功能:计算一个数的向下取整值
  • 实现:使用FastMath.floor方法
  • 参数
    • a: 输入数值(字符串表示的数值)
  • 返回值:字符串表示的向下取整结果
  • 示例
    floorValue("1.9") // 返回 "1"
    floorValue("-1.1") // 返回 "-2"
    floorValue("1.0") // 返回 "1"
    

roundValue

  • 功能:计算一个数的四舍五入值
  • 实现:使用BigDecimal的setScale方法,精度为0,四舍五入
  • 参数
    • a: 输入数值(字符串表示的数值)
  • 返回值:字符串表示的四舍五入结果
  • 示例
    roundValue("1.4") // 返回 "1"
    roundValue("1.5") // 返回 "2"
    roundValue("-1.5") // 返回 "-2"
    

fractionalPart

  • 功能:获取一个数的小数部分
  • 实现:使用BigDecimal的subtract方法减去整数部分
  • 参数
    • a: 输入数值(字符串表示的数值)
  • 返回值:字符串表示的小数部分
  • 示例
    fractionalPart("1.23") // 返回 "0.23"
    fractionalPart("-1.23") // 返回 "-0.23"
    fractionalPart("5") // 返回 "0"
    

集合操作

maximum

  • 功能:计算多个数中的最大值
  • 实现:使用Java Stream API和BigDecimal的compareTo方法
  • 参数
    • values: 数值数组(字符串表示的数值可变参数)
  • 返回值:字符串表示的最大值
  • 示例
    maximum("1", "2", "3") // 返回 "3"
    maximum("-1", "-2", "-3") // 返回 "-1"
    maximum("1.1", "1.2", "1.3") // 返回 "1.3"
    

minimum

  • 功能:计算多个数中的最小值
  • 实现:使用Java Stream API和BigDecimal的compareTo方法
  • 参数
    • values: 数值数组(字符串表示的数值可变参数)
  • 返回值:字符串表示的最小值
  • 示例
    minimum("1", "2", "3") // 返回 "1"
    minimum("-1", "-2", "-3") // 返回 "-3"
    minimum("1.1", "1.2", "1.3") // 返回 "1.1"
    

average

  • 功能:计算多个数的平均值
  • 实现:使用Java Stream API计算总和,然后除以数量
  • 参数
    • values: 数值数组(字符串表示的数值可变参数)
  • 返回值:字符串表示的平均值
  • 示例
    average("1", "2", "3") // 返回 "2"
    average("-1", "-2", "-3") // 返回 "-2"
    average("1.1", "1.2", "1.3") // 返回 "1.2"
    

sum

  • 功能:计算多个数的总和
  • 实现:使用Java Stream API和BigDecimal的add方法
  • 参数
    • values: 数值数组(字符串表示的数值可变参数)
  • 返回值:字符串表示的总和
  • 示例
    sum("1", "2", "3") // 返回 "6"
    sum("-1", "-2", "-3") // 返回 "-6"
    sum("1.1", "1.2", "1.3") // 返回 "3.6"
    

product

  • 功能:计算多个数的乘积
  • 实现:使用Java Stream API和BigDecimal的multiply方法
  • 参数
    • values: 数值数组(字符串表示的数值可变参数)
  • 返回值:字符串表示的乘积
  • 示例
    product("1", "2", "3") // 返回 "6"
    product("-1", "-2", "-3") // 返回 "-6"
    product("1.1", "1.2", "1.3") // 返回 "1.716"
    

三角函数

sine

  • 功能:计算正弦值
  • 实现:使用FastMath.sin方法
  • 参数
    • angle: 角度(字符串表示的弧度值)
  • 返回值:字符串表示的正弦值
  • 示例
    sine("0") // 返回 "0"
    sine("1.5707963267948966") // 返回 "1" (π/2的正弦值)
    sine("3.141592653589793") // 返回 "0" (π的正弦值)
    

cosine

  • 功能:计算余弦值
  • 实现:使用FastMath.cos方法
  • 参数
    • angle: 角度(字符串表示的弧度值)
  • 返回值:字符串表示的余弦值
  • 示例
    cosine("0") // 返回 "1"
    cosine("1.5707963267948966") // 返回 "0" (π/2的余弦值)
    cosine("3.141592653589793") // 返回 "-1" (π的余弦值)
    

tangent

  • 功能:计算正切值
  • 实现:使用FastMath.tan方法
  • 参数
    • angle: 角度(字符串表示的弧度值)
  • 返回值:字符串表示的正切值
  • 示例
    tangent("0") // 返回 "0"
    tangent("0.7853981633974483") // 返回 "1" (π/4的正切值)
    tangent("3.141592653589793") // 返回 "0" (π的正切值)
    

arcsine

  • 功能:计算反正弦值
  • 实现:使用FastMath.asin方法
  • 参数
    • value: 正弦值(字符串表示的-1到1之间的数值)
  • 返回值:字符串表示的弧度值
  • 示例
    arcsine("0") // 返回 "0"
    arcsine("1") // 返回 "1.5707963267948966" (π/2)
    arcsine("0.5") // 返回 "0.5235987755982989" (π/6)
    

arccosine

  • 功能:计算反余弦值
  • 实现:使用FastMath.acos方法
  • 参数
    • value: 余弦值(字符串表示的-1到1之间的数值)
  • 返回值:字符串表示的弧度值
  • 示例
    arccosine("1") // 返回 "0"
    arccosine("0") // 返回 "1.5707963267948966" (π/2)
    arccosine("0.5") // 返回 "1.0471975511965976" (π/3)
    

arctangent

  • 功能:计算反正切值
  • 实现:使用FastMath.atan方法
  • 参数
    • value: 正切值(字符串表示的数值)
  • 返回值:字符串表示的弧度值
  • 示例
    arctangent("0") // 返回 "0"
    arctangent("1") // 返回 "0.7853981633974483" (π/4)
    arctangent("-1") // 返回 "-0.7853981633974483" (-π/4)
    

对数函数

naturalLogarithm

  • 功能:计算自然对数
  • 实现:使用FastMath.log方法
  • 参数
    • a: 输入数值(字符串表示的正数值)
  • 返回值:字符串表示的自然对数值
  • 示例
    naturalLogarithm("1") // 返回 "0"
    naturalLogarithm("2.718281828459045") // 返回 "1" (e的自然对数)
    naturalLogarithm("10") // 返回 "2.302585092994046"
    

commonLogarithm

  • 功能:计算以10为底的对数
  • 实现:使用FastMath.log10方法
  • 参数
    • a: 输入数值(字符串表示的正数值)
  • 返回值:字符串表示的常用对数值
  • 示例
    commonLogarithm("1") // 返回 "0"
    commonLogarithm("10") // 返回 "1"
    commonLogarithm("100") // 返回 "2"
    

logarithm

  • 功能:计算以指定底数的对数
  • 实现:使用对数换底公式 log_b(x) = log_e(x) / log_e(b)
  • 参数
    • a: 输入数值(字符串表示的正数值)
    • base: 底数(字符串表示的正数值,不等于1)
  • 返回值:字符串表示的对数值
  • 示例
    logarithm("8", "2") // 返回 "3"
    logarithm("9", "3") // 返回 "2"
    logarithm("100", "10") // 返回 "2"
    

exponential

  • 功能:计算e的幂
  • 实现:使用FastMath.exp方法
  • 参数
    • a: 指数(字符串表示的数值)
  • 返回值:字符串表示的e^a的值
  • 示例
    exponential("0") // 返回 "1"
    exponential("1") // 返回 "2.718281828459045" (e)
    exponential("2") // 返回 "7.38905609893065" (e^2)
    

AdvancedMathService

AdvancedMathService提供高级数学功能,包括表达式处理、微积分、方程求解等。该服务使用Symja库实现符号计算。

表达式处理

simplifyExpression

  • 功能:简化数学表达式
  • 实现:使用Symja的Simplify函数
  • 参数
    • expression: 要简化的表达式(字符串)
  • 返回值:简化后的表达式(字符串)
  • 示例
    simplifyExpression("x^2+2*x+1") // 返回 "(x+1)^2"
    simplifyExpression("sin(x)^2+cos(x)^2") // 返回 "1"
    simplifyExpression("a+a") // 返回 "2*a"
    

expandExpression

  • 功能:展开数学表达式
  • 实现:使用Symja的ExpandAll和HornerForm函数
  • 参数
    • expression: 要展开的表达式(字符串)
  • 返回值:展开后的表达式(字符串)
  • 示例
    expandExpression("(x+1)^2") // 返回 "1+x*(2+x)"
    expandExpression("(x+1)*(x-1)") // 返回 "-1+x^2"
    expandExpression("(a+b)*(c+d)") // 返回 "a*c+a*d+b*c+b*d"
    

factorExpression

  • 功能:因式分解表达式
  • 实现:使用Symja的Factor函数
  • 参数
    • expression: 要因式分解的表达式(字符串)
  • 返回值:因式分解后的表达式(字符串)
  • 示例
    factorExpression("x^2-1") // 返回 "(x-1)*(x+1)"
    factorExpression("x^2+2*x+1") // 返回 "(1+x)^2"
    factorExpression("x^3-1") // 返回 "(x-1)*(1+x+x^2)"
    

substituteVariable

  • 功能:替换表达式中的变量
  • 实现:使用Symja的ReplaceAll函数
  • 参数
    • expression: 原表达式(字符串)
    • variable: 要替换的变量(字符串)
    • value: 替换的值(字符串)
  • 返回值:替换后的表达式(字符串)
  • 示例
    substituteVariable("x^2+y^2", "x", "2") // 返回 "4+y^2"
    substituteVariable("x+y", "y", "x") // 返回 "x+x"
    substituteVariable("sin(x)", "x", "0") // 返回 "0"
    

parseExpression

  • 功能:解析表达式
  • 实现:使用Symja的eval方法直接计算
  • 参数
    • expression: 要解析的表达式(字符串)
  • 返回值:解析后的表达式(字符串)
  • 示例
    parseExpression("1+1") // 返回 "2"
    parseExpression("sin(0)") // 返回 "0"
    parseExpression("$2^{3}$") // 返回 "8"
    

executeCommand

  • 功能:执行Symja命令
  • 实现:使用Symja的eval方法执行命令,并进行安全性验证
  • 参数
    • command: 要执行的Symja命令(字符串)
  • 返回值:命令执行结果(字符串)
  • 示例
    executeCommand("Solve(x^2-1==0, x)") // 返回 "{{x->-1},{x->1}}"
    executeCommand("FactorInteger(100)") // 返回 "{{2,2},{5,2}}"
    executeCommand("Sum(k, {k,1,10})") // 返回 "55"
    

微积分

differentiate

  • 功能:计算单变量函数的导数
  • 实现:使用Symja的D函数
  • 参数
    • expression: 函数表达式(字符串)
    • variable: 变量(字符串)
  • 返回值:导数表达式(字符串)
  • 示例
    differentiate("x^2", "x") // 返回 "2*x"
    differentiate("Sin(x)", "x") // 返回 "Cos(x)"
    differentiate("e^x", "x") // 返回 "e^x*Log(e)"
    

partialDerivative

  • 功能:计算多变量函数的偏导数
  • 实现:使用Symja的D函数,指定变量和阶数
  • 参数
    • expression: 函数表达式(字符串)
    • variable: 变量(字符串)
    • order: 导数阶数(字符串)
  • 返回值:偏导数表达式(字符串)
  • 示例
    partialDerivative("x^2*y^3", "x", "1") // 返回 "2*x*y^3"
    partialDerivative("x^2*y^3", "y", "1") // 返回 "3*x^2*y^2"
    partialDerivative("x^2*y^3", "x", "2") // 返回 "2*y^3"
    

indefiniteIntegral

  • 功能:计算不定积分
  • 实现:使用Symja的Integrate函数
  • 参数
    • expression: 被积函数表达式(字符串)
    • variable: 积分变量(字符串)
  • 返回值:不定积分表达式(字符串)
  • 示例
    indefiniteIntegral("x", "x") // 返回 "x^2/2"
    indefiniteIntegral("x^2", "x") // 返回 "x^3/3"
    indefiniteIntegral("Sin(x)", "x") // 返回 "-Cos(x)"
    

definiteIntegral

  • 功能:计算定积分
  • 实现:使用Symja的Integrate函数,指定积分上下限
  • 参数
    • expression: 被积函数表达式(字符串)
    • variable: 积分变量(字符串)
    • lowerBound: 积分下限(字符串)