mcpField
M
MCP-Ollama Client

MCP-Ollama Client

本地服务
github.com/Nagharjun17AI 与智能体865 周前更新

关于 MCP-Ollama Client

MCP-Ollama Client 是使用 Ollama 本地模型的命令行聊天客户端,面向希望离线调用多个 MCP 服务的用户。它从单一配置启动服务并合并工具,使用前缀避免工具名称冲突。

主要功能

  1. 01通过 Ollama 使用本地模型
  2. 02从配置启动多个 MCP 服务
  3. 03合并并前缀化工具名称
  4. 04离线自然语言交互

适用场景

  1. 01离线向本地模型提出问题
  2. 02在一次会话中调用多个服务
  3. 03从文件或数据库服务器获取信息

MCP 相关

客户端根据 config.json 启动支持 stdio 的 MCP 服务,读取并合并其工具,再由模型决定调用哪个服务。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

MCP-Ollama 客户端

小型命令行聊天客户端:

  1. 通过 Ollama 使用本地 LLM,完全离线运行
  2. 可连接任意数量的模型上下文协议(MCP)服务,所有服务都在一个 config.json 中声明

客户端启动时会启动所有服务,获取它们的工具架构,为工具名称添加前缀(postgres.*、filesystem.* 等),并将合并后的列表提供给模型。 LLM 会根据每个用户请求决定调用哪个服务。


功能

功能说明
本地 LLM 优先默认模型为 qwen3:14b,但 Ollama 提供的任何支持函数调用的模型都可使用。无需云端密钥。
开箱即用的多服务支持Postgres、文件系统或你自己的 MCP 服务都可同时运行;所有服务都在 config.json 中定义。
无冲突的工具名称工具以 <server>.<tool> 的形式提供,因此名称永远不会冲突。

要求

组件已测试版本
Python≥ 3.12
Ollama≥ 0.8.0
MCP 服务任何支持 stdio 传输的服务

快速开始

# 1. clone
git clone https://github.com/Nagharjun17/MCP-Ollama-Client.git
cd mcp-ollama-client

# 2. set up environment
uv venv
source .venv/bin/activate
uv pip sync pyproject.toml         # or: uv pip install -r uv.lock

# 3. pull a local model
ollama pull qwen3:14b

# 4. edit Model Name, DATABASE_URI etc. in config.json and download required MCP Servers. In my case:
uv pip install postgres-mcp

# 5. run
uv run client.py

启动日志示例:

🔌 Starting MCP server: postgres
🔌 Starting MCP server: filesystem
🛠️  Aggregated tools: ['postgres.list_schemas', 'filesystem.read_file', ...]
>>>

MCP 客户端启动

输入自然语言查询;模型会决定何时以及如何调用已提供的工具。


config.json 格式

{
  "llm": {
    "model": "qwen3:14b",
    "temperature": 0.7,
    "max_tokens": 2048
  },

  "mcpServers": {
    "postgres": {
      "command": "postgres-mcp",
      "args": ["--access-mode=restricted"],
      "env": {
        "DATABASE_URI": "postgresql://user:pass@localhost:5432/db"
      }
    },

    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/mnt/smbshare/"
      ]
    }
  }
}
  • mcpServers 下的键会成为前缀(postgres.*、filesystem.*)。*

每个服务都会作为独立的 stdio 子进程启动。

添加或移除服务,无需修改 client.py。

所有内容都保留在本地,所有配置都集中在一个文件中。

评论

支持 Markdown

第一次接触 MCP?

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

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