DIY MCP
A from-scratch implementation of the Model Context Protocol (MCP) for building servers and clients, using a Chinese tea collection as an example.
DIY MCP
A simple from-scratch implementation of the Model Context Protocol (MCP) for building MCP servers and clients using stdio. This example uses a simple Chinese tea collection with descriptions, origins, etc.
For production applications, check out the official MCP SDKs.
Project Structure
mcp/
├── server/ # MCP server for Chinese tea information
│ └── src/
│ ├── index.ts
│ ├── stdio.ts
│ └── teas.json
└── client/ # MCP client CLI with Claude as LLM
└── src/
├── index.ts
└── llm.ts
MCP Server
The core of this implementation is a lightweight MCP server. It offers the following resources and tools:
- Resources:
tea://teas: List of all available teastea://teas/{slug}: Details of a specific tea
- Tools:
getTeasByType: Get all teas of a specific typegetTeasByRegion: Get all teas from a specific province or region
Setup
cd server
npm install
npm run build
Running
You can test the MCP server with MCP Inspector, an interactive tool for testing and debugging MCP servers.
cd server
npm run inspector
MCP Client
You can interact with the MCP server through an MCP client like Claude Desktop, alternatively, you can use the included DIY MCP client. By adding your Anthropic API key, you can have Claude intelligently determine which tools to use based on your prompt.
The client provides three interaction modes:
- Ask LLM: Let Claude interact with the MCP server
- Get a resource: Directly access MCP server resources
- Use a tool: Directly call MCP server tools
Setup
cd client
npm install
To use Claude, first copy the example environment file and add your Anthropic API key with available credits to the ANTHROPIC_API_KEY variable:
cp .env.example .env
Running
The client will automatically start the MCP server, so ensure you've built it first.
cd server
npm run build
cd client
npm start
Usage
Once running, you can interact with the MCP server through the MCP client CLI. Try asking the LLM some questions about Chinese tea:
- "What teas do you know about?"
- "Which teas come from Fujian?"
- "What is your favorite green tea?"
Resources
相关服务器
Scout Monitoring MCP
赞助Put performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
赞助Access financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
LangSmith MCP Server
An MCP server for fetching conversation history and prompts from the LangSmith observability platform.
MCP Server with GitHub OAuth
An MCP server with built-in GitHub OAuth support, designed for deployment on Cloudflare Workers.
Flowbite MCP
This MCP server is the official tool that allows you to work with the Flowbite UI framework and generate websites, layouts, and themes using AI
Markdown Navigation MCP
An MCP server that provides efficient navigation and reading of large markdown files using ctags to reduce context usage
即梦AI多模态MCP
A multimodal generation service using Volcengine Jimeng AI for image generation, video generation, and image-to-video conversion.
DiffuGen
Generate images from text using Flux and Stable Diffusion models.
Claude Code Exporter
Export and organize Claude Code conversations with powerful filtering. Supports CLI and MCP server integration for Claude Desktop.
ndlovu-code-reviewer
Manual code reviews are time-consuming and often miss the opportunity to combine static analysis with contextual, human-friendly feedback. This project was created to experiment with MCP tooling that gives AI assistants access to a purpose-built reviewer. Uses the Gemini cli application to process the reviews at this time and linting only for typescript/javascript apps at the moment. Will add API based calls to LLM's in the future and expand linting abilities. It's also cheaper than using coderabbit ;)
JSON MCP
MCP server empowers LLMs to interact with JSON files efficiently. With JSON MCP, you can split, merge, etc.
Manual Tests MCP Server
A YAML-based server for managing manual test cases with tools for test automation workflows.