MCP服务器JSXGraph 
最新稳定版本:0.1.2 | NPM包: mcp-server-jsxgraph
用于生成数学可视化的模型上下文协议服务器 JSX图形此MCP服务器为函数、几何、参数曲线和教育数学提供交互式数学图表生成功能。
这是一个基于TypeScript的MCP服务器,提供数学可视化功能。它允许您通过MCP工具创建各种类型的数学图表,非常适合教育数学、工程和科学应用。
🚀 快速参考
传输和连接矩阵
| 场景 | 命令 | 侦听端口 | 访问端点 | 用例 |
|---|---|---|---|---|
| STDIO(默认) | npx -y mcp-server-jsxgraph | N/A | N/A | 桌面/IDE客户端(Claude、Cursor、Cline) |
| SSE(本地) | mcp-server-jsxgraph --transport sse | 1122 | http://localhost:1122/sse | Web流媒体应用程序 |
| 可流式传输(本地) | mcp-server-jsxgraph --transport streamable | 1122 | http://localhost:1122/mcp | HTTP流媒体客户端 |
| Docker SSE | docker compose up -d (sse服务) | 1123 | http://localhost:1123/sse | 容器化SSE部署 |
| Docker流媒体 | docker compose up -d (流媒体服务) | 1122 | http://localhost:1122/mcp | 容器化可简化部署 |
最低工作配置
桌面客户端(Claude Desktop、Cursor、Cline):
{
"mcpServers": {
"mcp-server-jsxgraph": {
"command": "npx",
"args": ["-y", "mcp-server-jsxgraph"]
}
}
}SSE自检(浏览器验证):
npx -y mcp-server-jsxgraph --transport sse --port 1122
# Open: http://localhost:1122/sse📋 目录
✨ 特性
13个由JSXGraph支持的数学可视化工具,用于交互式数学图形。
数学可视化图表(JSXGraph)
generate_function_graph:生成支持导数、积分、切线和多函数的数学函数图。generate_parametric_curve:使用可选的动画轨迹生成参数曲线,如圆、李萨如曲线、螺旋和摆线。generate_geometry_diagram:使用点、线、圆、多边形、角度和几何构造创建交互式几何图。generate_vector_field:使用箭头、流线、奇点和幅度颜色编码可视化二维矢量场。generate_linear_system:用可行域和线性规划优化可视化线性方程和不等式系统。generate_function_transformation:显示函数变换,包括平移、缩放、反射和动画合成。generate_quadratic_analysis:具有顶点、根、对称轴、焦点和准线的综合二次函数分析。generate_exponential_logarithm:用渐近线、增长/衰减分析和逆关系绘制指数和对数函数。generate_rational_function:用渐近线、洞、域限制和临界点可视化有理和无理函数。generate_equation_system:用数值解和相图求解和可视化线性和非线性方程系统。generate_conic_section:生成具有几何特性的圆锥曲线(圆、椭圆、抛物线、双曲线)和高次多项式。generate_polynomial_steps:具有根、导数和图形表示的交互式逐步多项式分析。generate_number_line_inequality:在数字线上可视化不等式,支持简单不等式(x>2)、复合不等式(1\ SERVER
PKG --> CLI SERVER --> HANDLERS HANDLERS --> STDIO HANDLERS --> SSE HANDLERS --> HTTP STDIO --> DISPATCHER SSE --> DISPATCHER HTTP --> DISPATCHER DISPATCHER --> REGISTRY DISPATCHER --> ENGINE REGISTRY --> FUNC REGISTRY --> POLY REGISTRY --> GEO REGISTRY --> NUM
### 核心组件
#### MCP协议实现
- **服务器核心**:通过以下方式实现模型上下文协议 `@modelcontextprotocol/sdk`
- **请求处理**:支持 `ListToolsRequestSchema` 和 `CallToolRequestSchema`
- **工具发现**:基于环境过滤的动态工具注册
- **错误管理**:使用符合MCP的错误代码进行全面的错误处理
#### 传输层支持
|传输|用例|端点|集成|
|-----------|----------|----------|-------------|
| **工作室** |桌面应用程序(Claude、VSCode、Cline、Cursor)|标准I/O |直接MCP客户端集成|
| **上海证券交易所** |Web流媒体应用程序| `http://localhost:1122/sse` |服务器发送的事件|
| **HTTP流式传输** |云部署平台| `http://localhost:1122/mcp` |HTTP流协议|
#### 数学分析引擎
这 `MathAnalysisEngine` 提供复杂的数学计算能力:
- **功能分析**:域、范围、截距、极值、渐近线、单调性
- **多项式分析**:根查找、因子分解、末端行为分析
- **解决不平等问题**:简单不等式、复合不等式、绝对值不等式和逻辑不等式
- **数值方法**:双分割法、数值微分、区间计算
### MCP协议通信流程
sequenceDiagram participant Client as MCP Client participant Server as Server Instance participant Handler as CallToolRequestSchema Handler participant Dispatcher as callTool() Function participant Validator as Zod Schema Validation participant Engine as MathAnalysisEngine participant Generator as JSXGraph Code Generator
Client->>Server: CallToolRequest Server->>Handler: request.params Handler->>Dispatcher: callTool(name, arguments) Dispatcher->>Validator: z.object(schema).safeParse(args) Validator-->>Dispatcher: Validation Result
alt Valid Request Dispatcher->>Engine: Mathematical Analysis Engine-->>Dispatcher: Analysis Data Dispatcher->>Generator: generateJSXGraphCode(config) Generator-->>Dispatcher: JavaScript Code Dispatcher-->>Handler: Tool Response Handler-->>Server: Success Response Server-->>Client: JSXGraph Visualization else Invalid Request Dispatcher-->>Handler: McpError(ErrorCode.InvalidParams) Handler-->>Server: Error Response Server-->>Client: Error Message end
### 工具执行框架
该系统通过统一的执行框架管理15多种数学可视化工具:
graph LR subgraph "Tool Registry" CHARTS["Charts Object All Tool Definitions"] ENABLED["getEnabledTools() Environment Filtering"] DISABLED["getDisabledTools() Environment Variables"] end
subgraph "Type System" MAP["CHART_TYPE_MAP Tool Name Mapping"] JSXSET["JSXGRAPH_CHARTS Set Type Validation"] CONFIG["JSXGraphConfig Interface Common Parameters"] end
subgraph "Code Generation" CONTAINER["Dynamic Container IDs jxgbox_[type]_[timestamp]"] GENERATOR["generateJSXGraphCode() HTML Generation"] SPECIAL["Special Handling polynomial-steps number-line"] end
CHARTS --> ENABLED ENABLED --> MAP MAP --> JSXSET JSXSET --> CONFIG CONFIG --> CONTAINER CONTAINER --> GENERATOR GENERATOR --> SPECIAL
### 数学工具类别
|类别|工具|核心能力|
|----------|--------|------------------|
| **功能分析** | `generate_function_graph`
`generate_function_transformation`
`generate_function_properties` |函数图、变换、导数和积分综合分析|
| **多项式分析** | `generate_polynomial_complete`
`generate_polynomial_steps`
`generate_quadratic_analysis` |多项式分解、求根、逐步分析|
| **几何与高级** | `generate_geometry_diagram`
`generate_parametric_curve`
`generate_vector_field`
`generate_conic_section` |交互式几何、参数曲线、矢量场可视化|
| **方程式系统** | `generate_linear_system`
`generate_equation_system`
`generate_exponential_logarithm`
`generate_rational_function` |线性/非线性系统,指数和对数函数|
| **专用工具** | `generate_number_line_inequality` |使用区间符号增强不等式可视化|
### 技术栈
graph TD subgraph "Core Framework" TS["TypeScript"] NODE["Node.js Runtime"] end
subgraph "MCP Integration" SDK["@modelcontextprotocol/sdk"] PROTO["MCP Protocol Implementation"] end
subgraph "Mathematical Libraries" JSX["JSXGraph"] ZOD["Zod Schema Validation"] MATH["Mathematical Analysis Engine"] end
subgraph "Development Tools" VITEST["Vitest Testing Framework"] BIOME["Biome Linting & Formatting"] BUILD["TypeScript Build System"] end
TS --> NODE SDK --> PROTO JSX --> MATH ZOD --> MATH VITEST --> BUILD BIOME --> BUILD
NODE --> SDK PROTO --> JSX MATH --> VITEST
## 🤖 用法
### 桌面应用程序
对于Claude desktop、VSCode等桌面MCP客户端, [克莱恩](https://cline.bot/mcp-marketplace)Cherry Studio、Cursor,使用标准STDIO配置(请参阅 [快速参考](#-quick-reference) 上文)。
**跨平台配置(推荐):**
{ "mcpServers": { "mcp-server-jsxgraph": { "command": "npx", "args": ["-y", "mcp-server-jsxgraph"] } } }
**Windows特定(如果npx不能直接工作):**
{ "mcpServers": { "mcp-server-jsxgraph": { "command": "cmd", "args": ["/c", "npx", "-y", "mcp-server-jsxgraph"] } } }
## 🚰 使用SSE或流媒体传输运行
### 直接运行
全局安装该软件包。
npm install -g mcp-server-jsxgraph
使用首选传输选项运行服务器:
For SSE transport (default endpoint: /sse)
mcp-server-jsxgraph --transport sse
For Streamable transport with custom endpoint
mcp-server-jsxgraph --transport streamable
然后,您可以访问服务器:
- SSE运输: `http://localhost:1122/sse`
- 可流动运输: `http://localhost:1122/mcp`
### Docker部署
进入docker目录。
cd docker
使用docker compose进行部署。
docker compose up -d
然后,您可以访问服务器:
- SSE运输: `http://localhost:1123/sse`
- 可流动运输: `http://localhost:1122/mcp`
## 🎮 CLI选项
运行MCP服务器时,您还可以使用以下CLI选项。使用run-cli命令选项 `-h`.
MCP Server JSXGraph CLI
Options: --transport, -t Specify the transport protocol: "stdio", "sse", or "streamable" (default: "stdio") --port, -p Specify the port for SSE or streamable transport (default: 1122) --endpoint, -e Specify the endpoint for the transport: - For SSE: default is "/sse" - For streamable: default is "/mcp" --help, -h Show this help message
## ⚙️ 环境变量
|变量|描述|默认值|示例|
|----------|:------------|---------|---------|
| `DISABLED_TOOLS` |以逗号分隔的禁用工具名称列表|-| `generate_function_graph,generate_parametric_curve` |
### 🎛️ 工具筛选
您可以使用禁用特定的数学可视化工具 `DISABLED_TOOLS` 环境变量。当某些工具与MCP客户端存在兼容性问题,或者您想限制可用功能时,这很有用。
{ "mcpServers": { "mcp-server-jsxgraph": { "command": "npx", "args": [ "-y", "mcp-server-jsxgraph" ], "env": { "DISABLED_TOOLS": "generate_function_graph,generate_parametric_curve" } } } }
**可用于筛选的工具名称:**
- `generate_function_graph`
- `generate_parametric_curve`
- `generate_geometry_diagram`
- `generate_vector_field`
- `generate_linear_system`
- `generate_function_transformation`
- `generate_quadratic_analysis`
- `generate_exponential_logarithm`
- `generate_rational_function`
- `generate_equation_system`
- `generate_conic_section`
- `generate_polynomial_steps`
## 🔒 兼容性和稳定性承诺
**永不打破用户空间承诺:**
- 发布的CLI参数和默认行为在次要版本中保持稳定
- 现有传输端点(`/sse`, `/mcp`)不会改变
- 包名 `mcp-server-jsxgraph` 将保持一致
- 新功能将使用新的标志/端点,保持现有行为不变
- 弃用警告将在删除前提供2-3个次要版本过渡期
**当前稳定的API:**
- NPM包: `mcp-server-jsxgraph@0.1.2`
- CLI参数: `--transport`, `--port`, `--endpoint`
- STDIO传输:桌面客户端的默认行为
- SSE端点: `/sse` 在指定端口上
- 可流式传输端点: `/mcp` 在指定端口上
- 环境变量: `DISABLED_TOOLS`
## 🔨 发展
安装依赖项:
npm install
构建服务器:
npm run build
启动MCP服务器:
npm run start
## 📄 许可证
麻省理工学院@[dxd214](https://github.com/dxd214).