mcp系统命令与数据检索工具
通过大型语言模型(LLM)解释用户意图,促进执行系统命令和使用Brave Search API检索网络数据。
服务介绍
基于 MCP 的客户端-服务器应用程序用于命令执行和 Brave 搜索
概述
该项目使用 MCP(模型上下文协议)实现了客户端-服务器架构,以处理用户提示,使用大型语言模型 (LLM) 确定其意图,并将其路由到适当的服务进行执行。系统由两个主要组件组成:
- 客户端: 处理用户输入,将其发送给 LLM,并根据 LLM 的决定将请求转发到相应的服务器。
- 服务器: 根据 LLM 的 JSON 响应中指定的工具处理请求。它要么执行系统命令,要么使用 Brave 搜索 API 获取网络数据。
LLM 确定用户请求是否需要命令执行或网络搜索。如果提示不明确,LLM 会先提出后续问题,然后生成一个结构化的JSON 响应,指定工具名称(command_execution 或 fetch_web_data)及其所需参数。
流程图
工作原理
- 用户输入: 用户在 CLI 中输入提示。
- 客户端处理: 客户端将提示转发给 LLM。
- LLM 决策:
- 如果意图不明确,LLM 会提出后续问题。
- 它生成一个 JSON 响应,指定工具名称及其所需参数。
- 客户端路由:
- 如果工具是
command_execution:- 请求被发送到命令服务器。
- 命令服务器使用 Python 的
subprocess模块执行命令。 - 返回成功或失败响应。
- 如果工具是
fetch_web_data:- 请求被发送到获取网络数据服务器。
- 服务器查询Brave 搜索 API 以获取相关结果。
- 搜索结果返回给客户端。
- 如果工具是
- 客户端响应: 客户端通过 CLI 将最终响应发送回用户。
先决条件
- Python 3.x
- pip(Python 包管理器)
- 虚拟环境设置(可选,但推荐)
- 安装 UV/UVX: UV 安装指南
- Brave 搜索 API: Brave 搜索 API 密钥
- 以下任意一种 LLM:
安装
1. 克隆仓库
git clone -https://github.com/mjunaid46/mcp
cd mcp
2. 创建并激活虚拟环境
# Create a virtual environment
uv venv
# Activate virtual environment
# On Unix or MacOS:
source .venv/bin/activate
# On Windows:
.venv\Scripts\activate
3. 安装依赖项
pip install -r requirements.txt
python -m ensurepip
4. 配置 LLM 模型
使用 Ollama 模型
-
按照 Ollama 安装指南 中的说明安装 Ollama CLI 工具。
-
然后,检查 Ollama:
ollama list -
在客户端命令中指定模型(llama3 或 llama2):
uv run client/client.py server/command_server.py server/web_server.py ollama llama3
使用 Groq 模型
-
创建一个
.env文件来存储 Groq 的 API 密钥:touch .env -
将你的 Groq API 密钥添加到
.env文件中:GROQ_API_KEY=<your_groq_api_key_here>
5. 配置 Brave 搜索 API
将你的 Brave API 密钥添加到 .env 文件中:
BRAVE_SEARCH_API_KEY=<your_brave_search_api_key_here>
运行
- 使用 Ollama 模型
uv run client/client.py server/command_server.py server/web_server.py ollama llama3
- 使用 Groq 模型
uv run client/client.py server/command_server.py server/web_server.py groq
测试
向客户端提供查询(例如,touch test.txt,创建名为test的文本文件,rm test.txt 文件等)
# Try the below prompts one by one to test.
What is the capital of Pakistan.
What is MCP?
Create a file in my present working directory
🚀 Docker 项目设置指南
📌 运行代码的步骤
1️⃣ 克隆 Git 仓库
git clone https://github.com/mjunaid46/mcp/
cd mcp
2️⃣ 编辑模型选择配置
修改 config.ini 文件以指定模型类型和名称:
[settings]
model_type = ollama # Change to "groq" if using Groq
model_name = llama3 # Update model name if needed
3️⃣ 构建 Docker 容器
docker-compose build
4️⃣ 运行模型客户端
docker-compose run pull-model-client