Overview

Overview

The MCP Client integration lets a user connect to any Model Context Protocol server and expose that server's tools to the Health Assistant chat assistant.

What it does

  • Discovers tools from an MCP server (STDIO / Streamable HTTP / SSE).
  • Wraps each tool as a standard LangChain tool, namespaced as mcp__<instance>__<tool>.
  • The chat assistant can call those tools alongside the built-in clinical tools (get_biomarker_history, etc.).
  • One user can have many MCP Client instances — one per MCP server.

What it does NOT do

  • It does not produce FHIR observations or biomarker data. It is purely a tool provider for the assistant.
  • It does not poll on a schedule. Connections are lazy (opened on first chat use) and closed after an idle timeout.
  • It does not expose tool calls over the tokenless API proxy. All tool calls go through the authenticated chat endpoint.

Transports

TransportUse caseNotes
stdioLocal subprocess (e.g. npx -y @modelcontextprotocol/server-github)Command must be in the admin allowlist (MCP_STDIO_ALLOWED_COMMANDS).
httpRemote Streamable HTTP server (recommended for remote)https:// enforced unless MCP_ALLOW_INSECURE_HTTP=True.
sseLegacy Server-Sent Events remote serverSame as HTTP.

Tool filtering

Per-instance config supports:

  • enabled_tools / disabled_tools — explicit allow/block list by tool name.
  • include_tags / exclude_tags — tag-based filtering (if the server tags tools).

A global cap INTEGRATION_MAX_TOOLS_PER_SESSION bounds how many MCP tools are exposed in a single chat session.