云数学计算工具

一个基于Model Context Protocol (MCP)和Server-Sent Events (SSE)的云部署数学工具服务器,支持学生通过本地LLM代理连接到教师管理的中央工具。

  • by iportilla
  • Python
  • 混合部署
  • 更新于
在 GitHub 查看 iportilla/calculator

使用说明

Cloud MCP计算器:学生和讲师指南

此存储库包含一个使用云部署的数学工具服务器 模型上下文协议(MCP) 通过 **服务器发送事件(SSE)**这种架构允许学生将他们的本地LLM代理(通过VS Code Continue)连接到一个集中式的、由讲师管理的工具。

分布式体系结构

下图显示了系统如何在讲师的云基础设施和学生的本地机器之间分布。

graph TB
    subgraph "Cloud Infrastructure (Instructor)"
        VM[Cloud Virtual Machine]
        Docker[Docker Container]
        Uvicorn[Uvicorn / SSE Server]
        CalcTool[Calculator Logic]
        
        VM --> Docker
        Docker --> Uvicorn
        Uvicorn --> CalcTool
    end

    subgraph "Student Machine"
        VSCode[VS Code + Continue]
        LLM[Local LLM / Ollama]
        NB[01_math_agent.ipynb]
    end

    VSCode -- "HTTP-SSE / Port 8080" --> Uvicorn
    NB -- "Standard Logic" --> OpenAI[OpenAI / API]

协议交互流程

当学生问数学问题时,通过SSE协议进行以下交换:

sequenceDiagram
    participant S as Student (VS Code)
    participant C as Cloud server (VM)
    participant T as Calculator Tool

    S->>C: GET /sse (Connect)
    C-->>S: SSE Stream Opened
    S->>C: POST /sse?sessionId=... (Initialize)
    C-->>S: JSON-RPC (Capabilites & ServerInfo)
    S->>C: POST /sse (tools/call: calculate)
    C->>T: eval(expression)
    T-->>C: Result (e.g., "42")
    C-->>S: JSON-RPC Result
    S->>S: Display "The answer is 42."

学生设置(config.yaml)

要连接到云工具,请更新您的 ~/.continue/config.yaml 如下:

mcpServers:
  - name: cloud-calc
    type: sse
    url: http://<YOUR-VM-PUBLIC-IP>:8080/sse

experimental:
  autoExecuteTools: true

讲师设置(Makefile)

使用提供的 Makefile 在VM上轻松管理服务:

命令 操作
make build 构建 mcp-calculator Docker镜像。
make run 在后台(分离)端口8080上启动服务器。
make logs 跟踪实时服务器日志(可用于调试学生连接)。
make stop 优雅地停下并移走正在运行的容器。

VM安全说明:

确保VM的云防火墙(安全组)允许 端口8080上的入站TCP流量.

调试:

卷曲-vhttp://YOUR-VM-PUBLIC-IP>:8080/上海