素数计算服务

提供素数判定、查找及素因数分解等功能的MCP服务器,适用于数学计算、密码学等领域。

  • by Masa-Shin
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 masa-shin/prime-mcp-server

使用说明

主MCP服务器

提供与素数相关的功能MCP (Model Context Protocol) 服务器。

机能

这个MCP服务器提供以下工具:

  • is_prime:确定指定的数值是否为素数
  • next_prime:检索比指定数值大的最小素数
  • previous_prime:获取小于指定数值的最大素数
  • primes_in_range:获取指定范围内的所有素数
  • prime_factorization:执行指定数值的素因数分解

使用例

素数判定

{
  "tool": "is_prime",
  "arguments": {
    "number": 17
  }
}

返回值:

{"number":17,"isPrime":true}

获取以下素数

{
  "tool": "next_prime",
  "arguments": {
    "number": 10
  }
}

返回值:

{"originalNumber":10,"nextPrime":11}

获取上一个素数

{
  "tool": "previous_prime",
  "arguments": {
    "number": 10
  }
}

返回值:

{"originalNumber":10,"previousPrime":7}

获取范围内的素数

{
  "tool": "primes_in_range",
  "arguments": {
    "start": 1,
    "end": 20
  }
}

返回值:

{"range":{"start":1,"end":20},"primes":[2,3,5,7,11,13,17,19],"count":8}

素因数分解

{
  "tool": "prime_factorization",
  "arguments": {
    "number": 60
  }
}

返回值:

{"number":60,"factors":[{"prime":2,"exponent":2},{"prime":3,"exponent":1},{"prime":5,"exponent":1}],"formatted":"2^2 × 3 × 5"}

实施详细信息

素数判定算法

根据数值大小使用不同的算法:

  • MAX_SAFE_INTEGER (2^53-1) 以下数:试割法
  • MAX_SAFE_INTEGER超の数: Miller-Rabin判定法

Miller-Rabin判定法使用基数[2,3,5,7,11,13,17,19,23,29,31,37],对于2^64以下的数可以决定性地进行素数判定。

2^64(1446744073709551616)以上的数量是概率性的,虽然很少,但有误判的可能性。

另外,原本LLM也有不能处理那样大的数的可能性。

安装,安装

  1. 安装依赖关系:
npm install
  1. TypeScript编译:
npm run build
  1. 运行服务器:
npm start

开発

开发时用以下命令TypeScript可直接运行文件:

npm run dev