The Jaraco Website MCP Server provides programmatic access to all website content including blog posts, services, and categories. It enables AI agents and other clients to read content and draft emails for different services.
Overview
The MCP (Model Context Protocol) server exposes the Jaraco website content as structured resources that can be accessed by AI agents, chatbots, or other applications. The server provides read-only access to all content and includes a tool for drafting service-specific emails.
Registry Information:
- Registry Name:
io.github.jrse/jaraco_website - Published Version:
1.0.1 - PyPI Package:
jaraco-website-mcp-server - Registry URL: https://registry.modelcontextprotocol.io
Features
- Read Blog Posts: Access all blog posts in multiple languages
- Read Services: Access all service descriptions and details
- Browse Categories: Explore content organized by categories
- Read Jarakube: Access Jaraco's Kubernetes platform information
- Draft Emails: Generate service-specific or Jarakube email templates with appropriate default text
Available Resources
The MCP server exposes resources with the following URI patterns. Additionally, the following files are available for direct access:
Direct File Resources
| File | URI | Description |
|---|---|---|
llms.txt |
https://jarakube.eu/llms.txt |
Summary of LLMs and models used or recommended by Jaraco |
llms-full.txt |
https://jarakube.eu/llms-full.txt |
Full list of LLMs and models used or recommended by Jaraco |
Resource Types
| Type | URI Pattern | Description |
|---|---|---|
| Blog Posts (English) | resource://jaraco/blog_posts/{slug} |
Individual blog posts in English |
Resource Types
| Type | URI Pattern | Description |
|---|---|---|
| Blog Posts (English) | resource://jaraco/blog_posts/{slug} |
Individual blog posts in English |
| Blog Posts (Localized) | resource://jaraco/blog_posts/{slug}/{language} |
Blog posts in specific language |
| Services (English) | resource://jaraco/services/{slug} |
Service descriptions in English |
| Services (Localized) | resource://jaraco/services/{slug}/{language} |
Service descriptions in specific language |
| Categories | resource://jaraco/categories/{slug} |
Content categories |
| Jarakube Platform (English) | resource://jaraco/jarakube/platform |
Jaraco's Kubernetes platform information |
| Jarakube Platform (Localized) | resource://jaraco/jarakube/platform/{language} |
Jarakube platform information in specific language |
Supported Languages
All content is available in the following languages:
- English (
en) - German (
de) - French (
fr) - Spanish (
es) - Dutch (
nl)
Note: For localized content, use the {slug}/{language} pattern. For English content, you can use either {slug} or {slug}/en.
Connecting to the MCP Server
Prerequisites
- Python 3.10 or higher (required for MCP SDK v2)
- MCP client library for your programming language
Connection Information
- Server Address:
https://jarakube.eu/mcp - Server Name:
jaraco-website - Version:
1.0.1 - MCP SDK: v2.2.0+
- Registry Name:
io.github.jrse/jaraco_website
Example Connection (Python)
from mcp.client import Client
async def connect_to_mcp():
# Connect to the MCP server using Streamable HTTP transport
client = Client("jaraco-website", url="https://jarakube.eu/mcp")
await client.connect()
# List all resources
resources = await client.list_resources()
# Read a specific blog post (English)
post = await client.read_resource("resource://jaraco/blog_posts/from-data-chaos-to-efficient-automation")
# Read a localized blog post
post_de = await client.read_resource("resource://jaraco/blog_posts/from-data-chaos-to-efficient-automation/de")
# Draft an email for a service
email = await client.call_tool(
"draft_email",
{
"service_slug": "software-development",
"language": "en",
"sender_name": "John Doe",
"sender_email": "john@example.com",
"custom_text": "I need help with a custom web application."
}
)
await client.disconnect()
**Note**: The MCP SDK v2 client automatically handles the Streamable HTTP transport. The endpoint is `/mcp` by default.
## Using the MCP Server
### Listing Resources
The server provides a `list_website_resources` tool to list available resources:
# List all available resources
resources = await client.call_tool(
"list_website_resources"
)
# List resources of a specific type
blog_posts = await client.call_tool(
"list_website_resources",
{"resource_type": "blog_posts"}
)
services = await client.call_tool(
"list_website_resources",
{"resource_type": "services"}
)
categories = await client.call_tool(
"list_website_resources",
{"resource_type": "categories"}
)
jarakube = await client.call_tool(
"list_website_resources",
{"resource_type": "jarakube"}
)
**Note**: The `list_website_resources` tool returns resources with full MCP URIs like `resource://jaraco/blog_posts/slug`.
### Reading Resources
To read a specific resource, use the full resource URI:
# Read a blog post (English)
post = await client.read_resource("resource://jaraco/blog_posts/from-data-chaos-to-efficient-automation")
# Read a blog post in German
post_de = await client.read_resource("resource://jaraco/blog_posts/from-data-chaos-to-efficient-automation/de")
# Read a service (English)
service = await client.read_resource("resource://jaraco/services/software-development")
# Read a service in French
service_fr = await client.read_resource("resource://jaraco/services/software-development/fr")
# Read a category
category = await client.read_resource("resource://jaraco/categories/platform-engineering")
# Read Jarakube platform (English)
jarakube = await client.read_resource("resource://jaraco/jarakube/platform")
# Read Jarakube platform in Spanish
jarakube_es = await client.read_resource("resource://jaraco/jarakube/platform/es")
### Drafting Emails
The `draft_email` tool generates service-specific or Jarakube email templates. It supports the following parameters:
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `service_slug` | string | Yes | - | The service identifier (e.g., "software-development") or "jarakube" for Jarakube platform |
| `language` | string | No | "en" | Language for the email template |
| `recipient` | string | No | "info@jaraco.de" | Recipient email address |
| `subject` | string | No | Auto-generated | Custom email subject |
| `custom_text` | string | No | "" | Additional text to include in the email |
| `sender_name` | string | No | "" | Sender's name |
| `sender_email` | string | No | "" | Sender's email address |
| `sender_phone` | string | No | "" | Sender's phone number |
**Example**:
# Draft email for a service
email = await client.call_tool(
"draft_email",
{
"service_slug": "software-development",
"language": "en",
"recipient": "info@jaraco.de",
"sender_name": "Jane Smith",
"sender_email": "jane@company.com",
"sender_phone": "+1234567890",
"custom_text": "We are looking to develop a custom web application for our e-commerce platform. We need expertise in React, Node.js, and database design."
}
)
# Draft email for Jarakube platform
jarakube_email = await client.call_tool(
"draft_email",
{
"service_slug": "jarakube",
"language": "en",
"sender_name": "John Doe",
"sender_email": "john@example.com",
"custom_text": "I need help with Jarakube deployment and configuration."
}
)
**Response Format**:
{
"subject": "Inquiry: Software Development Services",
"body": "Dear Jaraco Team,\n\nWe are looking to develop a custom web application for our e-commerce platform. We need expertise in React, Node.js, and database design.\n\n[Additional template content...]\n\n---\nJaraco GmbH\nSoftware Engineering · Münster\nPhone: +49 176 85952637\nEmail: info@jaraco.de\nWebsite: https://jarakube.eu",
"to": ["info@jaraco.de"],
"cc": [],
"bcc": [],
"headers": {
"From": "Jane Smith <jane@company.com>",
"Reply-To": "jane@company.com"
}
}
## Available Services
The following services are available through the MCP server:
| Service Slug | Description |
|--------------|-------------|
| `software-development` | Custom software development services |
| `consulting` | IT consulting and advisory services |
| `it-architecture` | IT architecture design and review |
| `linux-consulting` | Linux system consulting |
| `code-review` | Code review and quality assessment |
| `technology-assessment` | Technology stack evaluation |
## Available Categories
Content is organized into the following categories:
| Category Slug | Description |
|---------------|-------------|
| `platform-engineering` | Cloud, Kubernetes, delivery and reliability work for software companies |
| `platform-assessment` | Focused assessment for architecture, organization, constraints and bottlenecks |
| `practical-poc` | First practical solutions for automation, AI use cases and software bottlenecks |
| `jarakube` | The sovereign Kubernetes platform by jaraco |
| `company-founder` | jaraco's engineering roots, founder profile and company direction |
## API Reference
### list_website_resources Tool
List available Jaraco website resources, optionally filtered by type.
**Parameters:**
- `resource_type` (optional): Filter by resource type. Supported values: `services`, `blog_posts`, `categories`, `jarakube`
**Request**:
{
"name": "list_website_resources",
"arguments": {
"resource_type": "services"
}
}
**Response**:
{
"content": [
{
"type": "text",
"text": "[{\"uri\": \"resource://jaraco/services/software-development\", \"name\": \"Software Development\", \"description\": \"We build digital tools...\", \"mimeType\": \"text/markdown\"}, ...]",
"mimeType": "application/json"
}
],
"isError": false
}
The response contains an array of resources with:
- `uri`: Full MCP resource URI (e.g., `resource://jaraco/services/software-development`)
- `name`: Resource name/title
- `description`: Resource description
- `mimeType`: MIME type (always `text/markdown`)
### read_resource
Read a specific resource by its full MCP URI.
**Request**:
{
"uri": "resource://jaraco/services/software-development"
}
**Response**:
{
"contents": [
{
"type": "text",
"text": "# Software Development\n\nWe build digital tools and business software that make everyday work easier, faster, and more reliable.",
"mimeType": "text/markdown"
}
],
"resourceTemplate": null
}
### draft_email Tool
Generate a service-specific or Jarakube email template.
**Parameters:**
- `service_slug` (required): Service identifier (e.g., "software-development") or "jarakube" for Jarakube platform
- `language` (optional, default: "en"): Language for the email template
- `recipient` (optional, default: "info@jaraco.de"): Recipient email address
- `subject` (optional): Custom email subject
- `custom_text` (optional): Additional text to include in the email
- `sender_name` (optional): Sender's name
- `sender_email` (optional): Sender's email address
- `sender_phone` (optional): Sender's phone number
**Request**:
{
"name": "draft_email",
"arguments": {
"service_slug": "software-development",
"language": "en",
"recipient": "info@jaraco.de",
"sender_name": "John Doe",
"sender_email": "john@example.com",
"custom_text": "I need help with..."
}
}
**Response**:
{
"content": [
{
"type": "text",
"text": "{\"subject\": \"Inquiry: Software Development Services\", \"body\": \"Dear Jaraco Team,\\n\\nI need help with...\\n\\n---\\nJaraco GmbH\\nSoftware Engineering · Münster\\nPhone: +49 176 85952637\\nEmail: info@jaraco.de\", \"to\": [\"info@jaraco.de\"], \"headers\": {\"From\": \"John Doe <john@example.com>\", \"Reply-To\": \"john@example.com\"}}",
"mimeType": "application/json"
}
],
"isError": false
}
The response is a JSON object with:
- `subject`: Email subject
- `body`: Email body text
- `to`: List of recipient email addresses
- `cc`: List of CC email addresses (empty by default)
- `bcc`: List of BCC email addresses (empty by default)
- `headers`: Email headers including From and Reply-To
## Security
- The MCP server provides **read-only access** to content
- No authentication is required by default (can be added if needed)
- All inputs are validated before processing
- Rate limiting is configured to prevent abuse
## Support
For questions or issues with the MCP server:
- **Email**: info@jaraco.de
- **Website**: https://jarakube.eu
- **GitHub**: https://github.com/jaracogmbh/jarakube-jaraco-app
## MCP Registry
This server is published to the official MCP Registry:
- **Registry Name:** `io.github.jrse/jaraco_website`
- **Registry URL:** https://registry.modelcontextprotocol.io
- **Search:** https://registry.modelcontextprotocol.io/v0.1/servers?search=jaraco
## Version History
- **1.0.1**: Updated documentation, published to MCP Registry
- **1.0.0**: Initial release with blog posts, services, categories, and email drafting