llm-mcp
A Ruby gem that exposes Large Language Models (LLMs) via the Model Context Protocol (MCP), enabling seamless integration of AI capabilities into your development workflow.
Documentation
llm-mcp
A Ruby gem that exposes Large Language Models (LLMs) via the Model Context Protocol (MCP), enabling seamless integration of AI capabilities into your development workflow.
Overview
llm-mcp creates an MCP server that provides standardized access to various LLM providers (OpenAI, Google Gemini, and OpenAI-compatible APIs) while supporting advanced features like session management, conversation persistence, and integration with external MCP tools.
Key Features
- ๐ค Multi-Provider Support: Works with OpenAI, Google Gemini, and any OpenAI-compatible API
- ๐ฌ Session Management: Persist conversations across server restarts
- ๐ง MCP Tool Integration: Connect to external MCP servers and use their tools within LLM conversations
- ๐ Comprehensive Logging: JSON-formatted logs for debugging and analysis
- ๐ Extensible Architecture: Easy to add new providers and customize behavior
- ๐ Built on FastMCP: Leverages the fast and efficient MCP server framework
Installation
Add this line to your application's Gemfile:
gem 'llm-mcp'And then execute:
$ bundle installOr install it yourself as:
$ gem install llm-mcpConfiguration
Environment Variables
Set up your API keys based on the provider you want to use:
# For OpenAI
export OPENAI_API_KEY="your-openai-api-key"
# For Google Gemini
export GEMINI_API_KEY="your-gemini-api-key"
# or
export GOOGLE_API_KEY="your-google-api-key"Usage
Basic Usage
Start an MCP server that exposes an LLM:
# Using OpenAI
llm-mcp mcp-serve --provider openai --model gpt-4
# Using Google Gemini
llm-mcp mcp-serve --provider google --model gemini-1.5-flash
# Using a custom OpenAI-compatible API
llm-mcp mcp-serve --provider openai --model llama-3.1-8b --base-url https://api.groq.com/openai/v1Advanced Options
llm-mcp mcp-serve \
--provider openai \
--model gpt-4 \
--verbose \ # Enable verbose logging
--json-log-path logs/llm.json \ # Log to JSON file
--session-id my-project \ # Resume a specific session
--session-path ~/my-sessions \ # Custom session storage location
--append-system-prompt "You are a Ruby expert" \ # Add to system prompt
--skip-model-validation # Skip model name validationConnecting to External MCP Servers
llm-mcp can connect to other MCP servers, allowing the LLM to use their tools:
1. Create an MCP configuration file (e.g., `~/.mcp/config.json`):
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["@modelcontextprotocol/server-filesystem", "/tmp"]
},
"github": {
"command": "mcp-github",
"env": {
"GITHUB_TOKEN": "your-github-token"
}
},
"http-api": {
"url": "https://api.example.com/mcp/sse",
"transport": "sse",
"headers": {
"Authorization": "Bearer your-token"
}
}
}
}2. Start llm-mcp with the configuration:
llm-mcp mcp-serve \
--provider openai \
--model gpt-4 \
--mcp-config ~/.mcp/config.jsonNow the LLM can use tools from the connected MCP servers in its responses!
MCP Tools Exposed
`task`
Send a request to the LLM and get a response.
Parameters:
- `prompt` (required): The message or question for the LLM
- `temperature` (optional): Control randomness (0.0-2.0, default: 0.7)
- `max_tokens` (optional): Maximum response length
Example Request:
{
"method": "tools/call",
"params": {
"name": "task",
"arguments": {
"prompt": "Explain the concept of dependency injection",
"temperature": 0.7,
"max_tokens": 500
}
}
}`reset_session`
Clear the conversation history and start fresh.
Example Request:
{
"method": "tools/call",
"params": {
"name": "reset_session",
"arguments": {}
}
}Session Management
Sessions automatically persist conversations to disk, allowing you to:
- Resume previous conversations
- Maintain context across server restarts
- Track token usage over time
Sessions are stored in `~/.llm-mcp/sessions/` by default, with each session saved as a JSON file.
Session Files
Session files contain:
- Message history (user, assistant, and system messages)
- Timestamps for each interaction
- Token usage statistics
- Session metadata
Logging
Enable JSON logging for comprehensive debugging:
llm-mcp mcp-serve \
--provider openai \
--model gpt-4 \
--json-log-path logs/llm.json \
--verboseLogs include:
- All requests and responses
- Tool calls and their results
- Session operations
- Error messages and stack traces
Integration Examples
Using with Claude Desktop
Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json`):
{
"mcpServers": {
"llm-mcp": {
"command": "llm-mcp",
"args": ["mcp-serve", "--provider", "openai", "--model", "gpt-4"],
"env": {
"OPENAI_API_KEY": "your-api-key"
}
}
}
}Using with mcp-client
require 'mcp-client'
client = MCP::Client.new
client.connect_stdio('llm-mcp', 'mcp-serve', '--provider', 'openai', '--model', 'gpt-4')
# Use the task tool
response = client.call_tool('task', {
prompt: "Write a haiku about Ruby programming",
temperature: 0.9
})
puts response.contentCombining Multiple MCP Servers
Create a powerful AI assistant by combining llm-mcp with other MCP servers:
{
"mcpServers": {
"llm": {
"command": "llm-mcp",
"args": ["mcp-serve", "--provider", "openai", "--model", "gpt-4", "--mcp-config", "mcp-tools.json"]
},
"filesystem": {
"command": "mcp-filesystem",
"args": ["/project"]
},
"git": {
"command": "mcp-git"
}
}
}Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests.
# Install dependencies
bundle install
# Run tests
bundle exec rake test
# Run linter
bundle exec rubocop -A
# Install gem locally
bundle exec rake installContributing
Bug reports and pull requests are welcome on GitHub at https://github.com/parruda/llm-mcp.
License
The gem is available as open source under the terms of the MIT License.
Frequently asked questions
What is llm-mcp?
llm-mcp is A Ruby gem that exposes Large Language Models (LLMs) via the Model Context Protocol (MCP), enabling seamless integration of AI capabilities into your development workflow.
How do I install llm-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is llm-mcp open source?
Yes โ it is hosted on GitHub at https://github.com/parruda/llm-mcp and has 2 stars.
Related MCP tools
A Ruby Implementation of the Model Context Protocol
Open-source email observability for AWS SES
Model Context Protocol Servers
Pre-indexed code knowledge graph, auto syncs on code changes, for Claude Code, Codex, Gemini, Cursor, OpenCode, AntiGravity, Kiro, CoPilot, and Hermes Agent โ fewer tokens, fewer tool calls, 100% local
an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM
The easy-to-use open source Business Intelligence and Embedded Analytics tool that lets everyone work with data :bar_chart:
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP