mcpField
M
MCP Calculator Demo

MCP Calculator Demo

本地服务
github.com/pijush2022开发工具078 周前更新

关于 MCP Calculator Demo

MCP Calculator Demo 是一个 Python 计算器服务与客户端示例,用于执行算术运算和表达式求值。它结合直接运算、带括号表达式和 RPN 求值,并通过 SSE 通信。

主要功能

  1. 01加、减、乘、除运算
  2. 02求值复杂表达式
  3. 03支持括号
  4. 04RPN 求值
  5. 05处理无效表达式和除零

适用场景

  1. 01演示 MCP 计算器服务
  2. 02通过客户端计算算术表达式
  3. 03测试表达式解析与错误处理

MCP 相关

FastMCP 服务向 MCP 客户端提供算术运算工具。随附客户端通过服务器发送事件(SSE)与服务通信。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Calculator Demo

一个演示项目,展示如何使用 MCP(Model Control Protocol)框架构建计算器服务。该项目包含一个提供基本算术运算的服务端,以及一个能够计算简单和复杂数学表达式的客户端。

项目结构

  • calculator_server.py:提供算术运算的 MCP 服务端
  • client.py:连接服务端并处理用户输入的客户端应用程序
  • requirements.txt:项目依赖项

功能

  • 基本算术运算(加法、减法、乘法、除法)
  • 支持简单运算(例如,“add 2 3”)和复杂表达式
  • 处理除以零的错误
  • 客户端与服务端之间通过服务器发送事件(SSE)通信
  • 支持表达式中的括号
  • 使用 RPN(逆波兰表示法)计算复杂表达式

先决条件

  • Python 3.7+
  • pip(Python 包管理器)

安装

  1. 克隆仓库
  2. 创建并激活虚拟环境:
    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. 安装依赖项:
    pip install -r requirements.txt
    

使用方法

启动服务端

运行计算器服务端:

python calculator_server.py

服务端默认将在 http://127.0.0.1:5005 上启动。

运行客户端

在另一个终端中运行客户端:

python client.py
可用运算

计算器支持以下运算:

  1. 直接工具语法:

    • add 2 3
    • subtract 5 2
    • multiply 4 3
    • divide 10 2
  2. 复杂表达式:

    • 5+7-2
    • 5+7-2*3
    • (5+7)*2
    • 10/2+3*4
使用示例
» add 2 3
Result: 5

» 5+7-2*3
Result: 6

» (5+7)*2
Result: 24

» divide 10 0
Error: Division by zero.

技术详情

  • 服务端使用 FastMCP 处理 MCP 操作
  • 客户端与服务端之间通过服务器发送事件(SSE)通信
  • 客户端使用调度场算法解析复杂表达式
  • 针对无效表达式和除以零的情况实现了错误处理

依赖项

  • fastapi
  • uvicorn
  • sse-starlette
  • fastmcp>=0.1.0
  • llama-index
  • llama-index-llms-anthropic
  • anthropic
  • python-dotenv
  • requests
  • sseclient-py
  • uv

许可证

本项目采用开源方式发布,并遵循 MIT 许可证。

评论

支持 Markdown

第一次接触 MCP?

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

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