Experimental Ruby implementation of Model Context Protocol (MCP) - A starter server framework for trying out LLM integrations
{
"mcpServers": {
"mcp-ruby-skeleton": {
"command": "<see-readme>",
"args": []
}
}
}No install config available. Check the server's README for setup instructions.
Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Experimental Ruby implementation of Model Context Protocol (MCP) - A starter server framework for trying out LLM integrations
Is it safe?
No package registry to scan.
No authentication — any process on your machine can connect.
License not specified.
Is it maintained?
Last commit 384 days ago. 4 stars.
Will it work with my client?
Transport: stdio. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
No automated test available for this server. Check the GitHub README for setup instructions.
No known vulnerabilities.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationHave you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Dynamic problem-solving through sequential thought chains
A Model Context Protocol server for searching and analyzing arXiv papers
An open-source AI agent that brings the power of Gemini directly into your terminal.
The official Python SDK for Model Context Protocol servers and clients
MCP Security Weekly
Get CVE alerts and security updates for Mcp Ruby Skeleton and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Acknowledgment: This implementation was inspired by the article Building a Model Context Protocol Server with TypeScript by Azuki Azusa.
This project is a Ruby implementation of a Model Context Protocol (MCP) server skeleton. It provides an interface that allows Large Language Models (LLMs) like Claude to call tools. The current implementation provides a tool that generates random numbers.
get-random-number: Generates a random integer between 1 and a specified maximum value (defaults to 100)This server consists of the following components:
MCP::Server: Main server implementation that handles MCP protocol messages
MCP::Transport::Stdio: Standard I/O transport layer for communication
MCP::Tool: Tool definition and execution handler
RandomNumberServer: Server implementation that registers and manages tools
The server follows the MCP initialization protocol:
initialize request with protocol versioninitialized notificationThe server implements the following MCP APIs:
initialize: Server initialization and protocol version negotiationtools/list: Lists available tools and their schemastools/call: Executes a tool with provided argumentsClone the repository:
git clone <repository-url>
cd mcp-ruby-skeleton
Make sure the server script is executable:
chmod +x bin/run_server.rb
Run the server directly:
./bin/run_server.rb
Add the following to your Claude Desktop configuration at:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"random-number": {
"command": "ruby",
"args": [
"/Users/bash/src/mcp-ruby-skeleton/bin/run_server.rb"
]
}
}
}
Replace the path with the absolute path to your run_server.rb file on your system.
After configuring, restart Claude Desktop and try a prompt like "Generate a random number between 1 and 50."
Claude app logs related to MCP servers are available at:
~/Library/Logs/Claude/mcp*.log%APPDATA%\Claude\logs\mcp*.logTo view the logs in real-time:
# On macOS
tail -f ~/Library/Logs/Claude/mcp*.log
# On Windows
type "%APPDATA%\Claude\logs\mcp*.log"
The server itself logs to standard error output (STDERR), and the log level is set during the initialization of the RandomNumberServer class (currently at DEBUG level).
Server disconnection
If you see a message like "MCP server disconnected", check:
Tool not showing up
If the random number tool doesn't appear in Claude: