<!-- column_layout: [1, 8, 1] -->
<!-- column: 0 -->
<!-- alignment: left -->
![image](axway.png)
<!-- font_size: 5 -->
<!-- column: 1  --> 
<!-- jump_to_middle -->
<!-- alignment: center -->
MCP in Practice
<!-- no_footer -->
<!-- speaker_note: Title slide -->
<!-- speaker_note: Do a quick intro -->
<!-- end_slide -->








<!-- column_layout: [1, 3, 1] -->
<!-- column: 1 -->
<!-- alignment: center -->
<!-- font_size: 4 -->
What is MCP?
===
<!-- reset_layout -->
<!-- font_size: 2 -->
<!-- incremental_lists: true -->
<!-- alignment: left  -->
<!-- new_line --> 
<!-- new_line -->
* Open Standard
<!-- new_line -->
* Created by Anthropic (Creators of Claude) in 2024
<!-- new_line -->
* Allows LLMs to connect to data and systems
<!-- new_line -->
* Enables _agentic_ workflows
<!-- new_line --> 
<!-- new_line -->
<!-- alignment: center -->
<!-- font_size: 2 -->
MCP gives tools to AI
===
![image](robot.png)
<!-- no_footer -->
<!-- speaker_note: Emphasis on tools -->
<!-- end_slide -->

<!-- font_size: 4 -->
Why MCP?
===
<!-- pause -->
<!-- font_size: 2 -->
Without MCP
===
<!-- column_layout: [5, 2] -->
<!-- column: 0 -->
<!-- alignment: left -->
<!-- pause -->

```mermaid +render +width:100%
sequenceDiagram
    You->>LLM: I'm 10 minutes away from a demo, getting this error        
    LLM->>You: Try this...
    You->>LLM: That didn't work! New error!
	LLM->>You: Gather this info..
	You->>LLM: Here it is...
	LLM->>You: Try this...
	loop 
    You->>LLM:😤
	LLM->>You:😭
    end
```
<!-- pause -->
<!-- column: 1 -->
<!-- font_size: 2 -->
<!-- pause -->
<!-- alignment: center -->
<!-- new_line --> 
<!-- new_line -->
<!-- new_line -->
<!-- new_line -->
<!-- new_line -->
![image:width:100%](grandpa-gpt.gif)


<!-- speaker_note: quick walk through the sequence diagram -->
<!-- speaker_note: Talk about the issues resolving complex problems in complex environments -->
<!-- speaker_note:   	1 narrow bandwidth interface -->
<!-- speaker_note:   	2 lack of wider context (i.e. not knowing gitops pattern in play causing LLM to patch in place) -->
<!-- speaker_note:   	3 imprecise input -->
<!-- speaker_note: The LLM is compelled to solution quickly for user satisifaction and token minimization BUT...-->
<!-- speaker_note: Complex problems demand a lot of information, iteration and context -->
<!-- speaker_note: Result is Frustration -->
<!-- no_footer -->
<!-- end_slide -->




<!-- font_size: 4 -->
Why MCP?
===
<!-- pause -->
<!-- font_size: 2 -->
With MCP...
===
<!-- column_layout: [6, 2] -->
<!-- column: 0 -->
<!-- alignment: left -->
<!-- pause -->
<!-- new_line -->
<!-- new_line -->
```mermaid +render +width:100%
sequenceDiagram
    You->>LLM: I'm 10 minutes away from a demo, getting this error        
    LLM->>You: Let me check that..
    LLM->>OCP: Get pod list
    LLM->>OCP: Get pod logs
    LLM->>ArgoCD: Get GitOps application
	LLM->>Git: Get Git repo
    LLM->>LLM: Plan fix
	LLM->>You: Here is the plan. Requesting Approval
	You->>LLM: Approved
    LLM->>Git: Push fix to Git
    LLM->>OCP: Verify change applied
	LLM->>You: Applied Succesfully
```
<!-- pause -->
<!-- column: 1 -->
<!-- font_size: 2 -->
<!-- pause -->
<!-- alignment: center -->
<!-- new_line --> 
<!-- new_line -->
<!-- new_line -->
<!-- new_line --> 
<!-- new_line -->
<!-- new_line -->
![image:width:100%](homerspin.gif)


<!-- speaker_note: quick walk through the sequence diagram -->
<!-- speaker_note: MCP gives the LLM agency to carry out complex, multi-step plans -->
<!-- speaker_note: Collecting and collating from multiple sources -->
<!-- speaker_note: Providing _intelligent_ summaries -->
<!-- speaker_note: Taking actions, iterating and trying different paths when necessary  -->
<!-- no_footer -->
<!-- end_slide -->













<!-- column_layout: [1, 4, 1] -->
<!-- column: 1 -->
<!-- alignment: left -->
<!-- font_size: 4 -->
Tools for the demo
===
<!-- reset_layout -->
<!-- font_size: 2 -->
<!-- incremental_lists: true -->
<!-- alignment: left  -->
<!-- new_line --> 
<!-- new_line -->
* `openshift-mcp-server` - Kubernetes/OpenShift API operations
<!-- new_line -->
* `gitea-mcp-server` - Git repository operations
<!-- new_line -->
* `argocd-mcp-server` - ArgoCD (aka Openshift GitOps) application management
<!-- new_line -->

<!-- no_footer -->
<!-- speaker_note: Explain the tools in the wider context -->
<!-- speaker_note: openshift - complete CRUD access -->
<!-- speaker_note: gitea - ability to read and commit, create repos etc. -->
<!-- speaker_note: ArgoCD - add and keep deployments in a specified state -->
<!-- end_slide -->





<!-- font_size: 4 -->
Prompt Engineering
===
<!-- font_size: 2 --> 
Intent vs. Instruction
===
<!-- font_size: 2 --> 
![image:width:100%](table.png)

<!-- pause -->
<!-- new_line -->
<!-- new_line -->
<!-- font_size: 2 --> 
Ambiguity is the enemy of automation. If you don’t define ‘safe’… the AI will.
<!-- end_slide -->









<!-- font_size: 5 -->
<!-- jump_to_middle -->
<!-- alignment: center -->
DEMO
===
<!-- no_footer -->
<!-- speaker_note: Without further ado... -->

<!-- speaker_note: Without further ado... -->

<!-- end_slide -->







<!-- font_size: 3 -->
Have fun exploring the world of MCP!
===
<!-- font_size: 1 -->

![image](happy2.gif)
```bash +exec 
/// mpv --no-config --vo=none --really-quiet happy.webm 
```

