Skip to content

Commit 12a963f

Browse files
authored
Merge branch 'main' into documentation-updates
2 parents e8e16bf + c8b69f9 commit 12a963f

25 files changed

Lines changed: 656 additions & 242 deletions

File tree

.wordlist.txt

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4120,4 +4120,68 @@ pyproject
41204120
toml
41214121
virtualenv
41224122
mebibytes
4123-
syscalls
4123+
syscalls
4124+
ArchSpecificLibrary
4125+
Asahi
4126+
AsmSource
4127+
AutoEncoder
4128+
Avx
4129+
BuildCommand
4130+
BuildYourOwnKernel
4131+
CPPLibRecommend
4132+
CPPLibVersion
4133+
CPPStdCodes
4134+
CompilerSpecific
4135+
ConfigGuess
4136+
ConfigurationInfo
4137+
CrossCompile
4138+
DefineOtherArch
4139+
Denoises
4140+
DiT
4141+
Drozd
4142+
FlatBuffers
4143+
GolangInlineAsm
4144+
GolangIntrinsic
4145+
GolangLinkLibrary
4146+
HostCpuDetection
4147+
IncompatibleHeaderFile
4148+
InlineAsm
4149+
JavaJar
4150+
JavaPom
4151+
JavaSource
4152+
NoEquivalentInlineAsm
4153+
NoEquivalentIntrinsic
4154+
OldCrt
4155+
OpenAnolis
4156+
PreprocessorError
4157+
PythonInlineAsm
4158+
PythonIntrinsic
4159+
PythonLinkLibrary
4160+
PythonPackage
4161+
RustInlineAsm
4162+
RustIntrinsic
4163+
RustLinkLibrary
4164+
SentencePiece
4165+
SignedChar
4166+
Submodule
4167+
TUI
4168+
Wix’s
4169+
audiogen
4170+
bazelbuild
4171+
centos
4172+
cmdline
4173+
deadsnakes
4174+
flatbuffers
4175+
libmagic
4176+
litert
4177+
mv
4178+
ngrok’s
4179+
pagesize
4180+
runfinch
4181+
spiece
4182+
subcommand
4183+
subgenre
4184+
submodule
4185+
subword
4186+
techcrunch
4187+
transformative

