MCPs and AI Automation
1 Introduction
During the Easter break I decided to tinker around a bit with AI. Since I hadn’t really kept up with recent trends that much, I didn’t realize how much fun this would be, so I literally spent the whole week, from waking up until dawn, just tinkering with these tools.
My goal was to play around with Claude and MCPs to see how much automation can actually be realized with AI. I was genuinely shocked by how much power these systems can have when combined with many other tools. At times it really felt like I had an employee reading emails, answering them, searching online for potential customers, and overall helping run the business.
I also noticed recently that there are many tools already taking advantage of this, plus many upcoming open-source projects that optimize and even gamify it. There are also people running tens of AI instances simultaneously while burning through thousands of euros in tokens or subscription fees. This is rather a short note, but I decided to write it because I was honestly amazed by how far this kind of automation already goes.
2 What is MCP?
You’ve probably noticed that AI assistants like Claude or ChatGPT seem to know a lot, but only up to a point. Ask them about something that happened last month, or ask them to pull up a file from your company’s database, and they hit a wall. Nowadays they do have access to search and are more accurate when searching, but overall their built-in knowledge is still frozen around whatever date they were trained on. They also can’t automatically use many of the tools you use every day, like writing and sending actual emails, reading your files, or making appointments in your calendar. That is the kind of problem MCP was built to fix.
MCP stands for Model Context Protocol. Released as an open standard by Anthropic in late 2024, it is basically a shared language that lets AI models talk to external tools and data sources like databases, APIs, calendars, file systems, and pretty much anything else.
Before MCP, connecting an AI to Slack, a SQL database, and your calendar could mean building three separate custom connectors. Each one was basically its own engineering project. Now, if both the AI and the external service “speak MCP,” they can connect through one standardized interface. It is the same basic idea as any communication protocol: if both sides speak the same language, they can communicate.
Figure 1: MCP as the bridge between an AI client and external tools. ©modelcontextprotocol.io
2.1 A concrete example
Imagine you ask an AI assistant: "Find the latest sales report and email it to my manager."
Without MCP, the AI can’t actually do that because it doesn’t have access to your files or your email. With MCP, the AI can reach out to a database tool to fetch the report, then call an email tool to draft or send it. Each tool is its own MCP server, and the AI acts as the client making structured requests to those servers.
So MCP is powerful, but not without risk. The more you allow it to do, the higher the chance that something can go wrong. In the end it becomes a compromise: how much access do you really want to give your AI, and what is acceptable from a security perspective?
If you want to know more, you can check the official protocol documentation here. Now let’s get into some practical implementation.
3 Implementation
You have probably already seen this idea inside many AI chatbots that offer connections to services like Gmail, Notion, Stripe, and so on. But you can also host and program custom MCP servers yourself, which then allow communication with many different APIs. There are many repositories online that offer ready-made servers, so if you are looking for something specific you can start with the official servers repository.
As for me, I decided to implement local iCal, SMTP + IMAP, and Notion MCP servers so I could see how much I can automate inside a project. I recently created the website Klarweb and wanted to let the AI do as much work for me as possible. Yes, lazy, I know. But while doing this I was honestly shocked by how well it performed. I ended up building not one workflow, but several.
Before that, here is a look at the project’s Claude configuration structure:
├── .claude
│ ├── commands
│ │ ├── customer-reply.md
│ │ ├── follow-up-check.md
│ │ ├── followup-email.md
│ │ ├── inbox-triage.md
│ │ ├── lead-research.md
│ │ ├── meeting-prep.md
│ │ ├── outreach-email.md
│ │ ├── pipeline.md
│ │ ├── proposal.md
│ │ └── website-audit.md
│ ├── context
│ │ ├── business-summary.md
│ │ ├── icp.md
│ │ ├── offers.md
│ │ └── signature.md
│ ├── prompts
│ │ ├── customer-reply.md
│ │ ├── followup-email.md
│ │ ├── inbox-triage.md
│ │ ├── lead-research.md
│ │ ├── outreach-email.md
│ │ └── website-audit.md
│ ├── settings.local.json
│ ├── skills
│ │ ├── brand-voice.md
│ │ ├── copy-review-klarweb.md
│ │ ├── email-agent.md
│ │ ├── follow-up-check.md
│ │ ├── meeting-prep.md
│ │ ├── meeting-scheduler.md
│ │ ├── outbound-lead-research.md
│ │ ├── pipeline.md
│ │ ├── proposal.md
│ │ └── website-review-criteria.md
│ └── templates
│ ├── customer-reply.md
│ ├── outreach-email.md
│ └── website-review.md
Code Snippet 1: Claude project structure for reusable workflows and context.
All of these files are just markdown files that explain to the AI how it should execute commands and what it needs to do. Since opening a new terminal resets the context, this lets the AI keep that knowledge saved in the project. It is basically like giving an employee a workbook.
Ideally you would set up MCPs and also explain in these files how the AI is supposed to use them. For SMTP + IMAP, for example, you would tell it to use that MCP to draft and send emails whenever the connection is available. So let’s set that up.
3.1 SMTP + IMAP
For this I decided to use an existing repository called MCP-Mail-Server.
You would do that by going into your project directory and setting up the server like this:
claude mcp add-json mcpMail '{
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-mail-server"],
"env": {
"IMAP_HOST": "IMAP_HOST@host.com",
"IMAP_PORT": "993",
"IMAP_SECURE": "true",
"SMTP_HOST": "SMTP_HOST@host.com",
"SMTP_PORT": "465",
"SMTP_SECURE": "true",
"EMAIL_USER": "email@user.com",
"EMAIL_PASS": "password"
}
}'
Code Snippet 2: Example local SMTP + IMAP MCP setup.
After that, you restart the terminal with Claude and check with /mcp whether the MCP is
available, which it should be. This server runs locally inside the project only. You can also install
it globally on your laptop so Claude Desktop or Claude Code can always access it. In my case, I only
wanted it for this specific project.
Afterwards, you can simply try telling Claude to send an email. As long as the configuration is correct, it should work.
Notion MCP was even simpler. I used the official Notion MCP server. To set it up, you go to your Notion connectors, create a custom Notion API token, and install the server inside the project with that token:
claude mcp add-json notionApi '{
"type": "stdio",
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"NOTION_TOKEN": "XXXXXXXX"
}
}'
Code Snippet 3: Local Notion MCP setup.
The last MCP I wanted was a calendar MCP. Since I use Apple Calendar for basically everything, and all my other calendars are synced into it, this felt like the obvious choice if I wanted AI to automatically create appointments for me. For this I used MCP-ICAL, which is a community-driven project.
Since the installation takes a few smaller steps, I would just recommend checking the project documentation directly.
4 Running Example
Here is a rough example of the workflows when running: the AI would browse the internet, analyze and evaluate potential customers, scan all emails to see whether they were customers, put them into my Notion table, draft emails, and eventually send them.
Video: AI Agent searching through mails, creating Notion entries and drafting mails.
Figuring out how to create this kind of workflow and tinkering with MCPs for the whole week was honestly a lot of fun. I ended up staying awake many nights until 3 or 4 a.m. just experimenting and trying to improve it. I was so shocked by how well it worked that I had to show it to my friends too.
I will be honest: building this also scared me a little. It is easy to see why people feel threatened by tools like this. And this was only one workflow. I also built others that scan emails, schedule appointments, and send follow-ups automatically. Scheduling these tasks is also possible, which I did. When these systems run every day on their own, the automation starts to feel both exciting and a bit unsettling.
Even so, I do not think AI should replace people. I think it should handle repetitive tasks so people can focus on more important work. But that only works if we stay in control. Relying too much on AI providers is risky, which is also why I think open source and self-hosting matter a lot.
One last message: use AI to support your work, not to become fully dependent on it.
Anyway, enough philosophy. This was a really fun project to build, and I hope you enjoyed reading about it.