Skip to content

Sabbir Mohammad Sami web developer

ResumeDownload Resume

All notes

(AI)5 min read

MCP in Claude Code: Connect Servers and Build Your Own, Step by Step

The Model Context Protocol (MCP) is an open standard that lets an AI assistant call tools in other systems — a task tracker, a database, your own API. In Claude Code you connect a server with one claude mcp add command, choose who gets it with a scope, and can build your own server in TypeScript in about twenty lines.

Cover: “MCP” in heavy capitals beside a hub diagram linking Claude Code to Postgres, GitHub, Calendar, Slack, files and an APICover: “MCP” in heavy capitals beside a hub diagram linking Claude Code to Postgres, GitHub, Calendar, Slack, files and an API

( Before you start )

What MCP is

MCP is a protocol between two sides. A server exposes tools — functions with a name, a description and an input schema. A client, Claude Code here, lists those tools and calls one when a task needs it. Write a server once and any MCP client can use it.

  • Local (stdio) servers run as a process on your machine; Claude Code talks to them over standard input and output.
  • Remote (HTTP) servers run elsewhere and are reached by URL — the way most hosted services offer MCP.
  • Tools are what you will use most; servers can also offer resources and prompts.

( Connect a server, step by step )

Add a remote server

Hosted services publish an MCP URL. Add it with --transport http, a name of your choosing, and the URL:

Bash
claude mcp add --transport http notion https://mcp.notion.com/mcp

If the service needs you to sign in, run /mcp inside a Claude Code session and follow the authentication step there.

Add a local server

For a server that runs on your machine, the command goes after a double dash. Options such as --env come before the name; everything after -- is the command and its arguments:

Bash
claude mcp add --transport stdio --env AIRTABLE_API_KEY=YOUR_KEY airtable -- npx -y airtable-mcp-server

Choose a scope

ScopeFlagWho gets itStored in
Local (default)--scope localYou, in this project only~/.claude.json
Project--scope projectEveryone who clones the repository.mcp.json in the project root
User--scope userYou, in every project~/.claude.json

Project scope is the one to commit, so teammates get the same servers. Claude Code asks each person to approve project servers before using them, and claude mcp reset-project-choices clears those answers. A project file looks like this:

JSON
{
  "mcpServers": {
    "notion": {
      "type": "http",
      "url": "https://mcp.notion.com/mcp"
    },
    "docs": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "./docs"]
    }
  }
}

Never commit API keys in `.mcp.json`. Pass secrets with --env on your own machine, where they stay in your private configuration.

Check what is connected

Bash
claude mcp list
claude mcp remove airtable
  • claude mcp list prints every server with its health: connected, needs authentication, or failed to connect.
  • Inside a session, /mcp shows each server’s status and tool count, signs you in, and switches servers on and off.
  • claude mcp remove <name> deletes one.

Build your own server in TypeScript

The official TypeScript SDK makes a working server about twenty lines long. Since version 2 of the SDK, the server ships as its own package:

Bash
mkdir greeting-server && cd greeting-server
npm init -y
npm pkg set type=module
npm install @modelcontextprotocol/server zod

Then src/index.ts, the example from the SDK’s README:

TypeScript
import { McpServer } from '@modelcontextprotocol/server';
import { StdioServerTransport } from '@modelcontextprotocol/server/stdio';
import * as z from 'zod/v4';

const server = new McpServer({ name: 'greeting-server', version: '1.0.0' });

server.registerTool(
  'greet',
  {
    description: 'Greet someone by name',
    inputSchema: z.object({ name: z.string() }),
  },
  async ({ name }) => ({
    content: [{ type: 'text', text: `Hello, ${name}!` }],
  }),
);

async function main() {
  const transport = new StdioServerTransport();
  await server.connect(transport);
}

main();

Every tool has a name, a description Claude reads to decide when to call it, an input schema, and a handler that returns content. Node 22.18 and later run TypeScript files directly, so you can register the file as it is (on an older Node, compile it with tsc first and point at the JavaScript):

Bash
claude mcp add --transport stdio greeting -- node "$(pwd)/src/index.ts"

