MCP.so
Sign In
Servers

MCP-Ollama Client

@Nagharjun17

Lightweight MCP client that uses a local Ollama LLM to query multiple MCP servers defined in config.json

Overview

What is MCP-Ollama Client?

MCP-Ollama Client is a command‑line chat client that runs entirely offline with a local LLM via Ollama and connects to any number of Model Context Protocol (MCP) servers declared in a single config.json. It is designed for developers who want to use local function‑calling models together with MCP tools.

How to use MCP-Ollama Client?

Clone the repository, set up a Python ≥ 3.12 virtual environment with uv, install dependencies, pull a local model with ollama pull qwen3:14b, edit the model name and server settings in config.json, then run uv run client.py. At startup the client launches every MCP server, aggregates their tool schemas with server‑name prefixes (e.g. postgres.*, filesystem.*), and presents the merged list to the LLM.

Key features of MCP-Ollama Client

  • Runs entirely offline with a local LLM via Ollama
  • Connects to multiple MCP servers side‑by‑side
  • Collision‑free tool names via server‑name prefixing
  • Everything configured in one config.json file
  • No cloud API keys required

Use cases of MCP-Ollama Client

  • Query a local database with natural language using MCP tools
  • Read or write files on a remote share through a filesystem MCP server
  • Combine data from multiple MCP sources in a single conversation
  • Test and debug MCP server integrations without a cloud LLM

FAQ from MCP-Ollama Client

What is the default model and does it require cloud access?

The default model is qwen3:14b. Any function‑calling model that Ollama exposes will work. No cloud keys are required; everything runs locally.

What are the runtime dependencies?

Python ≥ 3.12, Ollama ≥ 0.8.0, and any MCP servers that support stdio transport.

How does tool naming work when multiple servers are used?

Tools are exposed as <server>.<tool> (for example postgres.list_schemas, filesystem.read_file) so names never clash, even when different servers provide tools with the same name.

Where is data stored and can I add or remove servers without changing code?

Data stays entirely local. Servers are defined in config.json under the mcpServers key; you can add or remove servers by editing that file without touching client.py.

What transport does the client use to communicate with MCP servers?

Each MCP server is started as its own stdio subprocess. No network transport is used between the client and the servers.

Tags

More from AI & Agents