Understanding MCP transport methods and how to choose between them
FastAPI-MCP supports two MCP transport methods for client-server communication: HTTP transport (recommended) and SSE transport (backwards compatibility).
HTTP transport is the recommended transport method as it implements the latest MCP Streamable HTTP specification. It provides better session management, more robust connection handling, and aligns with standard HTTP practices.
from fastapi import FastAPIfrom fastapi_mcp import FastApiMCPapp = FastAPI()mcp = FastApiMCP(app)# Mount using HTTP transport (recommended)mcp.mount_http()
from fastapi import FastAPIfrom fastapi_mcp import FastApiMCPapp = FastAPI()mcp = FastApiMCP(app)# Mount using SSE transport (backwards compatibility)mcp.mount_sse()
Both transport methods support the same FastAPI integration features like custom routing and authentication:
from fastapi import FastAPI, APIRouterfrom fastapi_mcp import FastApiMCPapp = FastAPI()router = APIRouter(prefix="/api/v1")mcp = FastApiMCP(app)# Mount to custom path with HTTP transportmcp.mount_http(router, mount_path="/my-http")# Or with SSE transportmcp.mount_sse(router, mount_path="/my-sse")
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"FastAPI MCP","description":"Convert your FastAPI app into a MCP server with zero configuration","colors":{"primary":"#6d45dc","light":"#9f8ded","dark":"#6a42d7"},"logo":{"light":"https://mintcdn.com/tadata-a67d782f/261DhWpwctN3OULB/media/dark_logo.png?fit=max\u0026auto=format\u0026n=261DhWpwctN3OULB\u0026q=85\u0026s=e9f9af96a41788e41f9b9309eb73ed2e","dark":"https://mintcdn.com/tadata-a67d782f/261DhWpwctN3OULB/media/light_logo.png?fit=max\u0026auto=format\u0026n=261DhWpwctN3OULB\u0026q=85\u0026s=f83360780c78b938d427252bd18788f0","href":"https://tadata.com/"},"favicon":"https://mintcdn.com/tadata-a67d782f/261DhWpwctN3OULB/media/favicon.png?fit=max\u0026auto=format\u0026n=261DhWpwctN3OULB\u0026q=85\u0026s=a80aacd40ac71953a91cb857c6cf756d","background":{"decoration":"windows","color":{"light":"#EEEEEE","dark":"#222831"}},"navbar":{"primary":{"type":"github","href":"https://github.com/tadata-org/fastapi_mcp"}},"footer":{"socials":{"x":"https://x.com/makhlevich","github":"https://github.com/tadata-org/fastapi_mcp","website":"https://tadata.com/"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Documentation","icon":"book-open-cover","href":"https://fastapi-mcp.tadata.com/"},{"anchor":"Community","icon":"slack","href":"https://join.slack.com/t/themcparty/shared_invite/zt-30yxr1zdi-2FG~XjBA0xIgYSYuKe7~Xg"},{"anchor":"Blog","icon":"newspaper","href":"https://medium.com/@miki_45906"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tadata-a67d782f","hasAudioNarration":false,"actualSubdomain":"tadata-a67d782f","customDomains":["fastapi-mcp.tadata.com"],"gitSource":{"type":"github","owner":"tadata-org","repo":"fastapi_mcp","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a98beccfd77e1024206cd60","collectionId":"7de2e040-620f-43a0-bf92-ce6abf8fecc7","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a98beccfd77e1024206cd60"},"feedback":{"thumbs":false},"entitlements":{},"buildId":"6a98beccfd77e1024206cd60","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Advanced Usage","count":5},{"language":"default","tag":"Getting Started","count":5},{"language":"default","tag":"Configurations","count":2}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"advanced/transport","slug":"/advanced/transport","pageMetadata":{"title":"MCP Transport","description":"Understanding MCP transport methods and how to choose between them","icon":"car","href":"/advanced/transport"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Understanding MCP transport methods and how to choose between them\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`FastAPI-MCP supports two MCP transport methods for client-server communication: `,_jsx(_components.strong,{children:`HTTP transport`}),` (recommended) and `,_jsx(_components.strong,{children:`SSE transport`}),` (backwards compatibility).`]}),`\n`,_jsx(Heading,{level:`2`,id:`http-transport-recommended`,children:`HTTP Transport (Recommended)`}),`\n`,_jsxs(_components.p,{children:[`HTTP transport is the `,_jsx(_components.strong,{children:`recommended`}),` transport method as it implements the latest MCP Streamable HTTP specification. It provides better session management, more robust connection handling, and aligns with standard HTTP practices.`]}),`\n`,_jsx(Heading,{level:`3`,id:`using-http-transport`,children:`Using HTTP Transport`}),`\n`,_jsx(CodeBlock,{filename:``,highlight:`[7]`,numberOfLines:`8`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fastapi `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FastAPI`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fastapi_mcp `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FastApiMCP`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`app `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FastAPI()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`mcp `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FastApiMCP(app)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line line-highlight`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Mount using HTTP transport (recommended)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`mcp.mount_http()`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`sse-transport-backwards-compatibility`,children:`SSE Transport (Backwards Compatibility)`}),`\n`,_jsx(_components.p,{children:`SSE (Server-Sent Events) transport is maintained for backwards compatibility with older MCP implementations.`}),`\n`,_jsx(Heading,{level:`3`,id:`using-sse-transport`,children:`Using SSE Transport`}),`\n`,_jsx(CodeBlock,{filename:``,highlight:`[7]`,numberOfLines:`8`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fastapi `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FastAPI`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fastapi_mcp `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FastApiMCP`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`app `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FastAPI()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`mcp `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FastApiMCP(app)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line line-highlight`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Mount using SSE transport (backwards compatibility)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`mcp.mount_sse()`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`advanced-configuration`,children:`Advanced Configuration`}),`\n`,_jsx(_components.p,{children:`Both transport methods support the same FastAPI integration features like custom routing and authentication:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fastapi `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FastAPI, APIRouter`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fastapi_mcp `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FastApiMCP`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`app `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FastAPI()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`router `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` APIRouter(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`prefix`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/api/v1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`mcp `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FastApiMCP(app)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Mount to custom path with HTTP transport`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`mcp.mount_http(router, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`mount_path`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/my-http\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Or with SSE transport`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`mcp.mount_sse(router, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`mount_path`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/my-sse\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`client-connection-examples`,children:`Client Connection Examples`}),`\n`,_jsx(Heading,{level:`3`,id:`http-transport-client-connection`,children:`HTTP Transport Client Connection`}),`\n`,_jsx(_components.p,{children:`For HTTP transport, MCP clients connect directly to the HTTP endpoint:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcpServers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"fastapi-mcp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http://localhost:8000/mcp\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`sse-transport-client-connection`,children:`SSE Transport Client Connection`}),`\n`,_jsx(_components.p,{children:`For SSE transport, MCP clients use the same URL but communicate via Server-Sent Events:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcpServers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"fastapi-mcp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http://localhost:8000/sse\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"MCP Transport","description":"Understanding MCP transport methods and how to choose between them","icon":"car","href":"/advanced/transport"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"HTTP Transport (Recommended)","slug":"http-transport-recommended","depth":2,"children":[{"title":"Using HTTP Transport","slug":"using-http-transport","depth":3,"children":[]}]},{"title":"SSE Transport (Backwards Compatibility)","slug":"sse-transport-backwards-compatibility","depth":2,"children":[{"title":"Using SSE Transport","slug":"using-sse-transport","depth":3,"children":[]}]},{"title":"Advanced Configuration","slug":"advanced-configuration","depth":2,"children":[]},{"title":"Client Connection Examples","slug":"client-connection-examples","depth":2,"children":[{"title":"HTTP Transport Client Connection","slug":"http-transport-client-connection","depth":3,"children":[]},{"title":"SSE Transport Client Connection","slug":"sse-transport-client-connection","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"tadata-a67d782f","siteName":"FastAPI MCP","title":"MCP Transport - FastAPI MCP","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-07T10:01:13.036Z","originalFileLocation":"advanced/transport.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Understanding MCP transport methods and how to choose between them\">\u003cmeta data-mint-head name=\"application-name\" content=\"FastAPI MCP\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tadata-a67d782f/5VtFe0RycDwLfyn8/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/tadata-a67d782f/5VtFe0RycDwLfyn8/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tadata-a67d782f/5VtFe0RycDwLfyn8/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tadata-a67d782f/5VtFe0RycDwLfyn8/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tadata-a67d782f/5VtFe0RycDwLfyn8/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tadata-a67d782f/5VtFe0RycDwLfyn8/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tadata-a67d782f/5VtFe0RycDwLfyn8/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tadata-a67d782f/5VtFe0RycDwLfyn8/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tadata-a67d782f/5VtFe0RycDwLfyn8/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"MCP Transport - FastAPI MCP\">\u003cmeta data-mint-head property=\"og:description\" content=\"Understanding MCP transport methods and how to choose between them\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"FastAPI MCP\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://fastapi-mcp.tadata.com/advanced/transport\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tadata-a67d782f.mintlify.site/_mintlify/api/og/v2?division=Advanced+Usage\u0026amp;title=MCP+Transport\u0026amp;description=Understanding+MCP+transport+methods+and+how+to+choose+between+them\u0026amp;theme=3cd45186f5f01d3b5844570a\u0026amp;signature=5092311d1925769b88b1846cf0a1580d459bd2ece3754735f17e94dc0ea79fec\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"MCP Transport - FastAPI MCP\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Understanding MCP transport methods and how to choose between them\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tadata-a67d782f.mintlify.site/_mintlify/api/og/v2?division=Advanced+Usage\u0026amp;title=MCP+Transport\u0026amp;description=Understanding+MCP+transport+methods+and+how+to+choose+between+them\u0026amp;theme=3cd45186f5f01d3b5844570a\u0026amp;signature=5092311d1925769b88b1846cf0a1580d459bd2ece3754735f17e94dc0ea79fec\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/tadata-a67d782f/5VtFe0RycDwLfyn8/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"FastAPI MCP\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6d45dc\">\u003clink data-mint-head rel=\"canonical\" href=\"https://fastapi-mcp.tadata.com/advanced/transport\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/advanced/transport.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://fastapi-mcp.tadata.com/#organization\",\"name\":\"FastAPI MCP\",\"url\":\"https://fastapi-mcp.tadata.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tadata-a67d782f/261DhWpwctN3OULB/media/dark_logo.png?fit=max\u0026auto=format\u0026n=261DhWpwctN3OULB\u0026q=85\u0026s=e9f9af96a41788e41f9b9309eb73ed2e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://fastapi-mcp.tadata.com#website\",\"name\":\"FastAPI MCP\",\"url\":\"https://fastapi-mcp.tadata.com\",\"publisher\":{\"@id\":\"https://fastapi-mcp.tadata.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://fastapi-mcp.tadata.com/advanced/transport#webpage\",\"url\":\"https://fastapi-mcp.tadata.com/advanced/transport\",\"name\":\"MCP Transport\",\"description\":\"Understanding MCP transport methods and how to choose between them\",\"dateModified\":\"2026-01-07T10:01:13.036Z\",\"isPartOf\":{\"@id\":\"https://fastapi-mcp.tadata.com#website\"},\"breadcrumb\":{\"@id\":\"https://fastapi-mcp.tadata.com/advanced/transport#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://fastapi-mcp.tadata.com/advanced/transport#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Advanced Usage\",\"item\":\"https://fastapi-mcp.tadata.com/advanced/auth\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MCP Transport\",\"item\":\"https://fastapi-mcp.tadata.com/advanced/transport\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://fastapi-mcp.tadata.com/advanced/transport#article\",\"headline\":\"MCP Transport\",\"name\":\"MCP Transport\",\"description\":\"Understanding MCP transport methods and how to choose between them\",\"url\":\"https://fastapi-mcp.tadata.com/advanced/transport\",\"mainEntityOfPage\":{\"@id\":\"https://fastapi-mcp.tadata.com/advanced/transport#webpage\"},\"dateModified\":\"2026-01-07T10:01:13.036Z\",\"publisher\":{\"@id\":\"https://fastapi-mcp.tadata.com/#organization\"},\"isPartOf\":{\"@id\":\"https://fastapi-mcp.tadata.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"FastAPI MCP\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"FastAPI MCP","nav":{"global":{"anchors":[{"anchor":"Documentation","icon":"book-open-cover","href":"https://fastapi-mcp.tadata.com/"},{"anchor":"Community","icon":"slack","href":"https://join.slack.com/t/themcparty/shared_invite/zt-30yxr1zdi-2FG~XjBA0xIgYSYuKe7~Xg"},{"anchor":"Blog","icon":"newspaper","href":"https://medium.com/@miki_45906"}]},"groups":[{"group":"Getting Started","pages":[{"title":"Welcome to FastAPI-MCP!","sidebarTitle":"Welcome!","icon":"hand-wave","href":"/getting-started/welcome"},{"title":"Installation","icon":"arrow-down-to-line","href":"/getting-started/installation"},{"title":"Quickstart","icon":"rocket","href":"/getting-started/quickstart"},{"title":"FAQ","icon":"question","href":"/getting-started/FAQ"},{"title":"Best Practices","icon":"thumbs-up","href":"/getting-started/best-practices"}]},{"group":"Configurations","pages":[{"title":"Tool Naming","icon":"input-text","href":"/configurations/tool-naming"},{"title":"Customization","icon":"pen","href":"/configurations/customization"}]},{"group":"Advanced Usage","pages":[{"title":"Authentication \u0026 Authorization","icon":"key","href":"/advanced/auth"},{"title":"Deploying the Server","icon":"play","href":"/advanced/deploy"},{"title":"Refreshing the Server","icon":"arrows-rotate","href":"/advanced/refresh"},{"title":"Transport","description":"How to communicate with the FastAPI app","icon":"microchip","href":"/advanced/asgi"},{"title":"MCP Transport","icon":"car","href":"/advanced/transport"}]}]},"basePath":"","title":"MCP Transport - FastAPI MCP","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":[],"chunks":[]}