MCP代理工具

一个基于MCP协议的AI代理工具,能够进行文本处理和数学计算,并通过中间件和工具过滤实现安全可靠的外部工具交互。

  • by SadiaAwan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 SadiaAwan/AI-MCP-DEMO

使用说明

入门指南

先决条件

  • Python 3.13

设置

  1. 克隆项目
  2. 创建虚拟环境并安装依赖项:
python3.13 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

运行示例

确保虚拟环境已激活并从项目根目录运行:


python -m calculator_mcp.calculator_mcp2

🤖 带中间件和工具过滤的MCP代理

该项目通过实际的代理示例演示了LangChain中的各种用例和功能。

📌 项目描述

该项目演示了如何使用MCP(模型上下文协议)构建AI代理,其中代理可以与通过MCP服务器公开的外部工具进行交互。

该系统通过以下方式解决了一个实际问题:

  • 自动化文本处理
  • 进行数学计算
  • 通过MCP实现结构化工具的使用

🧱 特性

✅ MCP 服务器

MCP服务器提供5个工具:

  • count_words
  • count_characters
  • to_uppercase
  • add_numbers
  • multiply_numbers

所有工具使用:

  • Annotated
  • Field

这确保了清晰的类型定义和结构化的输入处理。


✅ 代理

代理人:

  • 使用LangChain构建
  • 连接到MCP服务器
  • 与工具动态交互

✅ 工具筛选

并非所有工具都暴露在试剂中。

例子:

allowed_tool_names = [
    "count_words",
    "add_numbers",
    "to_uppercase"
]

这确保了更好的控制、安全性和相关性。


✅ 中间件(包装器)

中间件的实现是为了:

1.修改输出

10 → "Result is: 10"
hello → "Processed text: HELLO"

2.处理无效输入

代理人可以发送:

"7+3"

中间件将其转换为:

{ "a": 7, "b": 3 }

这确保了与MCP工具模式的兼容性。


🔄 流程图

flowchart TD
A[User] --> B[Agent - LangChain]
B --> C[Tool Filtering]
C --> D[Middleware Wrapper]
D --> E[MCP Client]
E --> F[MCP Server]
F --> G[Tool Execution]
G --> H[Middleware Output Processing]
H --> B
B --> I[Response to User]

入门指南

先决条件

  • Python 3.13
  • Ollama服务器,可访问Llama型号

⚙️ 安装设置

1.克隆repo项目

克隆存储库

git clone <your-repo-url>
cd nackademin-langchain-demo2

2. Create a virtual environment and install dependencies:
```bash
python3.13 -m venv .venv
source .venv/Scripts/activate           # Windows
pip install -r requirements.txt         
  1. 创建一个 .env 使用您的配置文件:
OLLAMA_BASE_URL=http://nackademin.icedc.se
OLLAMA_BEARER_TOKEN=your-bearer-token-here

▶️运行项目

确保虚拟环境已激活并从项目根目录运行:

source .venv/bin/activate

启动MCP服务器

python -m calculator_mcp.calculator_mcp2

启动代理

python -m examples.tool_lecture._mcp.agent3

💬 示例用法

输入:

What is 7 + 3?

输出:

Result is: 10

输入:

Convert this to uppercase: hello world

输出:

Processed text: HELLO WORLD

🧠 反思

该项目展示了:

  • 人工智能代理如何通过MCP与外部系统集成
  • 中间件如何控制输入和输出
  • 工具过滤如何提高可靠性和安全性

🚀 未来改进

  • 支持更多的数学运算
  • 多服务器MCP设置
  • 更高级的自然语言解析
  • 用于交互的用户界面

👩‍💻 作者

学生项目-人工智能和MLOps