mcpField
M
MCP Host

MCP Host

github.com/intelligent-systems-lab编码 Agent383 周前更新

关于 MCP Host

MCP Host 是供用户将 Ollama 模型与一个或多个 MCP 服务配合使用的 Python 客户端。它支持 stdio 和 SSE 连接,并允许模型调用已连接服务提供的工具。

主要功能

  1. 01连接多个 MCP 服务
  2. 02支持 stdio 和 SSE 传输
  3. 03使用本地或远程 Ollama 后端
  4. 04通过大模型执行服务工具
  5. 05用 JSON 配置服务和模型
  6. 06列出已连接服务及其工具

适用场景

  1. 01在 Ollama 聊天会话中调用服务工具
  2. 02通过 stdio 或 SSE 连接服务
  3. 03查看已连接的服务及其工具

MCP 相关

通过 stdio 或 SSE 连接配置的 MCP 服务,并将其工具提供给 Ollama 模型调用。

详细介绍

MCP 主机

一个 Python 实现的 Model Context Protocol (MCP) 主机,可连接到 Ollama 大模型后端和 MCP 服务。

功能

  • 多服务支持:连接到任意数量的 MCP 兼容服务
  • 多传输类型:支持 stdio 和 SSE 传输
  • Ollama 集成:无缝连接到本地 Ollama 模型
  • 工具执行:启用大模型使用来自已连接服务的工具
  • 简单 CLI:易于使用的命令行界面
  • JSON 配置:用于服务和大模型设置的简单配置文件

需求

  • Ollama 在本地或远程服务器上运行

运行 MCP 主机

python mcp_host.py

运行天气服务器 (SSE)

python weather.py

配置

MCP 主机使用 JSON 配置文件来定义:

  1. MCP 服务:提供工具和资源的服务
  2. 大模型提供商:Ollama 后端的配置
服务配置

每个服务需要:

  • type:传输机制 (stdio 或 sse)
  • 对于 stdio 服务:
    • command:要运行的命令
    • args:命令行参数(可选)
    • env:环境变量(可选)
  • 对于 SSE 服务:
    • url:SSE 端点 URL
大模型提供商配置
  • type:提供商类型(目前仅支持 ollama)
  • model:要使用的模型名称(例如 llama3、mistral 等)
  • url:Ollama API URL(默认:http://localhost:11434)
  • parameters:Ollama 的其他参数(temperature、top_p 等)

命令行选项

usage: mcp_host.py [-h] [--config CONFIG] [--model MODEL]
                  [--message-window MESSAGE_WINDOW]
                  [--provider {ollama}] [--ollama-url OLLAMA_URL]
                  [--ollama-model OLLAMA_MODEL] [--debug] [--save-config]

MCP Host for LLM tool interactions

options:
  -h, --help            show this help message and exit
  --config CONFIG       Path to config file (default: config.json in current directory)
  --model MODEL, -m MODEL
                        Override model specified in config
  --message-window MESSAGE_WINDOW
                        Number of messages to keep in context

Provider Selection:
  --provider {ollama}   Select LLM provider

Ollama Options:
  --ollama-url OLLAMA_URL
                        URL for Ollama API (e.g., http://localhost:11434)
  --ollama-model OLLAMA_MODEL
                        Ollama model to use (e.g., llama3, mistral, etc.)

Other options:
  --debug               Enable debug logging
  --save-config         Save provider options to config file

使用示例

基本用法
python mcp_host.py
调试模式
python mcp_host.py --debug

特殊命令

在聊天会话期间,可以使用以下特殊命令:

  • tools:列出来自已连接服务的所有可用工具
  • servers:列出所有已连接的 MCP 服务
  • exit 或 quit:结束会话

工作原理

  1. 启动 MCP 主机时,它连接到所有已配置的 MCP 服务
  2. 每个服务提供可用工具的列表
  3. 输入查询时,查询被发送到 Ollama 大模型
  4. 如果大模型决定使用工具,MCP 主机执行这些工具调用
  5. 结果被发送回大模型
  6. 大模型提供包含工具结果的最终响应

评论

支持 Markdown

第一次接触 MCP?

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

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