A Ruby client for the Model Context Protocol (MCP), enabling integration with external tools and services via a standardized protocol.
Ruby MCP Client MCP server exists for a simple reason — assistants are far more useful when they can act on Ruby MCP Client directly instead of describing what you should do. A Ruby client for the Model Context Protocol (MCP), enabling integration with external tools and services via a standardized protocol.
MCP enables AI assistants to discover and invoke external tools via different transport mechanisms:
Installation goes through your MCP client rather than a global install: point it at @modelcontextprotocol/server-filesystem on npm and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.
Once Ruby MCP Client is connected, these are the calls the assistant has available:
ruby_anthropic_mcp.rb — ANTHROPIC_API_KEY (+ npx)openai_ruby_mcp.rb — OPENAI_API_KEY (+ npx)gemini_ai_mcp.rb — a Vertex service-account JSON at VERTEX_CREDENTIALS_FILE (default examples/google-credentials.json, + npx)Roots — The Roots tool exposed by this serverLogging — The Logging tool exposed by this serverRetries — The retries: option controls automatic retry with exponential backoff. Only failures where the request most likely did not complete at the serverOpenAI — client = OpenAI::Client.new(api_key: ENV['OPENAI_API_KEY']) response = client.chat.completions.create( model: 'gpt-4', messages: [{ role: 'user'Anthropic — The Anthropic tool exposed by this serverRubyLLM — RubyLLM.configure { |c| c.openai_api_key = ENV['OPENAI_API_KEY'] } mcp = MCPClient.connect('http://localhost:8931/mcp') # Playwright MCPPrerequisites — Run bundle install first. The script preflight-checks the following and prints a warning (it does not abort) for anything missing; affectedUsage — The Usage tool exposed by this serverYou will need 5 environment variables: OPENAI_API_KEY, ANTHROPIC_API_KEY, ZAPIER_MCP_TOKEN, ZAPIER_MCP_URL, MCP_SERVER_URL. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Run bundle install first. The script preflight-checks the following and prints a warning (it does not abort) for anything missing; affected examples are then skipped or fail: - ruby, bundle, curl, lsof - on PATH - python3 (or $PYTHON) plus a separate python binary - on PATH - Python packages flask, fastmcp, mcp - importable by $PYTHON - npx (Node) - needed by the
Among the AI and media services options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Ruby MCP Client's toolset — ruby_anthropic_mcp.rb, openai_ruby_mcp.rb, gemini_ai_mcp.rb and 8 more — is a fair guide to whether it matches your workflow. It is maintained by simonx1; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| ruby_anthropic_mcp.rb | ANTHROPIC_API_KEY (+ npx) |
| openai_ruby_mcp.rb | OPENAI_API_KEY (+ npx) |
| gemini_ai_mcp.rb | a Vertex service-account JSON at VERTEX_CREDENTIALS_FILE (default examples/google-credentials.json, + npx) |
| Roots | The Roots tool exposed by this server. |
| Logging | The Logging tool exposed by this server. |
| Retries | The retries: option controls automatic retry with exponential backoff. Only failures where the request most likely did **not** complete at the server are retried: transport/network errors and HTTP **5xx** responses. Appl |
| OpenAI | client = OpenAI::Client.new(api_key: ENV['OPENAI_API_KEY']) response = client.chat.completions.create( model: 'gpt-4', messages: [{ role: 'user', content: 'List files' }], tools: tools ) |
| Anthropic | The Anthropic tool exposed by this server. |
| RubyLLM | RubyLLM.configure { |c| c.openai_api_key = ENV['OPENAI_API_KEY'] } mcp = MCPClient.connect('http://localhost:8931/mcp') # Playwright MCP |
| Prerequisites | Run bundle install first. The script preflight-checks the following and prints a warning (it does **not** abort) for anything missing; affected examples are then skipped or fail: |
| Usage | The Usage tool exposed by this server. |
### Server Definition JSON
```json
{
"mcpServers": {
"filesystem": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home"]
},
"api": {
"type": "streamable_http",
"url": "https://api.example.com/mcp",
"headers": { "Authorization": "Bearer TOKEN" }
}
}
}Configuration as documented by the project. Restart the client after saving.
Run bundle install first. The script preflight-checks the following and prints a warning (it does not abort) for anything missing; affected examples are then skipped or fail: - ruby, bundle, curl, lsof - on PATH - python3 (or $PYTHON) plus a separate python binary - on PATH - Python packages flask, fastmcp, mcp - importable by $PYTHON - npx (Node) - needed by the
| Variable | Description | Required |
|---|---|---|
| OPENAI_API_KEY | Credential the server authenticates with. | Yes |
| ANTHROPIC_API_KEY | Credential the server authenticates with. | Yes |
| ZAPIER_MCP_TOKEN | Credential the server authenticates with. | Yes |
| ZAPIER_MCP_URL | Endpoint or connection string the server talks to. | Yes |
| MCP_SERVER_URL | Endpoint or connection string the server talks to. | Yes |
Build a programmable telecommunications stack for connecting telephony services with the Internet via a cloud-based utility.
Search built for AI, not humans — semantic web search that returns model-ready content, plus code context.
Answers, not links — delegate questions to Perplexity's search-grounded models and get cited responses back.
Give your assistant a voice — text-to-speech, voice cloning and audio tools from the ElevenLabs API.
Give your assistant a real code sandbox — isolated cloud VMs for actually running the code it writes.
The ML hub in your context window — search models, datasets, papers and run Spaces from the official server.