Start a new session, run /mcp to see the server connected, then ask Claude to greet someone. It asks your permission the first time it calls the tool.

( Going further )

Security checklist

  • Only add servers you trust: a local server runs code on your machine, and every server sees what Claude sends it.
  • Keep API keys out of .mcp.json; pass them with --env instead.
  • Prefer read-only tokens. A server that only reads issues should not be able to close them.
  • Look at what each tool does in /mcp before you approve it.

MCP FAQ

Is MCP only for Claude?
No. MCP is an open protocol, and the same server works with any client that supports it.
What is the difference between local and project scope?
Both apply to one project. Local stays private to you in ~/.claude.json; project is written to .mcp.json so it can be committed and shared.
Why does my server say it failed to connect?
For a local server, run the command after -- by hand: if it crashes, or prints anything to standard output before the protocol starts, Claude Code cannot talk to it. For a remote server, check the URL and sign in with /mcp.
How do I share servers along with skills and hooks?
Bundle them in a Claude Code plugin: a .mcp.json at the plugin root is installed with everything else.

Reference: Claude Code docs — MCP and the MCP TypeScript SDK.

Topic
AI
Published
Reading
5 min · 804 words
Sections
8
Tags
  • MCP
  • Model Context Protocol
  • Claude Code
  • TypeScript
  • AI tools

Experience

( 03 roles — 2+ years )

Full-stack developer in Dhaka, Bangladesh. Building for clients in Germany and Bangladesh since 2022.

  1. (01)

    August 2025 — Present

    Full-Stack Developer

    Susko GmbH · Full Time · Remote

    • Developed and enhanced an AI-powered SaaS and social media automation platform — AI content, image and video generation, automated scheduling and publishing, multi-account and content-team management, Meta, Instagram and Google integrations, WhatsApp-based content generation and scheduling, admin controls and subscription management.
    • Built a full-stack Padel court management and automation system that connects physical court hardware to a real-time web dashboard — court and player management, game control and live scores over WebSocket — and worked on the sensor electronics, PCB design, footprint verification, Gerber validation and JLCPCB manufacturing.
    • Built and maintained automation workflows with n8n, webhooks, APIs and external service integrations that take manual steps out of business processes.
    • Delivered 40+ production websites and full-stack applications for German clients across industries in React, Next.js and TypeScript — shop management, review management and automation, fundraising platforms, menu management, QR code generation and other custom business tools.
    • Optimized backend performance across production applications — database queries, API paths, data processing and Redis-based workflows — for faster, more responsive apps.

    Next.js · React · TypeScript · Node.js · Python · Prisma · Redis · WebSocket · n8n · OpenAI

  2. (02)

    March 2024 — May 2025

    Software Developer

    Bangladesh Associate of IT Solutions · Full Time · On-site

    • Developed a full-stack inventory management system tracking products, sales, payments, returns, waste products, customer ledgers and SMS notifications, in React, TypeScript, Express and MySQL.
    • Scaled an accounting management platform from a single-client application into a multi-user system, with financial dashboards, journal entries, transaction management, reporting and data visualization.
    • Deployed and maintained web applications on cPanel and VPS servers — production deployments, domain configuration, server setup and troubleshooting.
    • Delivered websites for schools, madrasas and other organizations, turning client requirements into responsive, production-ready web applications.
    • Developed and redesigned production and company portfolio websites in React, Next.js and TypeScript, with a focus on responsive design and user experience.

    React · Next.js · TypeScript · Express · MySQL · Tailwind CSS · cPanel · VPS

  3. (03)

    November 2023 — April 2024

    Full-Stack Developer

    Diginie IT · Internship · Remote

    • Completed a remote internship as a full-stack developer, building and maintaining client web applications in Next.js, TypeScript and Tailwind CSS.
    • Turned designs into responsive pages that held together on every screen size, and kept existing client sites running.

    Next.js · TypeScript · Tailwind CSS · GitHub

About

( Dhaka, Bangladesh )

Sabbir Mohammad Sami — full-stack web & app developer at Susko GmbH, building for the web since 2022.

