An MCP server that fetches random cat images and uses LLM sampling to identify the breed and describe the scene.
Built with the Go MCP SDK.
- The
describe_kittentool is called by an MCP client - A random cat image is fetched from The Cat API
- The image is sent to the client via an MCP sampling request, asking the LLM to identify the breed and describe the scene
- The description and image URL are returned as structured output
- Go 1.25+
- A Cat API key
# Clone the repo
git clone https://github.com/omgitsads/go-sdk-kitten-description.git
cd go-sdk-kitten-description
# Build
go build -o kitten-description-server .Set your Cat API key and run the server over stdio:
export CAT_API_KEY="your-api-key"
./kitten-description-serverAdd the server to your MCP client config (e.g. Claude Desktop, Copilot, etc.):
{
"mcpServers": {
"kitten-description": {
"command": "./kitten-description-server",
"env": {
"CAT_API_KEY": "your-api-key"
}
}
}
}Fetches a random cat image and asks the LLM to identify the breed and describe the scene.
- Input: None
- Output:
description— LLM-generated breed identification and scene descriptionimage_url— The original image URL from The Cat API
Note: This tool uses MCP sampling, so the connected client must support
CreateMessage.