Commit 653a65c

mo khan <mo@mokhan.ca>
2026-01-27 22:06:48
chore: log MCP responses
1 parent 998514d
lib/elelem/mcp.rb
@@ -67,7 +67,13 @@ module Elelem
 
       def call(name, args)
         result = request("tools/call", { name: name, arguments: args })
-        { content: result["content"]&.map { |c| c["text"] }&.join("\n") }
+        logger.info({ tool: name, args: args, result: result }.to_json)
+        content = result["content"]&.map { |c| c["text"] }&.join("\n")
+        result["isError"] ? { error: content } : { content: content }
+      end
+
+      def logger
+        @logger ||= Logger.new("mcp.log")
       end
 
       private
lib/elelem.rb
@@ -7,6 +7,7 @@ require "erb"
 require "fileutils"
 require "json"
 require "json_schemer"
+require "logger"
 require "net/hippie"
 require "open3"
 require "optparse"
elelem.gemspec
@@ -72,6 +72,7 @@ Gem::Specification.new do |spec|
   spec.add_dependency "fileutils", "~> 1.0"
   spec.add_dependency "json", "~> 2.0"
   spec.add_dependency "json_schemer", "~> 2.0"
+  spec.add_dependency "logger", "~> 1.0"
   spec.add_dependency "net-hippie", "~> 1.0"
   spec.add_dependency "open3", "~> 0.1"
   spec.add_dependency "optparse", "~> 0.1"
Gemfile.lock
@@ -9,6 +9,7 @@ PATH
       fileutils (~> 1.0)
       json (~> 2.0)
       json_schemer (~> 2.0)
+      logger (~> 1.0)
       net-hippie (~> 1.0)
       open3 (~> 0.1)
       optparse (~> 0.1)