-
Notifications
You must be signed in to change notification settings - Fork 2k
MCP usage in a production environment #2646
-
Hello all,
I've been experimenting with MCP by following the documentation and setting up a sort of "smart assistant" that uses an LLM and can search the web using the Brave Search API.
With MCP, the pattern I'm using is that I set up a client that can use the "brave search tool" that is exposed by the brave web search MCP "server".
My config, which works perfectly locally is:
spring: jpa: hibernate: ddl-auto: validate open-in-view: 'false' ai: mcp: client: toolcallback: enabled: true stdio: connections: brave-search: command: npx args: -y,@modelcontextprotocol/server-brave-search env: BRAVE_API_KEY: ${BRAVE_API_KEY_SECRET}
This works perfectly locally.
Now, the crucial details I have are related to "bringing this to production".
In production, my Java Springboot app runs inside a pod in a K8s cluster, using a proprietary base Java Docker image that simply has "java" in it.
Is my understanding correct that when using npx to run a "server" that exposes a tool, then the npx binary (and I assume node as a direct dependency) need to be present within the pod/cluster where the Java app is running in order for the tool call to suceed? Seems like npx needs to "pull" the tool to the local process to execute it? Or is it all executed remotely?
I understand there are different modes for this to run...
However, from the perspective of running this in a production environment, would this setup mean that node/npx/npm must be installed into the Java Docker image that runs the Java?
How are people running this in production?
Thanks for the time and hopefully useful insights!
PS: A potentially simpler approach would be of course to write our own tool code/glue code and have the tool that "links" the Brave API with our Java code directly in Java, but, we want to get experience with MCP and potentially avoid re-inventing the wheel or writing too much custom code.
My current mental model, limited and I'm aware, is that essentially, we can use MCP Servers as an abstraction layer to avoid writing our own "tool code".
Cheers,
Bruno
Beta Was this translation helpful? Give feedback.