Sabbir Mohammad Sami, smiling and looking off to the side, seated on a white block in a black sweater — black-and-white studio portrait

I’m a full-stack developer from Dhaka who cares about the part people actually touch — unusual layouts, careful CSS, motion that means something — and about the code underneath being just as clean.

( Story )

I grew up in Dhaka and studied arts and humanities at Kabi Nazrul Government College. Alongside my studies I joined a web development course, and that is where the real growth started — surprise. Alongside work, I am now in my third year of Honours in Economics at National University.

My first website was a tourism site about the place I most wanted to visit. I built it in class 10.

Today I build AI products, automation and client platforms at Susko GmbH, after two years of shipping inventory, accounting and client sites at BAITS. What I am after has not changed: interfaces that look good and back-ends that run smoothly, from the same pair of hands.

Honest, down to earth, and fond of hard work. My inbox is always open — for a project, or just to say hi.

  1. ( Education )

    1. Kabi Nazrul Government College

      • Arts and humanities
      • Dhaka, Bangladesh
    2. National University, Bangladesh

      Session 2023–2024 · Now

      • Honours in Economics — 3rd year
      • Department of Economics
  2. ( Co-curricular )

    —

    Bangladesh National Cadet Corps (BNCC)

    • 1 No Battalion, Ramna Regiment
    • Rank: Cadet Corporal
  3. ( Languages )

    Bangla, English, Hindi

    • Bangla — native
    • English — comfortable
    • Hindi — fluent

( Skills )

Expertise
React · Next.js · JavaScript · TypeScript · MongoDB · Bootstrap · Tailwind CSS · shadcn/ui · GitHub · Figma
Comfortable
Flutter · Dart · MySQL · Mongoose · Express · TanStack Query · Firebase · React Router · Photoshop
Familiar
Zod · Framer Motion · GSAP · JWT · Axios · CORS · Stripe · Vercel

( Questions )

Who is Sabbir Mohammad Sami?

Sabbir Mohammad Sami (S M Sami) is a full-stack web and app developer from Dhaka, Bangladesh. Since August 2025 Sami has worked as a Full-Stack Developer at Susko GmbH in Germany, after building inventory and accounting platforms at Bangladesh Associate of IT Solutions (BAITS). Sami has been building for the web since 2022.

What does Sabbir Mohammad Sami build?

Sami builds websites, web apps, mobile apps and AI products end to end: company and restaurant websites, booking and management platforms, an AI social media platform (Kocial), an AI review manager (ReviewSync) and a Flutter money app (Sompi). That includes 40+ production websites for clients in Germany and Bangladesh.

Which technologies does Sami work with?

Sami works across the MERN stack — MongoDB, Express, React and Node.js — and with Next.js, TypeScript, Tailwind CSS, MySQL, PostgreSQL, Prisma and Redis. Mobile apps are built in Flutter and Dart. AI features use the OpenAI API, n8n automations and webhooks, and motion uses GSAP.

Does Sami build mobile apps with Flutter?

Yes. Sami builds cross-platform apps in Flutter and Dart. Sompi, Sami’s own money tracker, runs on Android, iOS, the web and the desktop from one Flutter codebase, with Riverpod for state and an encrypted SQLite store, so every account and transaction stays on the device.

Does Sami build AI products?

Yes. At Susko GmbH Sami builds AI SaaS: Kocial writes captions, generates images and publishes to Facebook and Instagram for agencies, and ReviewSync answers Google reviews in a business’s own voice. Sami also builds n8n workflows that connect AI models to business tools.

How can I hire Sami as a web or app developer in Dhaka?

Email smsami.dev@gmail.com or use the contact form on this site with a short note about the project. Sami works with clients in Dhaka, across Bangladesh and abroad — remotely for companies in Germany — and replies in English or Bangla.

( Contact )

Contact

( Available for projects )

Based in Dhaka, Bangladesh (GMT+6). Happy to talk in English, Bangla or Hindi.

Let’s work together.

Have an exciting project you need help with? Send me an email, give me a call, or write below — a project, a question, or just to say hi.

( Write to me )

* Required