Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MCP in Action: Connecting AI to Enterprise Syst...

Avatar for Zineb Bendhiba Zineb Bendhiba
September 18, 2025
13

MCP in Action: Connecting AI to Enterprise Systems - Sept 2025

Artificial intelligence is evolving rapidly, but one challenge remains: efficiently connecting AI agents to the systems where data resides. Each new data source requires a specific integration, limiting the scalability and relevance of models.

The Model Context Protocol (MCP) addresses this issue by defining an open standard to link AI assistants to enterprise systems: from databases to business tools and development environments.

In this talk, I will introduce MCP through Wanaku, an open-source MCP server based on Quarkus and Apache Camel, developed by our team to simplify these integrations. I will share our experience building it, the challenges we faced, and the lessons we learned. You’ll also see how MCP, combined with modern Java technologies, enables seamless and secure connections between AI and enterprise data.

Join me to explore how this protocol is paving the way for more connected and intelligent AI systems!

Avatar for Zineb Bendhiba

Zineb Bendhiba

September 18, 2025
Tweet

Transcript

  1. About Zineb Bendhiba • Open Source Engineer at IBM •

    Apache Camel committer and PMC • Camel Quarkus maintainer • Camel AI & Wanaku MCP router • Based in Paris - France • She/Her/Hers • Twitter : @ZinebBendhiba • Bluesky : @zinebbendhiba.com
  2. Model Context Protocol (MCP) A protocol - A standard for

    connecting AI agents to systems - Pushed by Anthropic (Claude) USB for AI integrations
  3. Capabilities Tools - The client can invoke “tool” and get

    the response - Can be anything: database, remote service… Resources - Expose data - URL -> Content Prompts - Pre-written prompt template - Allows executing specific prompt
  4. Transport Transports - stdio -> The client instantiates the server,

    sends the requests on stdio and gets the response from the same channel
  5. Transport Transports - stdio - Server-Sent Event (SSE) -> The

    client sends a POST request to the server, the response is an SSE (chunked response) - Streamable HTTP - SSE + Possible multiplexing
  6. Quarkus MCP server extensions 2 extensions - SSE (SSE /

    Streamable HTTP) -> quarkus-mcp-server-sse - stdio -> quarkus-mcp-server-stdio
  7. Quarkus MCP server extensions @Inject CodeService codeService; @Tool(description = "Converts

    the string value to lower case" ) String toLowerCase(String value) { return value.toLowerCase(); } @Prompt(name = "code_assist") PromptMessage codeAssist(@PromptArg(name = "lang") String language) { return PromptMessage.withUserRole(new TextContent(codeService.assist(language))); } @Resource(uri = "file:///project/alpha" ) BlobResourceContents alpha(RequestUri uri) throws IOException{ return BlobResourceContents.create(uri.value(), Files.readAllBytes(Path.of("alpha.txt"))); } MCP Tool MCP Prompt MCP Resource
  8. Model and Model Serving Model Model Serving Model Serving -

    Run the model - CPU / GPU - Expose an API Input - Prompt (text) - Instructions to give to the model - Taming a model is hard GPUs Input (Prompt) Output
  9. Application Model AI-infused application |ˌeɪˌaɪ ˈɪnˌfjuːzd ˌæplɪˈkeɪʃən| noun (Plural AI-Infused

    applications) A software program enhanced with artificial intelligence capabilities, utilizing AI models to implement intelligent features and functionalities. Model Serving
  10. LangChain / LangChain4j / Quarkus LangChain4j LangChain LangChain4j Quarkus LangChain4j

    Inspired By Uses and extends Framework Clean separation, Managed interactions Integration Application
  11. Quarkus LangChain4j https://docs.quarkiverse.io/quarkus-langchain4j LangChain4j Quarkus LangChain4j Application LLMs Vector stores

    Embedding Models - Declarative clients - CDI integration - Observability (Otel, Prometheus) - Auditing - Resilience - Guardrails - RAG building blocks - Agentic architecture - Testability (unit, IT, evaluation) - Developer Joy
  12. Quarkus Langchain4j MCP client extension quarkus.langchain4j.mcp.filesystem. transport-type =stdio quarkus.langchain4j.mcp.filesystem. command=npx,-y,@modelcontextprotocol/s

    erver-filesystem,/my-system-path/location quarkus.langchain4j.mcp.wanaku. transport-type =http quarkus.langchain4j.mcp.wanaku. url=http://my-url/mcp/sse/ stdio SSE
  13. Adding an MCP ToolBox to an AIService @RegisterAiService public interface

    MyAiService { @McpToolBox String chat(@UserMessage String userMessage); } @RegisterAiService public interface MyAIGithubService { @McpToolBox("github") String useGithub(@UserMessage String userMessage); } Allow all Available MCP Tools Only allow some MCP Tools
  14. My obsertavtions - At the beginning, most of servers are

    stdio - Entreprise vs Local - Lack of documentation - Security - Authentication - Isolated MCP server or not - Description of tools - Hallucinations - Wanaku experience : limitation in the number of tools - Adding security per user - Adding RAG to pre filter the Tools - Explore new ways of delivering Enterprise Integration - MCP and Agentic -> emerging A2A / ACP