mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00

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
|