Module: GroqRuby::MCP

Defined in:
lib/groq_ruby/mcp.rb,
lib/groq_ruby/mcp/tool.rb,
lib/groq_ruby/mcp/bridge.rb,
lib/groq_ruby/mcp/client.rb,
lib/groq_ruby/mcp/prompt.rb,
lib/groq_ruby/mcp/json_rpc.rb,
lib/groq_ruby/mcp/resource.rb,
lib/groq_ruby/mcp/transport.rb,
lib/groq_ruby/mcp/errors/error.rb,
lib/groq_ruby/mcp/server_config.rb,
lib/groq_ruby/mcp/transports/stdio.rb,
lib/groq_ruby/mcp/errors/timeout_error.rb,
lib/groq_ruby/mcp/claude_desktop_config.rb,
lib/groq_ruby/mcp/errors/json_rpc_error.rb,
lib/groq_ruby/mcp/errors/protocol_error.rb,
lib/groq_ruby/mcp/errors/transport_error.rb,
lib/groq_ruby/mcp/errors/unknown_tool_error.rb

Overview

Model Context Protocol (MCP) client. Lets a Groq agent talk to MCP servers — local processes (stdio transport) that expose tools and resources via JSON-RPC 2.0.

Two ways in:

  1. Direct Client — connect to one server, call tools yourself:

    config = GroqRuby::MCP::ServerConfig.new(name: "fs", command: "...", args: [...])
    client = GroqRuby::MCP::Client.connect(config)
    tools  = client.tools_list
    result = client.tools_call(name: "read_file", arguments: {path: "/foo"})
    client.stop
    
  2. Bridge — wire many servers into Groq’s ‘chat.completions(tools:)` automatically and route tool_calls back to the owning server.

    bridge = GroqRuby::MCP::Bridge.new([fs_config, weather_config])
    groq.chat.completions.create(..., tools: bridge.tools)
    # then bridge.call(tool_call.function.name, JSON.parse(tool_call.function.arguments))
    

Defined Under Namespace

Modules: ClaudeDesktopConfig, JsonRpc, Transport, Transports Classes: Bridge, Client, Error, JsonRpcError, Prompt, ProtocolError, Resource, ServerConfig, TimeoutError, Tool, TransportError, UnknownToolError

Constant Summary collapse

PROTOCOL_VERSION =
"2024-11-05".freeze