mcp-hello-world

mcp-hello-world

A learning-focused MCP server with two tools: a static 'hello' tool and a 'polyglot' tool that uses LangChain to detect language and return structured JSON.

Category
Visit Server

README

mcp-hello-world

A learning-focused MCP server that demonstrates how the Model Context Protocol works.

What is MCP?

MCP (Model Context Protocol) is a standard that lets AI assistants like Claude use external tools. Think of it like a plugin system:

  1. You build a server that offers tools
  2. Claude connects to your server
  3. Claude can now call your tools during conversations

This project is a minimal example with two tools that show a learning progression.

What Does This Server Do?

It has two tools:

Tool Input Output Purpose
hello (none) world Minimal static example
polyglot A greeting in any language Structured JSON with language info Shows LangChain + structured output

The hello tool is intentionally simple - it's about understanding how MCP works. The polyglot tool builds on that by calling an external LLM.

Project Structure

mcp-hello-world/
├── src/
│   └── index.ts                      # The MCP server
├── docs/
│   ├── langchain-polyglot-tool.md    # LangChain basics
│   └── structured-output.md          # Structured output with Zod
├── dist/                             # Compiled JavaScript (generated by build)
├── package.json                      # Project dependencies
└── tsconfig.json                     # TypeScript configuration

How to Build

npm install    # Install dependencies
npm run build  # Compile TypeScript to JavaScript

How to Use With Claude

To connect this server to Claude, add it to your MCP configuration.

For Claude Code (CLI):

Add to ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "hello-world": {
      "command": "node",
      "args": ["/full/path/to/mcp-hello-world/dist/index.js"]
    }
  }
}

For Claude Desktop App:

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "hello-world": {
      "command": "node",
      "args": ["/full/path/to/mcp-hello-world/dist/index.js"]
    }
  }
}

After adding the configuration, restart Claude. The hello tool will be available.

How MCP Communication Works

┌─────────────────┐         ┌─────────────────┐
│                 │  stdin  │                 │
│     Claude      │────────▶│   MCP Server    │
│                 │◀────────│                 │
│                 │ stdout  │                 │
└─────────────────┘         └─────────────────┘
  1. Claude launches the server as a subprocess
  2. Claude sends JSON messages to the server via stdin
  3. The server processes requests and sends responses via stdout
  4. This back-and-forth follows the MCP protocol specification

Key Concepts

Server

The main object that manages everything. It:

  • Registers available tools
  • Handles incoming requests
  • Routes tool calls to handler functions

Tool

A function that Claude can call. Each tool has:

  • Name: How Claude identifies it (e.g., "hello")
  • Description: Helps Claude know when to use it
  • Parameters: What inputs it accepts (our tool has none)
  • Handler: The code that runs when called

Transport

How the server communicates. We use StdioServerTransport which means:

  • Input comes from stdin
  • Output goes to stdout
  • Claude runs the server as a subprocess

This is the standard approach for local MCP servers.

The Polyglot Tool

The polyglot tool demonstrates LangChain's structured output feature. Send a greeting in any language, get back validated JSON with language details.

Input:

"bonjour"

Output:

{
  "detectedLanguage": "French",
  "greeting": "bonjour",
  "worldTranslation": "monde",
  "languageFamily": "Romance"
}

Requirements: The polyglot tool needs an ANTHROPIC_API_KEY environment variable. This project uses Teller to inject secrets:

teller run -- npm start

Greetings for Testing

The worldTranslation field in the response:

Language Greeting worldTranslation
English hello world
Spanish hola mundo
French bonjour monde
German hallo Welt
Italian ciao mondo
Portuguese olá mundo
Japanese こんにちは 世界
Korean 안녕하세요 세계
Chinese 你好 世界
Russian привет мир
Arabic مرحبا عالم
Hindi नमस्ते दुनिया
Dutch hallo wereld
Swedish hej värld
Greek γεια κόσμος

For a deeper dive into how this tool works:

Learning More

The src/index.ts file is heavily documented with explanations of each piece. Start there to understand the code.

For the full MCP specification: https://modelcontextprotocol.io/

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured