MCP客户端
此存储库包含一个异步 MCP客户端 它连接到MCP兼容服务器(Python),并与 Llama模型 以处理用户查询。\ 它自动检测并使用服务器通过MCP提供的工具,允许LLM动态调用它们。
特性
- 连接到任何符合MCP标准的服务器(
.py) - 动态列出并使用服务器可用工具
- 支持工具执行的函数调用
- 保持交互式聊天循环
- 将所有交互记录到
logs/llm_output.log
如何使用
如果你是从虚拟机上读到的,请跳到第3条
1.准备服务器
您需要一个兼容MCP的服务器。它将在后台运行。 看 mcp服务器快照 了解更多信息。
2.连接到DISIT实验室LLM。
在目录中 llama4 创建一个名为的新文件 user_credentials.json.
客户端使用它对Snap4City进行身份验证并获取访问令牌。您必须使用Snap4City帐户,该帐户已被授予必要的API规则和使用限制。
{
"username": "",
"password": "
"
}3.运行客户端(仅从VM运行)
chat这是的别名 ./chat.sh 命令。
如果成功,您将看到令牌处理和如下输出:
Connected to server with:
TOOLS: [...]
RESOURCES: [...]
PROMPTS: [...]3.1运行客户端(外部用户)
如果服务器文件夹和客户端文件夹位于同一级别:
cd mcp-client-snap
python client.py ../mcp-server-snap/server.py调整 server.py 指向目录结构的路径。
\[!提示\] 如果您收到服务器未运行的错误: 1. 打开一个新终端 1. 转到服务器目录并使用以下命令打开它: ``bash python server.py `` 3. 返回原始终端并再次运行上述命令。如果成功,您将看到令牌处理和如下输出:
Connected to server with:
TOOLS: [...]
RESOURCES: [...]
PROMPTS: [...]4.开始聊天
连接后,您可以交互式地输入查询:
MCP Client Started!
Type your queries or 'quit' to exit.
Query: list all the available tpl agencies and their websites. 如果模型决定使用工具,您将在日志和终端输出中看到它。 否则,模型将直接回答。
日志记录
所有查询、原始模型响应和工具调用都保存在:
log/llm_output.log示例摘录:
2025-10-02 09:23:17 USER QUERY: calculate the area of a circle with radius 5
2025-10-02 09:23:19 RAW MODEL RESPONSE: {'role': 'assistant', 'content': None, 'function_call': {'name': 'tool_name', 'arguments': {...}}}
2025-10-02 09:23:19 FUNCTION CALLED: math_tool
2025-10-02 09:23:19 ARGS: {"operation": "area_circle", "radius": 5}
2025-10-02 09:23:20 FOLLOWUP RESPONSE: The area is approximately 78.54.清理
退出时(键入 quit),客户端会自动关闭所有异步资源。
️ 故障排除
- **错误:“用法:python客户端.py\
”** → 您没有传递MCP服务器文件的路径。办理登机 chat.sh 如果路径有效。
- 虚拟环境问题
→ 确保正确的Python解释器处于活动状态。
- 与DISIT资源的连接
→ 确保凭据有效并正确传递,如中所示 How to use: 2.
备注
- 使用的模型是:
llama-4-inference- 工具调用遵循OpenAI风格
function_call格式,因此客户端应该使用支持它的任何LLM。