content/install-guides/finch.md

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
---
2+
title: Finch on Arm Linux
3+
author: Jason Andrews
4+
5+
minutes_to_complete: 10
6+
7+
official_docs: https://runfinch.com/docs/
8+
9+
additional_search_terms:
10+
- containerd
11+
- Docker
12+
- Finch
13+
14+
test_images:
15+
- ubuntu:latest
16+
test_maintenance: false
17+
18+
tool_install: true
19+
layout: installtoolsall
20+
multi_install: false
21+
multitool_install_part: false
22+
weight: 1
23+
---
24+
25+
[Finch](https://runfinch.com) is an open-source container development tool from AWS. It offers a simple, Docker-compatible CLI powered by containerd and nerdctl. Designed for Linux, macOS, and Windows, Finch is especially useful on Arm-based systems for efficient container workflows.
26+
27+
This guide explains how to install Finch on Arm Linux distributions, specifically Amazon Linux 2023 and Ubuntu 24.04.
28+
29+
To get started, make sure you're using a system running Arm Linux. You can use a physical Arm device, a cloud instance from AWS, Azure, GCP, or OCI, or an Arm-based virtual machine.
30+
31+
To confirm the architecture, run:
32+
33+
```bash
34+
uname -m
35+
```
36+
37+
The output should be `aarch64` for 64-bit Arm systems.
38+
39+
## How do I install Finch on Amazon Linux 2023 for Arm?
40+
41+
Finch is available as an RPM package in the standard Amazon Linux 2023 repositories, making installation simple.
42+
43+
Install Finch using the package manager:
44+
45+
```console
46+
sudo yum install runfinch-finch -y
47+
```
48+
49+
Enable and start the containerd service:
50+
51+
```console
52+
sudo systemctl start containerd
53+
```
54+
55+
Check that the containerd service is running:
56+
57+
```console
58+
sudo systemctl status containerd
59+
```
60+
61+
You should see something like:
62+
63+
```output
64+
● containerd.service - containerd container runtime
65+
Loaded: loaded (/usr/lib/systemd/system/containerd.service; disabled; preset: disabled)
66+
Active: active (running) since Wed 2025-05-21 19:49:50 UTC; 40s ago
67+
Docs: https://containerd.io
68+
Process: 25839 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
69+
Main PID: 25841 (containerd)
70+
Tasks: 10
71+
Memory: 160.5M
72+
CPU: 1.771s
73+
CGroup: /system.slice/containerd.service
74+
└─25841 /usr/bin/containerd
75+
```
76+
77+
The `finch` command is now available in your PATH. You can now skip to the section on [verifying the Finch installation](#how-do-i-verify-the-finch-installation).
78+
79+
80+
## How do I install Finch on Ubuntu 24.04 for Arm?
81+
82+
Finch doesn't currently provide a Debian package for Ubuntu, but you can install it manually, using the three steps outlined below.
83+
84+
### Step 1: Install Finch dependencies
85+
86+
Install Nerdctl by following the instructions in the [Nerdctl install guide](/install-guides/nerdctl/). Then install the required tools:
87+
88+
```console
89+
sudo apt install -y \
90+
golang \
91+
make \
92+
build-essential
93+
```
94+
95+
### Step 2: Build and install Finch
96+
97+
Clone the Finch repository and build the binary:
98+
99+
```console
100+
git clone https://github.com/runfinch/finch.git
101+
cd finch
102+
git submodule update --init --recursive
103+
make
104+
sudo make install
105+
```
106+
107+
### Step 3: Configure Finch
108+
109+
Create the Finch configuration directories:
110+
111+
```bash
112+
sudo mkdir -p /etc/finch
113+
sudo mkdir -p /usr/libexec/finch
114+
```
115+
116+
Create the Finch configuration file:
117+
118+
```bash
119+
cat << EOF | sudo tee /etc/finch/finch.yaml > /dev/null
120+
# cpus: the amount of vCPU to dedicate to the virtual machine. (required)
121+
cpus: 2
122+
123+
# memory: the amount of memory to dedicate to the virtual machine. (required)
124+
memory: 2GiB
125+
126+
# snapshotters: the snapshotters a user wants to use (the first snapshotter will be set as the default snapshotter)
127+
snapshotters:
128+
- overlayfs
129+
130+
# dockercompat: a configuration parameter to activate finch functionality to accept Docker-like commands and arguments.
131+
dockercompat: true
132+
EOF
133+
```
134+
135+
Configure Nerdctl:
136+
137+
```bash
138+
sudo ln -sf $(which nerdctl) /usr/libexec/finch/nerdctl
139+
```
140+
141+
After these steps, the `finch` command is available in your PATH.
142+
143+
## How do I verify the Finch installation?
144+
145+
You can check the Finch version:
146+
147+
```bash
148+
sudo finch --version
149+
```
150+
151+
The version is printed:
152+
153+
```output
154+
finch version v1.8.2
155+
```
156+
157+
Run a container to confirm functionality:
158+
159+
```bash
160+
sudo finch run --rm armswdev/uname
161+
```
162+
163+
If you see the architecture printed, then Finch is working correctly.
164+
165+
The expected output is:
166+
167+
```output
168+
Architecture is aarch64
169+
```
170+
171+
Print your local container images:
172+
173+
```bash
174+
sudo finch images
175+
```
176+
177+
The output is similar to:
178+
179+
```output
180+
REPOSITORY TAG IMAGE ID CREATED PLATFORM SIZE BLOB SIZE
181+
armswdev/uname latest 82762f30a4a3 43 seconds ago linux/arm64 110.4MB 28.89MB
182+
```
183+
184+
Use `sudo finch help` to explore available commands.
185+
186+
You are ready to use Finch to run containers on your Arm Linux system.

content/learning-paths/cross-platform/mcp-ai-agent/_index.md

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
11
---
2-
title: Deploy an MCP server on a Raspberry Pi 5 and interact with it using an AI agent
2+
title: Deploy an MCP Server on Raspberry Pi 5 for AI Agent Interaction using OpenAI SDK
33

4-
draft: true
5-
cascade:
6-
draft: true
7-
84
minutes_to_complete: 30
95

10-
who_is_this_for: This Learning Path targets LLM and IoT developers who are familiar with Large Language Model (LLM) concepts and networking. You will learn how to deploy a lightweight Model Context Protocol (MCP) server on a Raspberry Pi 5 and interact with it via the OpenAI-Agent SDK.
6+
who_is_this_for: This Learning Path is for LLM and IoT developers who want to run and interact with AI agents on edge devices like the Raspberry Pi 5. You'll learn how to deploy a lightweight Model Context Protocol (MCP) server and use the OpenAI Agent SDK to create and register tools for intelligent local inference.
117

128
learning_objectives:
13-
- Deploy a lightweight Model Context Protocol (MCP) server on Raspberry Pi 5
14-
- Design and register custom tools for the AI Agent
15-
- Create custom endpoints
16-
- Learn about uv — a fast, efficient Python package manager
9+
- Deploy a lightweight Model Context Protocol (MCP) server on Raspberry Pi 5 for local AI agent execution.
10+
- Use the OpenAI Agent SDK to interact with a local AI agent.
11+
- Design and register custom tools for the agent tasks.
12+
- Learn about uv — a fast, efficient Python package manager for efficient local deployment.
1713

1814
prerequisites:
19-
- A [Raspberry Pi 5](https://www.raspberrypi.com/products/raspberry-pi-5/)
20-
- Basic understanding of Python and prompt engineering.
21-
- Understanding of LLM and AI Agent fundamentals
15+
- A [Raspberry Pi 5](https://www.raspberrypi.com/products/raspberry-pi-5/) with a Linux-based OS installed.
16+
- Familiarity with Python programming and prompt engineering techniques.
17+
- Basic understanding of Large Language Models (LLMs) and how they are used in local inference.
18+
- Understanding of AI agents and the OpenAI Agent SDK (or similar frameworks).
2219

2320
author: Andrew Choi
2421

2522
skilllevels: Introductory
2623
subjects: ML
2724
armips:
28-
- Cortex-A76
25+
- Cortex-A
2926
tools_software_languages:
3027
- Python
31-
- IoT
3228
- AI
29+
- Raspberry Pi
3330
- MCP
3431

3532
operatingsystems:
Lines changed: 39 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Introduction to Model Context Protocol and uv
2+
title: Introduction to Model Context Protocol (MCP) and Python uv package for local AI agents
33
weight: 2
44

55
### FIXED, DO NOT MODIFY
@@ -8,27 +8,50 @@ layout: learningpathall
88

99
## Model Context Protocol (MCP)
1010

11-
The **Model Context Protocol (MCP)** is an open specification for wiring Large-Language-Model (LLM) agents to the *context* they need — whether that context is a database, a local sensor, or a SaaS API.
12-
Think of it as USB-C for AI: once a tool or data source speaks MCP, any compliant LLM client can “plug in” and start using it immediately.
11+
The Model Context Protocol (MCP) is an open specification designed to connect Large Language Model (LLM) agents to the context they need — including local sensors, databases, and SaaS APIs. It enables on-device AI agents to interact with real-world data through a plug-and-play protocol that works with any LLM framework, including the OpenAI Agent SDK.
1312

1413
### Why use MCP?
15-
- **Plug-and-play integrations:** A growing catalog of pre-built MCP servers (filesystem, shell, vector stores, web-scraping, etc.) gives your agent instant super-powers with zero custom glue code.
14+
- **Plug-and-play integrations:** a growing catalog of pre-built MCP servers (such as filesystem, shell, vector stores, and web-scraping) gives your agent instant superpowers - no custom integration or glue code required.
1615

17-
- **Model/vendor agnostic:** Because the protocol lives outside the model, you can swap models like GPT-4, Claude, or your own fine-tuned model without touching the integration layer.
16+
- **Model/vendor agnostic:** as the protocol lives outside the model, you can swap models like GPT-4, Claude, or your own fine-tuned model without touching the integration layer.
1817

19-
- **Security by design:** MCP encourages running servers inside your own infrastructure, so sensitive data never leaves the perimeter unless you choose.
18+
- **Security by design:** MCP encourages running servers inside your own infrastructure, so sensitive data stays within your infrastructure unless explicitly shared.
2019

21-
- **Cross-ecosystem momentum:** Recent roll-outsfrom an official C# SDK to Wix’s production MCP server and Microsoft’s Azure supportshow the MCP spec is gathering real-world traction.
20+
- **Cross-ecosystem momentum:** recent roll-outs from an official C# SDK to Wix’s production MCP server and Microsoft’s Azure support show the MCP spec is gathering real-world traction.
2221

23-
### High-level architecture
24-
![mcp server](./mcp.png)
25-
- **MCP Host:** the LLM-powered application (Claude Desktop, an IDE plugin, OpenAI Agents SDK, etc.).
26-
- **MCP Client:** the runtime shim that keeps a 1-to-1 connection with each server.
27-
- **MCP Server:** a lightweight process that advertises tools (functions) over MCP.
28-
- **Local data sources:** files, databases, or sensors your server can read directly.
29-
- **Remote services:** external APIs the server can call on the host’s behalf.
22+
## What is uv?
3023

31-
{{% notice Note %}}
32-
Learn more about AI Agents in the [AI Agent on CPU learning path](https://learn.arm.com/learning-paths/servers-and-cloud-computing/ai-agent-on-cpu/).
24+
`uv` is a fast, Rust-built Python package manager that simplifies dependency management. It's designed for speed and reliability, making it ideal for setting up local AI agent environments on constrained or embedded devices like the Raspberry Pi 5.
25+
26+
Some key features:
27+
- Built in Rust for performance.
28+
- Resolves dependencies and installs packages in one step.
29+
- Optimized for local LLM workloads, embedded AI systems, and containerized Python environments.
30+
31+
For further information on `uv`, see: [https://github.com/astral-sh/uv](https://github.com/astral-sh/uv).
32+
33+
34+
## A high-level view of the architecture
35+
36+
![Diagram of Model Context Protocol (MCP) architecture showing the interaction between MCP Host (LLM-powered app), MCP Client (runtime shim), and MCP Server, which connects to local data sources (files, sensors, databases) and remote APIs for AI agent context retrieval.](./mcp.png)
37+
38+
*Figure: High-level view of the architecture of the Model Context Protocol (MCP) for local AI agent integration with real-world data sources.*
39+
40+
Each component in the diagram plays a distinct role in enabling AI agents to interact with real-world context:
41+
42+
- The **MCP Host** is the LLM-powered application (such as Claude Desktop, an IDE plugin, or an application built with the OpenAI Agents SDK).
43+
- The **MCP Client** is the runtime shim that keeps a 1-to-1 connection with each server.
44+
- The **MCP Server** is a lightweight process that advertises tools (functions) over MCP.
45+
- The **Local data sources** are files, databases, or sensors your server can read directly.
46+
- The **Remote services** are external APIs the server can call on the host’s behalf.
47+
48+
{{% notice Learning Tip %}}
49+
Learn more about AI Agents in the Learning Path [Deploy an AI Agent on Arm with llama.cpp and llama-cpp-agent using KleidiAI](https://learn.arm.com/learning-paths/servers-and-cloud-computing/ai-agent-on-cpu/).
3350
{{% /notice %}}
3451

52+
## Section summary
53+
54+
This page introduces MCP and `uv` as foundational tools for building fast, secure, and modular AI agents that run efficiently on edge devices like the Raspberry Pi 5.
55+
56+
57+

0 commit comments

Comments
 (0)