KEMBAR78
Model Context Protocol - path to LLM standartization | PPTX
EPAM Proprietary & Confidential. 1
Antons Kranga
2 0 2 5 , M a r c h
Model Context Protocol
EPAM Proprietary & Confidential. 2
EPAM Proprietary & Confidential. 2
$ whoami – Antons Kranga
Principal Engineer at EPAM
Generative AI, ML Engineering, Maintainer of hubctl
Linkedin: https://lv.linkedin.com/in/antonskranga
Github: https://github.com/akranga
Twitter: @acankr
EPAM Proprietary & Confidential. 3
AI Application Design Evolution
M O D E L C O N T E X T P R O T O C O L
LLM
prompt
Data Source
Type 1
EPAM Proprietary & Confidential. 4
AI Application Design Evolution
M O D E L C O N T E X T P R O T O C O L
LLM
prompt
Data Source
Tool
Tool
Tool
LLM
Type 1 Type 2
EPAM Proprietary & Confidential. 5
AI Application Design Evolution
M O D E L C O N T E X T P R O T O C O L
LLM
prompt
Data Source
Tool
Tool
Tool
LLM
LLM
Host
App
Server Service
Type 1 Type 2 Type 3
Server
Server
Service
Service
EPAM Proprietary & Confidential. 6
M O D E L C O N T E X T P R O T O C O L
https://spec.modelcontextprotocol.io/
MCP
Client
MCP
Server
File
System
transport layer
host app
User
EPAM Proprietary & Confidential. 7
M O D E L C O N T E X T P R O T O C O L
host
process
Server
Local
Service
Server
Server
Remote
Service
Client
Data Source
Client
process
Client
stdio/sse
transport layer
https://spec.modelcontextprotocol.io/
process
• HTTP with SSE – preferable for remote connections
• JSON RPC 2.0 – protocol between server and client
• Stateful Connections
• Latest protocol revision – 2024-11-05
• STDIO – preferable for local connections
• STDIO – support is client mandatory requirement
• Logging – logging should be preferably to file or STDERR
LLM
EPAM Proprietary & Confidential. 8
M O D E L C O N T E X T P R O T O C O L
• RESOURCE – data associated to the
context
• TOOL – Functions called by model to
perform actions
• PROMPT – Commands from the user
(can be dynamic, templated with args)
PROMPT
TOOL
RESOURCE
Client Server
Capabilities
https://github.com/cyanheads/model-context-protocol-resources/blob/main/guides/mcp-client-development-guide.md
EPAM Proprietary & Confidential. 9
M O D E L C O N T E X T P R O T O C O L
• SAMPLING – allows servers to request
LLM completions through the client
• ROOTS – boundaries where servers
can operate
PROMPT
TOOL
RESOURCE
Client Server
Capabilities
ROOTS SAMPLING
https://github.com/cyanheads/model-context-protocol-resources/blob/main/guides/mcp-server-development-guide.md#multi-server-coordination
subscribe streaming
EPAM Proprietary & Confidential. 11
SDK Availability
M O D E L C O N T E X T P R O T O C O L
https://modelcontextprotocol.io/development/updates
• Latest protocol revision – 2024-11-05
• MCP Architecture Specification
• MCP Protocol Interaction, events and messages
• JSON RPC v2 schema description
• C# SDK – released 2025-02-24
• TypeScript SDK – Released 2025-03-24
• Java SDK – Released ​2025-02-14
• Kotlin, Pyton SDK– Released ​2024-12-21
• Community supported Rust API, Golang proposed
EPAM Proprietary & Confidential. 12
EPAM Proprietary & Confidential. 12
How to build MCP server?
EPAM Proprietary & Confidential. 13
Intall MCP package
L L M C O N S I D E R A T I O N S
$ pip install mcp[cli]
Install Python SDK
• FastMCP – MCP Server over FastAPI.
• Low Level SDK – low level protocol implementations
• Command Line Interface – easiest way to run MCP Server
• Inspector (requires node) – Web-UI for MCP Server debugging
• UV is recommended by default
EPAM Proprietary & Confidential. 14
Implement MCP Server
M O D E L C O N T E X T P R O T O C O L
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("OnlineSearch", settings=fastmcp_settings)
...
@mcp.resource(”greet://hello)
def foo_tool(*args, **kwargs) -> str:
return 'Hello, World!'
@mcp.tool(description="META-GOES-HERE")
def foo_tool(*args, **kwargs) -> str:
return 'Hello, World!'
if __name__ == "__main__":
mcp.run(transport="stdio") # or "sse"
https://github.com/modelcontextprotocol/python-sdk
EPAM Proprietary & Confidential. 15
Implement MCP Server
M O D E L C O N T E X T P R O T O C O L
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("OnlineSearch", settings=fastmcp_settings)
...
@mcp.resource(”greet://hello)
def foo_tool(*args, **kwargs) -> str:
return 'Hello, World!'
@mcp.tool(description="META-GOES-HERE")
def foo_tool(*args, **kwargs) -> str:
return 'Hello, World!'
if __name__ == "__main__":
mcp.run(transport="stdio") # or "sse"
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("OnlineSearch", settings=fastmcp_settings)
...
app = Starlette(
routes=[
Mount('/', app=mcp.sse_app()),
]
)
...
app.router.routes.append(Host('example.com', app=mcp.sse_app()))
https://github.com/modelcontextprotocol/python-sdk
EPAM Proprietary & Confidential. 16
Test MCP Server locally
M O D E L C O N T E X T P R O T O C O L
https://github.com/modelcontextprotocol/python-sdk
To run MCP Server
$ mcp run 'mcp_server.py’
$ mcp dev 'mcp_server.py’
Need to install the following packages:
@modelcontextprotocol/inspector@0.7.0
Starting MCP inspector...
Proxy server listening on port 3000
MCP Inspector is up and running at http://localhost:5173
To trace and debug
EPAM Proprietary & Confidential. 17
Connect to MCP Client
M O D E L C O N T E X T P R O T O C O L
https://github.com/modelcontextprotocol/python-sdk
And restart Claude Desktop app
{
"Search": {
"command": "/abspath/python3/bin/mcp",
"args": [
"run","/abspath/src/servers/online_search/main.py”
],
"env": {
"PYTHONPATH": "/abspath/abspath_to_projec/src”
}
}
}
}
And restart claude desktop
EPAM Proprietary & Confidential. 18
EPAM Proprietary & Confidential. 18
Demo…
EPAM Proprietary & Confidential. 19
Conclusions
M O D E L C O N T E X T P R O T O C O L
• Try out Development with LLM – https://modelcontextprotocol.io/llms-full.txt (prompt)
• STDIO to SSE Servers adapter – https://github.com/supercorp-ai/supergateway
• See examples for other servers – https://github.com/modelcontextprotocol/servers/tree/main/src
• SSE and stateful protocol limits Serverless Capabilities (popular production choice)
• Server auth is in DRAFT – https://spec.modelcontextprotocol.io/specification/draft/basic/authorization/
EPAM Proprietary & Confidential. 20
Conclusions
M O D E L C O N T E X T P R O T O C O L
• Try out Development with LLM – https://modelcontextprotocol.io/llms-full.txt (prompt)
• STDIO to SSE Servers adapter – https://github.com/supercorp-ai/supergateway
• See examples for other servers – https://github.com/modelcontextprotocol/servers/tree/main/src
• SSE and stateful protocol limits Serverless Capabilities (popular production choice)
• Server auth is in DRAFT – https://spec.modelcontextprotocol.io/specification/draft/basic/authorization/
EPAM Proprietary & Confidential. 21
Thank you!
Any questions?
https://github.com/akranga/mcp-workshop
EPAM Proprietary & Confidential. 22
EPAM Proprietary & Confidential. 22
Engineering
the future

Model Context Protocol - path to LLM standartization

  • 1.
    EPAM Proprietary &Confidential. 1 Antons Kranga 2 0 2 5 , M a r c h Model Context Protocol
  • 2.
    EPAM Proprietary &Confidential. 2 EPAM Proprietary & Confidential. 2 $ whoami – Antons Kranga Principal Engineer at EPAM Generative AI, ML Engineering, Maintainer of hubctl Linkedin: https://lv.linkedin.com/in/antonskranga Github: https://github.com/akranga Twitter: @acankr
  • 3.
    EPAM Proprietary &Confidential. 3 AI Application Design Evolution M O D E L C O N T E X T P R O T O C O L LLM prompt Data Source Type 1
  • 4.
    EPAM Proprietary &Confidential. 4 AI Application Design Evolution M O D E L C O N T E X T P R O T O C O L LLM prompt Data Source Tool Tool Tool LLM Type 1 Type 2
  • 5.
    EPAM Proprietary &Confidential. 5 AI Application Design Evolution M O D E L C O N T E X T P R O T O C O L LLM prompt Data Source Tool Tool Tool LLM LLM Host App Server Service Type 1 Type 2 Type 3 Server Server Service Service
  • 6.
    EPAM Proprietary &Confidential. 6 M O D E L C O N T E X T P R O T O C O L https://spec.modelcontextprotocol.io/ MCP Client MCP Server File System transport layer host app User
  • 7.
    EPAM Proprietary &Confidential. 7 M O D E L C O N T E X T P R O T O C O L host process Server Local Service Server Server Remote Service Client Data Source Client process Client stdio/sse transport layer https://spec.modelcontextprotocol.io/ process • HTTP with SSE – preferable for remote connections • JSON RPC 2.0 – protocol between server and client • Stateful Connections • Latest protocol revision – 2024-11-05 • STDIO – preferable for local connections • STDIO – support is client mandatory requirement • Logging – logging should be preferably to file or STDERR LLM
  • 8.
    EPAM Proprietary &Confidential. 8 M O D E L C O N T E X T P R O T O C O L • RESOURCE – data associated to the context • TOOL – Functions called by model to perform actions • PROMPT – Commands from the user (can be dynamic, templated with args) PROMPT TOOL RESOURCE Client Server Capabilities https://github.com/cyanheads/model-context-protocol-resources/blob/main/guides/mcp-client-development-guide.md
  • 9.
    EPAM Proprietary &Confidential. 9 M O D E L C O N T E X T P R O T O C O L • SAMPLING – allows servers to request LLM completions through the client • ROOTS – boundaries where servers can operate PROMPT TOOL RESOURCE Client Server Capabilities ROOTS SAMPLING https://github.com/cyanheads/model-context-protocol-resources/blob/main/guides/mcp-server-development-guide.md#multi-server-coordination subscribe streaming
  • 10.
    EPAM Proprietary &Confidential. 11 SDK Availability M O D E L C O N T E X T P R O T O C O L https://modelcontextprotocol.io/development/updates • Latest protocol revision – 2024-11-05 • MCP Architecture Specification • MCP Protocol Interaction, events and messages • JSON RPC v2 schema description • C# SDK – released 2025-02-24 • TypeScript SDK – Released 2025-03-24 • Java SDK – Released ​2025-02-14 • Kotlin, Pyton SDK– Released ​2024-12-21 • Community supported Rust API, Golang proposed
  • 11.
    EPAM Proprietary &Confidential. 12 EPAM Proprietary & Confidential. 12 How to build MCP server?
  • 12.
    EPAM Proprietary &Confidential. 13 Intall MCP package L L M C O N S I D E R A T I O N S $ pip install mcp[cli] Install Python SDK • FastMCP – MCP Server over FastAPI. • Low Level SDK – low level protocol implementations • Command Line Interface – easiest way to run MCP Server • Inspector (requires node) – Web-UI for MCP Server debugging • UV is recommended by default
  • 13.
    EPAM Proprietary &Confidential. 14 Implement MCP Server M O D E L C O N T E X T P R O T O C O L from mcp.server.fastmcp import FastMCP mcp = FastMCP("OnlineSearch", settings=fastmcp_settings) ... @mcp.resource(”greet://hello) def foo_tool(*args, **kwargs) -> str: return 'Hello, World!' @mcp.tool(description="META-GOES-HERE") def foo_tool(*args, **kwargs) -> str: return 'Hello, World!' if __name__ == "__main__": mcp.run(transport="stdio") # or "sse" https://github.com/modelcontextprotocol/python-sdk
  • 14.
    EPAM Proprietary &Confidential. 15 Implement MCP Server M O D E L C O N T E X T P R O T O C O L from mcp.server.fastmcp import FastMCP mcp = FastMCP("OnlineSearch", settings=fastmcp_settings) ... @mcp.resource(”greet://hello) def foo_tool(*args, **kwargs) -> str: return 'Hello, World!' @mcp.tool(description="META-GOES-HERE") def foo_tool(*args, **kwargs) -> str: return 'Hello, World!' if __name__ == "__main__": mcp.run(transport="stdio") # or "sse" from mcp.server.fastmcp import FastMCP mcp = FastMCP("OnlineSearch", settings=fastmcp_settings) ... app = Starlette( routes=[ Mount('/', app=mcp.sse_app()), ] ) ... app.router.routes.append(Host('example.com', app=mcp.sse_app())) https://github.com/modelcontextprotocol/python-sdk
  • 15.
    EPAM Proprietary &Confidential. 16 Test MCP Server locally M O D E L C O N T E X T P R O T O C O L https://github.com/modelcontextprotocol/python-sdk To run MCP Server $ mcp run 'mcp_server.py’ $ mcp dev 'mcp_server.py’ Need to install the following packages: @modelcontextprotocol/inspector@0.7.0 Starting MCP inspector... Proxy server listening on port 3000 MCP Inspector is up and running at http://localhost:5173 To trace and debug
  • 16.
    EPAM Proprietary &Confidential. 17 Connect to MCP Client M O D E L C O N T E X T P R O T O C O L https://github.com/modelcontextprotocol/python-sdk And restart Claude Desktop app { "Search": { "command": "/abspath/python3/bin/mcp", "args": [ "run","/abspath/src/servers/online_search/main.py” ], "env": { "PYTHONPATH": "/abspath/abspath_to_projec/src” } } } } And restart claude desktop
  • 17.
    EPAM Proprietary &Confidential. 18 EPAM Proprietary & Confidential. 18 Demo…
  • 18.
    EPAM Proprietary &Confidential. 19 Conclusions M O D E L C O N T E X T P R O T O C O L • Try out Development with LLM – https://modelcontextprotocol.io/llms-full.txt (prompt) • STDIO to SSE Servers adapter – https://github.com/supercorp-ai/supergateway • See examples for other servers – https://github.com/modelcontextprotocol/servers/tree/main/src • SSE and stateful protocol limits Serverless Capabilities (popular production choice) • Server auth is in DRAFT – https://spec.modelcontextprotocol.io/specification/draft/basic/authorization/
  • 19.
    EPAM Proprietary &Confidential. 20 Conclusions M O D E L C O N T E X T P R O T O C O L • Try out Development with LLM – https://modelcontextprotocol.io/llms-full.txt (prompt) • STDIO to SSE Servers adapter – https://github.com/supercorp-ai/supergateway • See examples for other servers – https://github.com/modelcontextprotocol/servers/tree/main/src • SSE and stateful protocol limits Serverless Capabilities (popular production choice) • Server auth is in DRAFT – https://spec.modelcontextprotocol.io/specification/draft/basic/authorization/
  • 20.
    EPAM Proprietary &Confidential. 21 Thank you! Any questions? https://github.com/akranga/mcp-workshop
  • 21.
    EPAM Proprietary &Confidential. 22 EPAM Proprietary & Confidential. 22 Engineering the future