Cal Server
# Cal Server
[](https://archestra.ai/mcp-catalog/pwh-pwh__cal-mcp)
[](https://smithery.ai/server/@pwh-pwh/cal-mcp)
<a href="https://glama.ai/mcp/servers/@pwh-pwh/cal-mcp">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@pwh-pwh/cal-mcp/badge" alt="Cal Server MCP server" />
</a>
## 项目简介
`Cal Server` 是一个基于 `FastMCP` 框架构建的简单数学表达式计算服务,使用 Bun 运行时环境。它利用 `expr-eval` 库解析和计算用户输入的数学表达式,并通过标准输入输出(stdio)与外界交互。该项目旨在提供一个轻量、高效的计算工具,支持基本数学运算和内置常量。
## 功能
- **表达式计算**:支持用户输入数学表达式并返回计算结果。
- **内置常量**:
- `E`:Bun 环境中的 `Math.E`。
- `PI`:Bun 环境中的 `Math.PI`。
- `true`:逻辑真值。
- `false`:逻辑假值。
- **工具名称**:`cal`。
- **参数**:接受一个字符串类型的数学表达式(`exp`)。
## 依赖
- `fastmcp`:用于构建 MCP 服务。
- `expr-eval`:用于解析和计算数学表达式。
- `zod`:用于参数验证。
## 前置条件
- 确保已安装 [Bun](https://bun.sh/) 运行时(推荐最新版本)。
## 安装
### Installing via Smithery
To install cal-mcp for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@pwh-pwh/cal-mcp):
```bash
npx -y @smithery/cli install @pwh-pwh/cal-mcp --client claude
```
### mcp客户端配置
```json
"cal-mcp": {
"name": "计算",
"description": "",
"isActive": true,
"command": "bunx",
"args": [
"cal-mcp"
]
}
```
### Manual Installation
1. 克隆项目仓库:
```bash
git clone <仓库地址>
```
2. 进入项目目录并安装依赖:
```bash
bun install
```
## 使用方法
1. 启动服务:
```bash
bun run index.ts
```
服务将通过标准输入输出(stdio)运行。
2. 输入数学表达式:
- 示例输入:`2 + 3 * PI`
- 输出:计算结果(字符串形式)。
3. 支持的表达式示例:
- 基本运算:`2 + 2` → `4`
- 使用常量:`PI * 2` → `6.283185307179586`
- 复杂表达式:`E ^ 2 + 1` → `8.38905609893065`
## 注意事项
- 输入的表达式必须是有效的数学表达式,否则可能抛出错误。
- 服务当前仅支持通过 `stdio` 交互。
- 项目使用 Bun 运行时,确保命令与 Bun 兼容。
## Hosted deployment
A hosted deployment is available on [Fronteir AI](https://fronteir.ai/mcp/pwh-pwh-cal-mcp).
TDQS
Scored across 4 tools
The tools have some overlap but descriptions help clarify distinctions. 'batchGetDateByTimestamp' and 'getDateByTimestamp' both convert timestamps to dates, but the batch version handles multiple inputs, while 'getNow' provides a timestamp and 'cal' evaluates mathematical expressions, which are distinct from date operations. However, the two date conversion tools could potentially be confused for single inputs.
The naming is inconsistent with mixed conventions. 'batchGetDateByTimestamp' and 'getDateByTimestamp' use camelCase, while 'getNow' uses a different verb style and 'cal' is an abbreviation that doesn't follow the same pattern. This lack of a uniform naming scheme makes the set less predictable and harder to parse.
With 4 tools, the count is well-scoped and appropriate for a calendar/utility server. Each tool serves a distinct purpose (date conversion, timestamp retrieval, and calculation), and there are no unnecessary redundancies, making the set manageable and focused.
The tool surface covers basic date and calculation operations but has notable gaps. It provides timestamp-to-date conversion and current timestamp retrieval, but lacks operations for date manipulation (e.g., adding days), formatting, or timezone handling. The 'cal' tool adds mathematical evaluation, but overall, the set is incomplete for broader calendar or time-related tasks.