 f9471f9591
			
		
	
	
		f9471f9591
		
			
		
	
	
	
	
		
			
			Add a new `brew mcp-server` command for a Model Context Protocol (MCP) server for Homebrew. This integrates with AI/LLM tools like Claude, Claude Code and Cursor. It currently supports the calls needed/used by the MCP Inspector and Cursor (where I've tested it). It provides as `tools` the subcommands output by `brew help` but should be fairly straightforward to add more in future. It is implemented in a slightly strange way (a standalone Ruby command called from a shell command) as MCP servers need a faster startup time than a normal Homebrew Ruby command allows and fail if they don't get it. There are a few Ruby libraries available but, given how relatively simplistic the implementation is, it didn't feel worthwhile to use and vendor them.
		
			
				
	
	
		
			14 lines
		
	
	
		
			506 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			14 lines
		
	
	
		
			506 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| RSpec.describe "brew mcp-server", type: :system do
 | |
|   it "starts the MCP server", :integration_test do
 | |
|     # This is the easiest way to handle a newline here.
 | |
|     # rubocop:disable Style/StringConcatenation
 | |
|     expect { brew_sh "mcp-server", "--ping" }
 | |
|       .to output("==> Started Homebrew MCP server...\n").to_stderr
 | |
|       .and output('{"jsonrpc":"2.0","id":1,"result":{}}' + "\n").to_stdout
 | |
|       .and be_a_success
 | |
|     # rubocop:enable Style/StringConcatenation
 | |
|   end
 | |
| end
 |