MCP 만들면서 원리 파헤쳐보기
@SeolYoungKim
Server and client implementation for MCP (Master Control Program)
Overview
What is MCP 만들면서 원리 파헤쳐보기?
A project that explores the principles of the Model Context Protocol (MCP) by building an MCP server. It implements server-side services that an LLM client like Claude Desktop can invoke as tools, targeting developers who want to understand or create MCP servers.
How to use MCP 만들면서 원리 파헤쳐보기?
Add the server configuration to Claude Desktop's claude_desktop_config.json file with a command (e.g., java) and args (e.g., -jar followed by the absolute path to the JAR file). When Claude Desktop restarts, the server appears as running, and the LLM can invoke its tools.
Key features of MCP 만들면서 원리 파헤쳐보기
- Demonstrates MCP server creation from scratch
- Connects with Claude Desktop as the MCP client
- Uses a
@Toolannotation with a description for tool registration - Supports JDK 17 (JDK 21 may cause errors)
- Written in Korean with practical examples
Use cases of MCP 만들면서 원리 파헤쳐보기
- Learning how MCP servers communicate with LLM clients
- Building a custom weather information tool invoked via natural language
- Understanding configuration and deployment of MCP servers in Claude Desktop
- Experimenting with services that an LLM can call dynamically
FAQ from MCP 만들면서 원리 파헤쳐보기
What is the difference between MCP Client and MCP Server?
The MCP Client communicates with the LLM and the MCP server (e.g., Claude Desktop); implementing one is rare. The MCP Server implements the services to provide, and developers are more likely to build servers than clients.
What are the runtime requirements?
JDK 17 is supported. JDK 21 caused errors during execution with Claude Desktop using the MCP server, though standalone execution may work.
How do I configure it with Claude Desktop?
Edit claude_desktop_config.json to add a command (e.g., java) and an args array containing the necessary options and the absolute path to the JAR file.
How does the LLM discover and use the tools?
The tool's description (e.g., "Get the current weather information by city name.") informs the LLM when to invoke it. A user request like "tell me the weather in Suwon" triggers the MCP server to execute the script and return the response.