brew/Library/Homebrew/test/cmd/mcp-server_spec.rb
Mike McQuaid f9471f9591
Add brew mcp-server: a MCP server for Homebrew.
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.
2025-06-03 15:22:33 +01:00

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