Skip to content

Conversation

@jonathansampson
Copy link
Contributor

@jonathansampson jonathansampson commented Jul 17, 2025

I have verified that task build succeeds (with a small change for Windows).

The task catalog command also passes, however it does show an incorrect summary of tools, presumably until http://desktop.docker.com/mcp/catalog/v2/tools/brave.json is updated—it is unclear to me when/how this resource gets updated.

@jonathansampson jonathansampson requested a review from a team as a code owner July 17, 2025 21:32
@mihaiplesa
Copy link

@ipedrazas could we get your review on this one please?

Copy link

@hspencer77 hspencer77 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔥

@ipedrazas
Copy link
Contributor

Hey, thanks for this contribution. One small issue: if you try to build and run the tools by running this command:

task build -- --tools brave

You will see that the docker image is built correctly, but the tools cannot be listed (probably because it needs the correct configuration set).

We only push to Hub images that list tools. Is there any chance that you can make the listing tools not require a valid connection?

@jonathansampson
Copy link
Contributor Author

Thank you, @ipedrazas. I will take a look at that change ASAP and follow up with a commit.

@jonathansampson jonathansampson force-pushed the sampson-update-brave-search branch from ed4384a to 57eff1d Compare July 21, 2025 16:56
Docker's mcp-registry/internal/mcp/client.go file pulls values from the env.example key when standing up the server, prior to requesting the tool list. The mcp-registry expects stdio to be the transport whereon tools are listed, but the "http" example in server.yaml causes the MCP Server to launch with an HTTP Transport, thus breaking the flow.
@jonathansampson
Copy link
Contributor Author

@ipedrazas The fix appears to simple; just needed to change the env.BRAVE_MCP_TRANSPORT.example from http to stdio. When the server is stood up for tool enumeration, whatever is in the example field is used as the command-line value, which I was not expecting. I assumed whatever was provided as the example was provided only as a hint to the user 😀

func toEnviron(env []servers.Env, secrets []servers.Secret) []string {
var environ []string
for _, env := range env {
environ = append(environ, fmt.Sprintf("%s=%s", env.Name, env.Example))
}
for _, secret := range secrets {
environ = append(environ, secret.Env+"="+secret.Example)
}
return environ
}

@ipedrazas ipedrazas merged commit 551f6b6 into docker:main Jul 22, 2025
@mihaiplesa
Copy link

Thank you @ipedrazas.

@mihaiplesa
Copy link

mihaiplesa commented Jul 23, 2025

@ipedrazas how/when would https://hub.docker.com/r/mcp/brave-search and https://hub.docker.com/mcp/server/brave/overview get updated? And have archived removed.

@jonathansampson jonathansampson deleted the sampson-update-brave-search branch July 23, 2025 15:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants