How I Built and Published an MCP Server in 14 Hours
First-person field report: scaffolding, three tools, npm publish, 515 downloads in 5 days.
Read more →What they are, why they matter, and how to set up your first connector - step by step.
Out of the box, Claude Cowork mode can create files, browse the web, and read documents from your computer. But when you add MCP connectors, it gains the ability to directly read from and write to your other apps - Slack, Gmail, Google Drive, Notion, HubSpot, and dozens more. This turns Claude from a helpful assistant into a genuine workflow hub.
MCP stands for Model Context Protocol. It is an open standard created by Anthropic that allows AI models like Claude to securely communicate with external tools and data sources. Think of it like a universal plug socket for AI: instead of each app needing its own custom integration, MCP provides one consistent way for Claude to connect to any service that supports it.
In practical terms: when you install an MCP connector for Slack, Claude can read your messages and send replies on your behalf. When you install one for Google Drive, Claude can open, read, and create files in your Drive. The connector is a secure bridge between Claude and the app.
MCP connectors are individual connections to specific apps (one connector = one integration). Plugins are bundles that can contain multiple connectors, custom skills, and settings packaged for a specific use case. A "Sales plugin" might bundle a CRM connector, an email connector, and an outreach-drafting skill - all in one install.
The most commonly used MCP connectors include:
Step 1: Open Claude desktop app and click the gear icon (Settings).
Step 2: Go to the Connectors or MCP section and browse available connectors.
Step 3: Click Install or Connect on the connector you want.
Step 4: Complete the OAuth authorisation - you sign into the app and grant Claude the permissions it needs. You never give Claude your password directly.
Step 5: The connector appears as active. You can now use it in Cowork mode conversations.
With Slack connected:
Read the last 20 messages in #marketing and summarise what the team has discussed. Draft a reply from me updating them on the campaign launch timeline.
With Gmail connected:
Find all emails from the last 7 days mentioning "invoice". Summarise each one - sender, amount, and any action required. Save as "Invoice-Emails-This-Week.docx".
With Notion connected:
Look at my Notion page "Q2 Goals" and create a progress report showing which goals are on track, which are behind, and what actions are needed. Save as "Q2-Progress-Report.docx".
OAuth authorisation: You never give Claude your password. The connection uses industry-standard OAuth - the same "Sign in with Google" process you use everywhere.
Local processing: Cowork mode runs locally on your machine. Data from connected apps is fetched and processed locally, not sent to a remote server for storage.
You control permissions: Revoke connector access at any time through Claude settings or directly through the connected app’s own security page.
Start with the app you spend the most time in. For most people that is email (Gmail/Outlook) or files (Google Drive/OneDrive). The payoff is immediate - being able to ask Claude to "summarise the 15 emails I haven’t read yet and flag anything urgent" saves real time from day one.
To make this concrete, here is a real MCP server I shipped to production in May 2026 - one that lets Claude (and any other MCP-compatible AI tool) answer streaming questions for Asian markets with live data.
When you ask Claude something like "where can I watch Pulang Araw in the Philippines?", the model either guesses or refuses. Streaming availability is highly geo-specific and changes weekly - there is no way for a language model to know it accurately on its own. That is exactly the gap MCP fills: instead of trying to bake streaming data into the model, expose it via a server the model can call at question time.
I scaffolded the package, wrote three tools, and published it to npm - all in about 14 hours on a single Saturday. The three tools the server exposes:
Anyone with Claude Desktop can drop a tiny config snippet into their claude_desktop_config.json:
"ottasia": {
"command": "npx",
"args": ["-y", "@ottasia/mcp-server"]
}
From the user’s perspective, Claude just "knows" about Asian streaming providers now. No retraining. No fine-tuning. Plug in a 30-line config snippet and the answers go from "I’m not sure where this streams in Bangladesh" to "Streaming on Hoichoi and free-with-ads on MX Player."
The package - @ottasia/mcp-server on npm - is also listed in the official MCP Registry, mcp.so, Smithery, Glama, and awesome-mcp-servers. Five days after publish day it had 515 downloads, with steady 10-20 per day organic growth since. The biggest spike (450 downloads) came on launch day from a single Twitter + Reddit announce.
The biggest surprise was how lightweight the MCP protocol actually is. Three tools, a few hundred lines of TypeScript, and the result is a server that every major MCP-compatible AI assistant (Claude, ChatGPT, Cursor, others) can use to answer questions it previously could not. The leverage is enormous - build it once, every AI assistant gains a new capability.
If you are considering building your own MCP server for an internal tool or a niche data source, the path is well-documented and the protocol is genuinely simple. Start with the official MCP docs, reference an existing open-source server as a template, and aim for three good tools before publishing.
For a full overview of Cowork mode features including MCP connectors, Skills, and file creation, read the Features Overview. To get set up today, start with the Getting Started guide.
Join the community for insights, updates and practical how-tos.