MCP Host

by intelligent-systems-lab

MCP Client 2 stars
  • other

About

What is MCP Host?

MCP Host is a Python implementation of a Model Context Protocol (MCP) host that connects to Ollama LLM backends and MCP servers, enabling LLMs to use tools from connected servers. It runs as a CLI application on any system with Python and Ollama.

How to use MCP Host?

Install Python and ensure Ollama is running locally or remotely. Create a JSON configuration file (default config.json) defining MCP servers and the Ollama provider, then run python mcp_host.py. During a session, type queries and use special commands like tools or exit.

Key features of MCP Host

- Connects to any number of MCP-compatible servers
- Supports both stdio and SSE transport types
- Seamless integration with local Ollama models
- Enables LLMs to execute tools from connected servers
- Simple CLI with configuration via JSON file
- Debug mode and message‑window control

Use cases of MCP Host

- Extend a local Ollama LLM with live weather data from a weather server
- Allow an LLM to interact with file systems or databases through MCP servers
- Build a multi‑tool assistant that queries multiple remote APIs in one session
- Prototype MCP server integrations without a full‑scale application

FAQ from MCP Host

What LLM providers does MCP Host support?

Currently only Ollama is supported as the LLM provider.

Can I connect to MCP servers over the network?

Yes, MCP Host supports SSE (Server‑Sent Events) transport for remote servers, configured with a URL.

What transport types are supported for MCP servers?

MCP Host supports both stdio (local subprocess) and sse (HTTP‑based) transports.

Is MCP Host free to use?

Yes, it is an open‑source Python project with no licensing fees. You only need to run your own Ollama instance.

How do I see which tools are available from connected servers?

During a chat session, type the special command tools to list all available tools. Use servers to list connected servers.

Details

Author
intelligent-systems-lab
GitHub stars
2
Category
other
Repository
intelligent-systems-lab/mcp_client_ollama

MCP Host

A Python implementation of a Model Context Protocol (MCP) host that connects to Ollama LLM backends and MCP servers.

Features

- Multiple Server Support: Connect to any number of MCP-compatible servers
- Multiple Transport Types: Supports both stdio and SSE transports
- Ollama Integration: Seamless connection to local Ollama models
- Tool Execution: Enable LLMs to use tools from connected servers
- Simple CLI: Easy-to-use command-line interface
- JSON Configuration: Simple config file for server and LLM setup

Requirements

- Ollama running locally or on a remote server

Run the MCP Host

   python mcp_host.py
   

Run the weather server(SSE)

   python weather.py
   

Configuration

The MCP Host uses a JSON configuration file to define:

1. MCP Servers: The servers that provide tools and resources
2. LLM Provider: Configuration for the Ollama backend

Server Configuration

Each server needs:

- type: The transport mechanism (stdio or sse)
- For stdio servers:
- command: The command to run
- args: Command-line arguments (optional)
- env: Environment variables (optional)
- For SSE servers:
- url: The SSE endpoint URL

LLM Provider Configuration

- type: The provider type (currently only ollama is supported)
- model: The model name to use (e.g., llama3, mistral, etc.)
- url: The Ollama API URL (default: http://localhost:11434)
- parameters: Additional parameters for Ollama (temperature, top_p, etc.)

Command-Line Options

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

Usage Examples

Basic Usage

python mcp_host.py

Debug Mode

python mcp_host.py --debug

Special Commands

During a chat session, you can use the following special commands:

- tools: List all available tools from connected servers
- servers: List all connected MCP servers
- exit or quit: End the session

How It Works

1. When you start MCP Host, it connects to all configured MCP servers
2. Each server provides a list of available tools
3. When you enter a query, it's sent to the Ollama LLM
4. If the LLM decides to use tools, MCP Host executes those tool calls
5. The results are sent back to the LLM
6. The LLM provides a final response incorporating the tool results