mcpField
M
Mcp Server Jsxgraph

Mcp Server Jsxgraph

本地服务
github.com/dxd214科研与教育663 周前更新

关于 Mcp Server Jsxgraph

Mcp Server Jsxgraph 是一个基于 TypeScript 的 MCP 服务,使用 JSXGraph 创建交互式数学可视化内容,适用于教育、工程和科学场景。它提供函数、几何、曲线和方程组等工具。

主要功能

  1. 01绘制函数并显示导数和积分
  2. 02创建交互式几何图示
  3. 03可视化参数曲线和向量场
  4. 04分析多项式和二次函数
  5. 05绘制方程、不等式和圆锥曲线
  6. 06支持 STDIO、SSE 和 Streamable 传输

适用场景

  1. 01通过图形讲解函数变换
  2. 02展示几何构造和圆锥曲线
  3. 03探索向量场与参数曲线
  4. 04将数学可视化工具连接到 MCP 客户端

MCP 相关

该 MCP 服务向客户端提供数学可视化工具,支持 STDIO、SSE 和 Streamable HTTP 传输。可通过环境变量禁用指定工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"jsxgraph": {
"command": "npx",
"args": [
"-y",
"mcp-server-jsxgraph"
]
}
}
}
启动命令npx -y mcp-server-jsxgraph

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-server-jsxgraph

工具

19

收录的工具列表 · 更新于 3 周前

参数类型必填说明
functionsarray否要绘制的数学函数数组。每个函数都包含一个表达式和可选样式。仅绘制点时可以为空。
pointsarray否要在图表上绘制的可选点。每个点都必须同时包含 x 和 y 坐标(数字)。示例:[{x: 0, y: 0, name: "Origin"}, {x: 1, y: 1}]
showDerivativeboolean否是否显示第一个函数的导数
showIntegralboolean否是否显示第一个函数的积分面积
integralBoundsarray否积分区域的边界 [a, b];showIntegral 为 true 时必填
tangentAtnumber否显示切线的 x 坐标
styleobject否图表的自定义样式配置。
style.themeenum否设置数学图表的主题。default | dark | light
style.backgroundColorstring否数学图表的背景颜色,例如 '#fff'。
style.gridboolean否是否显示网格线。
style.axisboolean否是否显示坐标轴线。
widthnumber否设置数学图表的宽度,默认值为 800。
heightnumber否设置数学图表的高度,默认值为 600。
titlestring否设置数学图表的标题。
axisXTitlestring否X 轴标签
axisYTitlestring否Y 轴标签
boundingBoxarray否图表的边界框。默认值为 [-10, 10, 10, -10]。
keepAspectRatioboolean否是否保持纵横比。
showCopyrightboolean否是否显示 JSXGraph 版权信息。
showNavigationboolean否是否显示导航控件。
zoomobject否图表的缩放配置。
zoom.enabledboolean否
zoom.factorXnumber否
zoom.factorYnumber否
zoom.wheelboolean否
zoom.needShiftboolean否
zoom.minnumber否
zoom.maxnumber否
panobject否图表的平移配置。
pan.enabledboolean否
pan.needShiftboolean否
pan.needTwoFingersboolean否

详细介绍

MCP Server JSXGraph MCP Server

最新稳定版本: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 sse1122http://localhost:1122/sseWeb 流式传输应用
Streamable(本地)mcp-server-jsxgraph --transport streamable1122http://localhost:1122/mcpHTTP 流式传输客户端
Docker SSEdocker compose up -d(sse 服务)1123http://localhost:1123/sse容器化 SSE 部署
Docker Streamabledocker compose up -d(streamable 服务)1122http://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)
  1. generate_function_graph:生成数学函数图,支持导数、积分、切线和多个函数。
  2. generate_parametric_curve:生成圆、利萨茹曲线、螺旋线和摆线等参数曲线,并可选择添加动态轨迹。
  3. generate_geometry_diagram:创建包含点、直线、圆、多边形、角和几何构造的交互式几何图。
  4. generate_vector_field:通过箭头、流线、奇点和大小颜色编码,可视化二维向量场。
  5. generate_linear_system:可视化线性方程组和不等式组,显示可行区域并进行线性规划优化。
  6. generate_function_transformation:通过动画展示函数变换,包括平移、缩放、反射和复合。
  7. generate_quadratic_analysis:全面分析二次函数,包括顶点、根、对称轴、焦点和准线。
  8. generate_exponential_logarithm:绘制指数函数和对数函数,展示渐近线、增长/衰减分析以及反函数关系。
  9. generate_rational_function:可视化有理函数和无理函数,显示渐近线、空点、定义域限制和临界点。
  10. generate_equation_system:求解并可视化线性和非线性方程组,显示数值解和相图。
  11. generate_conic_section:生成圆、椭圆、抛物线、双曲线等圆锥曲线,以及高次多项式,并展示其几何性质。
  12. generate_polynomial_steps:交互式逐步分析多项式,包括根、导数和图形表示。
  13. 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 客户端
SSEWeb 流式应用程序http://localhost:1122/sse服务端发送事件
HTTP Streamable云部署平台http://localhost:1122/mcpHTTP 流式协议
数学分析引擎

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_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、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_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 软件包:[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.

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。