248 lines
5.2 KiB
Markdown
248 lines
5.2 KiB
Markdown
<!-- column_layout: [1, 8, 1] -->
|
||
<!-- column: 0 -->
|
||
<!-- alignment: left -->
|
||

|
||
<!-- 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
|
||
===
|
||

|
||
<!-- 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 -->
|
||

|
||
|
||
|
||
<!-- 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 -->
|
||

|
||
|
||
|
||
<!-- 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 -->
|
||

|
||
|
||
<!-- 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 -->
|
||
|
||

|
||
```bash +exec
|
||
/// mpv --no-config --vo=none --really-quiet happy.webm
|
||
```
|
||
|