Skip to main content
Glama
imanelmzk

MCP Server

by imanelmzk

πŸ“‘ MCP Server - Model Context Protocol (Node.js + TypeScript) ✨ Author

Name: Imane Lmzk Project: MCP Server Learning Implementation

πŸ“Œ Overview

This project demonstrates a basic implementation of an MCP (Model Context Protocol) Server using Node.js and TypeScript.

The MCP server acts as a bridge between AI models and external tools/data sources, allowing structured communication via standardized protocols.

🧠 What is MCP?

Model Context Protocol (MCP) is a protocol designed to allow AI systems to:

Access external tools (APIs, databases, services) Retrieve structured data Execute actions in a controlled environment

πŸ‘‰ Think of MCP as:

A middleware layer between an AI model and real-world systems.

πŸ—οΈ Architecture Client (AI / App) β”‚ β–Ό MCP Server β”‚ β”œβ”€β”€ Tools (functions) β”œβ”€β”€ Resources (data) └── External APIs / DB βš™οΈ Tech Stack Node.js TypeScript Express (optional for HTTP transport) JSON-RPC / HTTP πŸ“‚ Project Structure mcp-server/ β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ server.ts # MCP server entry point β”‚ β”œβ”€β”€ tools/ # Tool definitions β”‚ β”œβ”€β”€ resources/ # Data providers β”‚ └── types/ # Type definitions β”œβ”€β”€ package.json └── tsconfig.json πŸš€ Getting Started

  1. Install dependencies npm install

  2. Run the server npm run dev

Server runs on:

http://localhost:3000 πŸ”Œ MCP Core Concepts

  1. Tools

Tools are functions exposed to the AI.

Example:

export const getUser = async (id: number) => { return { id, name: "Imane" }; }; 2. Resources

Resources provide structured data.

export const users = [ { id: 1, name: "Imane" }, { id: 2, name: "Ali" } ]; 3. Requests (JSON-RPC style)

Example request:

{ "method": "tools/getUser", "params": { "id": 1 } } 4. Response { "result": { "id": 1, "name": "Imane" } } πŸ§ͺ Example Endpoint (Express) import express from "express"; import { getUser } from "./tools/getUser";

const app = express(); app.use(express.json());

app.post("/mcp", async (req, res) => { const { method, params } = req.body;

if (method === "tools/getUser") { const result = await getUser(params.id); return res.json({ result }); }

res.status(400).json({ error: "Unknown method" }); });

app.listen(3000, () => { console.log("MCP Server running on port 3000"); }); πŸ“‘ How MCP Works (Step-by-Step) Client sends a request MCP server interprets the method Calls the appropriate tool Returns structured response πŸ”— Use Cases AI assistants accessing databases Automation systems API orchestration Tool-based AI agents πŸ“ˆ Learning Goals Understand MCP architecture Build tool-based APIs Structure backend for AI interaction Practice TypeScript backend patterns πŸ”§ Useful Commands npm run dev # Start server npm run build # Compile TypeScript npm start # Run production build πŸ“„ License

MIT

🚧 Status

In Progress β€” Learning MCP concepts and real-world integration.

πŸ’‘ Final Insight

MCP is not just a server β€” it’s a design pattern for AI-integrated systems. Mastering it means understanding how AI interacts with real-world data and tools.

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A production-ready TypeScript MCP server providing basic tools (add, echo, timestamp), resources (server info, greetings, data access), and prompt templates (analyze, code-review, summarize). Serves as a foundation for building custom MCP servers with extensible architecture.
    205 npm
    -
  • A
    license
    D
    quality
    D
    maintenance
    A TypeScript MCP server demo supporting local Stdio and remote Streamable HTTP, demonstrating tool invocation for AI agents.
    2
    MIT