mcp-hello-world
Implements structured output using LangChain's methodology for the polyglot tool, enabling validated JSON responses with language details.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-hello-worlddetect the language of 'hola'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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:
You build a server that offers tools
Claude connects to your server
Claude can now call your tools during conversations
This project is a minimal example with two tools that show a learning progression.
Related MCP server: MCP Utility Server
What Does This Server Do?
It has two tools:
Tool | Input | Output | Purpose |
| (none) |
| Minimal static example |
| 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 configurationHow to Build
npm install # Install dependencies
npm run build # Compile TypeScript to JavaScriptHow 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 │ │
└─────────────────┘ └─────────────────┘Claude launches the server as a subprocess
Claude sends JSON messages to the server via stdin
The server processes requests and sends responses via stdout
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 startGreetings 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:
docs/langchain-polyglot-tool.md - LangChain basics
docs/structured-output.md - Structured output with Zod validation
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/
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseBqualityDmaintenanceA learning-focused MCP server that demonstrates how to build arithmetic tools for AI assistants, currently featuring addition functionality with structured input/output.19 npmMIT
- FlicenseNot gradedqualityBmaintenanceA beginner-friendly MCP server offering time, math, internet quotes, dad jokes, file tools, web search, and optional LangChain agent.-
- FlicenseNot gradedqualityCmaintenanceA custom MCP server with 6 utility tools (file search, file reading, math calculation, JSON formatting, time query, system info) that demonstrates MCP protocol workflow and integrates with LangChain agents.-
- AlicenseNot gradedqualityCmaintenanceConfigurable MCP server that lets you define LLM-powered tools via JSON, enabling easy integration of multiple models (GPT, Gemini, Claude, etc.) as MCP tools without writing Python code.6MIT