关于 Mcp Server Jsxgraph
Mcp Server Jsxgraph 是一个基于 TypeScript 的 MCP 服务,使用 JSXGraph 创建交互式数学可视化内容,适用于教育、工程和科学场景。它提供函数、几何、曲线和方程组等工具。
主要功能
- 01绘制函数并显示导数和积分
- 02创建交互式几何图示
- 03可视化参数曲线和向量场
- 04分析多项式和二次函数
- 05绘制方程、不等式和圆锥曲线
- 06支持 STDIO、SSE 和 Streamable 传输
适用场景
- 01通过图形讲解函数变换
- 02展示几何构造和圆锥曲线
- 03探索向量场与参数曲线
- 04将数学可视化工具连接到 MCP 客户端
MCP 相关
该 MCP 服务向客户端提供数学可视化工具,支持 STDIO、SSE 和 Streamable HTTP 传输。可通过环境变量禁用指定工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
19收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| functions | array | 否 | 要绘制的数学函数数组。每个函数都包含一个表达式和可选样式。仅绘制点时可以为空。 |
| points | array | 否 | 要在图表上绘制的可选点。每个点都必须同时包含 x 和 y 坐标(数字)。示例:[{x: 0, y: 0, name: "Origin"}, {x: 1, y: 1}] |
| showDerivative | boolean | 否 | 是否显示第一个函数的导数 |
| showIntegral | boolean | 否 | 是否显示第一个函数的积分面积 |
| integralBounds | array | 否 | 积分区域的边界 [a, b];showIntegral 为 true 时必填 |
| tangentAt | number | 否 | 显示切线的 x 坐标 |
| style | object | 否 | 图表的自定义样式配置。 |
| style.theme | enum | 否 | 设置数学图表的主题。default | dark | light |
| style.backgroundColor | string | 否 | 数学图表的背景颜色,例如 '#fff'。 |
| style.grid | boolean | 否 | 是否显示网格线。 |
| style.axis | boolean | 否 | 是否显示坐标轴线。 |
| width | number | 否 | 设置数学图表的宽度,默认值为 800。 |
| height | number | 否 | 设置数学图表的高度,默认值为 600。 |
| title | string | 否 | 设置数学图表的标题。 |
| axisXTitle | string | 否 | X 轴标签 |
| axisYTitle | string | 否 | Y 轴标签 |
| boundingBox | array | 否 | 图表的边界框。默认值为 [-10, 10, 10, -10]。 |
| keepAspectRatio | boolean | 否 | 是否保持纵横比。 |
| showCopyright | boolean | 否 | 是否显示 JSXGraph 版权信息。 |
| showNavigation | boolean | 否 | 是否显示导航控件。 |
| zoom | object | 否 | 图表的缩放配置。 |
| zoom.enabled | boolean | 否 | |
| zoom.factorX | number | 否 | |
| zoom.factorY | number | 否 | |
| zoom.wheel | boolean | 否 | |
| zoom.needShift | boolean | 否 | |
| zoom.min | number | 否 | |
| zoom.max | number | 否 | |
| pan | object | 否 | 图表的平移配置。 |
| pan.enabled | boolean | 否 | |
| pan.needShift | boolean | 否 | |
| pan.needTwoFingers | boolean | 否 |
详细介绍
MCP Server JSXGraph 
最新稳定版本:0.1.2 | NPM 包:mcp-server-jsxgraph
一个使用 JSXGraph 生成数学可视化内容的模型上下文协议服务。该 MCP 服务可交互式生成函数、几何图形、参数曲线和教育数学图表。
这是一个基于 TypeScript 的 MCP 服务,提供数学可视化功能。你可以通过 MCP 工具创建各种类型的数学图表和示意图,非常适合教育数学、工程和科学应用。
🚀 快速参考
传输方式与连接矩阵
| 场景 | 命令 | 监听端口 | 访问端点 | 用途 |
|---|---|---|---|---|
| STDIO(默认) | npx -y mcp-server-jsxgraph | 不适用 | 不适用 | 桌面/IDE 客户端(Claude、Cursor、Cline) |
| SSE(本地) | mcp-server-jsxgraph --transport sse | 1122 | http://localhost:1122/sse | Web 流式传输应用 |
| Streamable(本地) | 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 Streamable | docker compose up -d(streamable 服务) | 1122 | http://localhost:1122/mcp | 容器化 Streamable 部署 |
最简可运行配置
桌面客户端(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
📋 目录
✨ 功能
由 JSXGraph 提供支持的 13 种数学可视化工具,可用于交互式数学图形绘制。
数学可视化图表(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 < x < 4)和带自定义样式的多个不等式组。
🏗️ 系统架构
MCP Server JSXGraph 采用分层架构,将协议处理、数学分析和可视化渲染清晰分离。
系统高级架构
graph TB
subgraph "Entry Layer"
CLI["CLI Entry Point<br/>src/index.ts"]
PKG["package.json<br/>Build Configuration"]
end
subgraph "MCP Protocol Layer"
SERVER["MCP Server Core<br/>src/server.ts"]
HANDLERS["Request Handlers<br/>ListToolsRequestSchema<br/>CallToolRequestSchema"]
end
subgraph "Transport Abstractions"
STDIO["Desktop Integration<br/>startStdioMcpServer()"]
SSE["Web Streaming<br/>startSSEMcpServer()"]
HTTP["Cloud Deployment<br/>startHTTPStreamableServer()"]
end
subgraph "Tool Execution Framework"
DISPATCHER["callTool()<br/>Request Dispatcher"]
REGISTRY["Tool Registry<br/>jsxgraph/index.ts"]
ENGINE["MathAnalysisEngine<br/>Mathematical Core"]
end
subgraph "Mathematical Tools"
FUNC["Function Analysis Tools"]
POLY["Polynomial Tools"]
GEO["Geometry Tools"]
NUM["Number Line Tool"]
end
CLI --> 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实现 Model Context Protocol - 请求处理:支持
ListToolsRequestSchema和CallToolRequestSchema - 工具发现:根据环境动态注册工具并进行筛选
- 错误管理:通过符合 MCP 规范的错误代码进行全面的错误处理
传输层支持
| 传输方式 | 用途 | 端点 | 集成方式 |
|---|---|---|---|
| STDIO | 桌面应用程序(Claude、VSCode、Cline、Cursor) | 标准输入/输出 | 直接集成 MCP 客户端 |
| SSE | Web 流式应用程序 | http://localhost:1122/sse | 服务端发送事件 |
| HTTP Streamable | 云部署平台 | 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<br/>All Tool Definitions"]
ENABLED["getEnabledTools()<br/>Environment Filtering"]
DISABLED["getDisabledTools()<br/>Environment Variables"]
end
subgraph "Type System"
MAP["CHART_TYPE_MAP<br/>Tool Name Mapping"]
JSXSET["JSXGRAPH_CHARTS Set<br/>Type Validation"]
CONFIG["JSXGraphConfig Interface<br/>Common Parameters"]
end
subgraph "Code Generation"
CONTAINER["Dynamic Container IDs<br/>jxgbox_[type]_[timestamp]"]
GENERATOR["generateJSXGraphCode()<br/>HTML Generation"]
SPECIAL["Special Handling<br/>polynomial-steps<br/>number-line"]
end
CHARTS --> ENABLED
ENABLED --> MAP
MAP --> JSXSET
JSXSET --> CONFIG
CONFIG --> CONTAINER
CONTAINER --> GENERATOR
GENERATOR --> SPECIAL
数学工具类别
| 类别 | 工具 | 核心能力 |
|---|---|---|
| 函数分析 | generate_function_graphgenerate_function_transformationgenerate_function_properties | 函数图像、变换,以及包含导数和积分的全面分析 |
| 多项式分析 | generate_polynomial_completegenerate_polynomial_stepsgenerate_quadratic_analysis | 多项式因式分解、求根、逐步分析 |
| 几何与进阶 | generate_geometry_diagramgenerate_parametric_curvegenerate_vector_fieldgenerate_conic_section | 交互式几何、参数曲线、向量场可视化 |
| 方程组 | generate_linear_systemgenerate_equation_systemgenerate_exponential_logarithmgenerate_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、Cline、Cherry Studio、Cursor 等桌面 MCP 客户端,请使用标准的 STDIO 配置(参见上方的快速参考)。
跨平台配置(推荐):
{
"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 或 Streamable 传输运行
直接运行
全局安装此软件包。
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 - Streamable 传输:
http://localhost:1122/mcp
Docker 部署
进入 docker 目录。
cd docker
使用 docker-compose 部署。
docker compose up -d
然后即可通过以下地址访问服务:
- SSE 传输:
http://localhost:1123/sse - Streamable 传输:
http://localhost:1122/mcp
🎮 CLI 选项
运行 MCP 服务时也可以使用以下 CLI 选项。运行 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_graphgenerate_parametric_curvegenerate_geometry_diagramgenerate_vector_fieldgenerate_linear_systemgenerate_function_transformationgenerate_quadratic_analysisgenerate_exponential_logarithmgenerate_rational_functiongenerate_equation_systemgenerate_conic_sectiongenerate_polynomial_steps
🔒 兼容性与稳定性承诺
绝不破坏用户空间承诺:
- 已发布的 CLI 参数和默认行为将在次要版本之间保持稳定
- 现有传输端点(
/sse、/mcp)不会更改 - 软件包名称
mcp-server-jsxgraph将保持不变 - 新功能将使用新的标志/端点,不影响现有行为
- 移除功能前将提供 2-3 个次要版本的弃用警告过渡期
当前稳定 API:
- NPM 软件包:
[email protected] - CLI 参数:
--transport、--port、--endpoint - STDIO 传输:桌面客户端的默认行为
- SSE 端点:指定端口上的
/sse - Streamable 端点:指定端口上的
/mcp - 环境变量:
DISABLED_TOOLS
🔨 开发
安装依赖项:
npm install
构建服务:
npm run build
启动 MCP 服务:
npm run start
📄 License
MIT@dxd214.
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。