Skip to main content
Glama
straygizmo

MCP LLM Server

by straygizmo

MCP LLM Server

A Model Context Protocol (MCP) server that provides tools to interact with Claude and Gemini CLI tools. This server enables seamless integration between MCP-compatible clients and command-line interfaces for Claude and Gemini LLMs.

Overview

This MCP server acts as a bridge between MCP clients and the Claude and Gemini command-line interfaces. It exposes three main tools that allow you to send prompts to these LLMs and receive responses through the standardized MCP protocol.

Related MCP server: @staticpayload/gemini-mcp

Prerequisites

  • Python 3.10 or higher

  • Claude CLI installed and configured

  • Gemini CLI installed and configured

  • uv package manager

Installation

# Clone the repository
git clone https://github.com/straygizmo/mcp_llm_cli
cd mcp_llm_cli

# Install dependencies using uv
uv sync

Usage

Configuration for MCP Clients

To use this server with an MCP client (like Claude Desktop), add it to your MCP configuration file:

{
  "mcpServers": {
    "llm-server": {
      "command": "uv",
      "args": ["run", "python", "-m", "mcp_llm_server.server"],
      "cwd": "/path/to/mcp_llm_cli"
    }
  }
}

Available Tools

The server provides three tools for interacting with LLMs:

1. claude_prompt

Send a prompt to Claude and receive a response.

Parameters:

  • prompt (string, required): The prompt to send to Claude

Example:

{
  "name": "claude_prompt",
  "arguments": {
    "prompt": "Explain quantum computing in simple terms"
  }
}

2. gemini_prompt

Send a prompt to Gemini and receive a response.

Parameters:

  • prompt (string, required): The prompt to send to Gemini

Example:

{
  "name": "gemini_prompt",
  "arguments": {
    "prompt": "What are the benefits of renewable energy?"
  }
}

3. llm_prompt

Send a prompt to both Claude and Gemini simultaneously and receive both responses.

Parameters:

  • prompt (string, required): The prompt to send to both LLMs

Example:

{
  "name": "llm_prompt",
  "arguments": {
    "prompt": "Compare and contrast machine learning and deep learning"
  }
}

The response will include both Claude's and Gemini's answers in a formatted output.

Architecture

The server is built using the Model Context Protocol (MCP) framework and consists of:

  • Main Server (server.py): Handles MCP protocol communication and tool execution

  • Async subprocess execution: Calls Claude and Gemini CLIs asynchronously

  • Error handling: Gracefully handles missing CLI tools and execution errors

Development

Project Structure

mcp_llm_cli/
├── README.md
├── pyproject.toml
├── uv.lock
└── src/
    └── mcp_llm_server/
        ├── __init__.py
        └── server.py

Running in Development

For development, you can run the server with logging enabled:

uv run -m mcp_llm_server.server

Error Handling

The server handles various error scenarios:

  • Missing CLI tools (claude or gemini-cli not installed)

  • CLI execution errors

  • Invalid tool names

  • Malformed requests

All errors are returned as formatted text responses to maintain compatibility with MCP clients.

License

[Specify your license here]

Contributing

[Add contribution guidelines if applicable]

Related MCP Connectors

Related MCP Servers