使用说明
Hello MCP服务器-通过示例学习MCP
通过实践探索学习模型上下文协议(MCP)的最佳方法。 这不仅仅是一个可用的MCP服务器,它是一个交互式教程,通过广泛注释的真实代码教你MCP概念。
🎓 为什么存在此存储库
学习MCP可能会因为抽象概念和分散的文档而感到不知所措。此存储库采用了不同的方法:
- 通过阅读学习:每一行代码都进行了广泛的注释,以解释两者 什么 确实如此,而且 为什么
- 通过测试学习:使用MCP检查器与真实的工具、资源和提示进行交互
- 通过修改学习:从工作示例开始,然后进行实验并构建自己的功能
- 从建筑中学习:了解从设置到部署的完整MCP服务器架构
非常适合通过实际例子而不是理论文档学习的开发人员。
📚 学习路径:从这里开始!
🚀 第一步:核心MCP理解
以…开始 src/index.ts -这是你的学习金矿!该文件包括:
- 明确解释MCP是什么以及为什么它很重要
- 三个核心MCP原语: 工具, 资源,以及 鼓励
- Claude如何与MCP服务器通信
- 每个概念的工作示例,并附有详细注释
- 您可以测试的真实请求/响应模式
然后阅读 README.md (此文件) 从大局和实际使用来看。
🔧 第二步:项目配置
学习 TSCONFIG_EXPLAINED.md -了解为什么每个TypeScript设置对MCP开发都很重要,用初学者友好的术语解释。
审查 package.json -了解基本的MCP依赖关系和构建过程。
🧪 第三步:动手实验
- 设置和测试 (见下面的安装部分)
- 使用MCP检查器 与服务器交互
- 修改代码 -更改问候语、添加参数、创建新工具
- 构建自己的功能 使用你学到的模式
💡 你将学到什么
此存储库演示了所有基本的MCP概念:
工具 -克劳德可以调用的函数
// Example: A greeting tool that accepts parameters and returns results
{
name: "say_hello",
description: "Says hello to the specified person",
inputSchema: {
type: "object",
properties: {
name: { type: "string", description: "The name to greet" }
}
}
}
资源 -克劳德可以读取的数据
// Example: Server information that updates in real-time
{
uri: "mcp://server-info",
name: "Server Information",
description: "Current server status and statistics"
}
鼓励 -克劳德指南模板
// Example: Customizable greeting templates
{
name: "greeting-generator",
description: "Generate greetings based on tone and context",
arguments: [
{ name: "tone", description: "formal, casual, friendly" },
{ name: "context", description: "meeting, email, introduction" }
]
}
🛠️ 安装和设置
先决条件
- Node.js 18.0或更高版本
- npm或yarn包管理器
- 基本的TypeScript知识(有用但不是必需的)
快速开始
# Clone and setup
git clone https://github.com/YOUR_USERNAME/hello-mcp-server.git
cd hello-mcp-server
npm install
# Build the project
npm run build
# Test with MCP Inspector
npx @modelcontextprotocol/inspector node build/index.js
发展模式
# Auto-rebuild on changes
npm run dev
# Run the compiled server
npm start
🧪 使用MCP检查器进行交互式测试
MCP Inspector是您最好的学习伙伴。它提供了一个web界面来测试您的服务器:
-
发射检查器:
npx @modelcontextprotocol/inspector node build/index.js -
测试每个图元:
- 工具:试试
say_hello具有不同名称的工具 - 资源:阅读
server-info查看实时数据的资源 - 鼓励:使用
greeting-generator具有各种音调和语境
- 工具:试试
-
观察沟通:查看Claude和您的服务器之间的实际JSON-RPC消息
📖 API详细参考
工具
say_hello
演示具有参数验证和响应格式的基本工具实现。
输入架构:
{
"name": "string" // Required - The name of the person to greet
}
示例用法:
{
"name": "Alice"
}
响应:
{
"content": [
{
"type": "text",
"text": "Hello, Alice! Welcome to my MCP server!"
}
]
}
资源
server-info (mcp://server-info)
演示如何使用实时数据动态生成资源。
响应:纯文本,包含服务器统计信息、正常运行时间、系统信息和功能。
鼓励
greeting-generator
演示如何使用参数创建灵活的提示模板。
参数:
tone(必填):问候的语气(正式、随意、友好等)context(必填):问候语的使用背景(会议、电子邮件等)
🎯 学习练习
初学者练习
- 修改问候语:更改
say_hello响应消息 - 添加参数:添加可选
language参数到say_hello - 创建一个简单的工具:构建一个
get_time返回当前时间的工具
中级练习
- 添加新资源:创建一个
system-stats具有内存和CPU信息的资源 - 构建计算工具:创建一个
calculator具有基本数学运算的工具 - 延长提示:向添加更多参数
greeting-generator
高级练习
- 文件系统集成:创建可以安全读/写文件的工具
- API集成:构建调用外部API的工具
- 国家管理:创建在调用之间维护状态的工具
📁 项目结构
hello-mcp-server/
├── src/
│ └── index.ts # 🎓 Main learning resource - extensively commented MCP implementation
├── build/ # ⚙️ Compiled JavaScript output
├── TSCONFIG_EXPLAINED.md # 📚 TypeScript configuration tutorial
├── GITHUB_SETUP.md # 🚀 Publishing guide
├── CONTRIBUTING.md # 🤝 Contribution guidelines
├── package.json # 📦 Dependencies and scripts (with educational comments)
├── tsconfig.json # ⚙️ TypeScript configuration
└── README.md # 📖 This learning guide
🎓 教育哲学
该项目遵循以下原则 最好的学习方法是通过实例:
- 注释解释上下文:不仅是代码的作用,还有MCP为什么这样工作
- 渐进复杂性:从简单开始,然后探索高级模式
- 现实世界模式:学习你将在生产中实际使用的实践
- 互动式教学法:测试和修改,而不仅仅是阅读
🤝 为学习做出贡献
帮助使其成为更好的学习资源:
- 改进评论:为初学者提供更清晰的解释
- 添加示例:贡献具有教育价值的新工具、资源或提示
- 共享用例:记录你如何将其扩展到实际项目中
- 解决问题:通过改进错误信息和文档来帮助其他学习者
看 贡献.md 作为指导方针。
🔮 学习后的后续步骤
一旦你理解了这些模式:
- 构建真正的工具:为您的特定用例创建MCP服务器
- 探索生态系统:查看其他MCP服务器和工具
- 加入社区:分享你的创作并向他人学习
- 回馈:帮助改进MCP文档和工具
🌟 成功案例
你用这个知识库学习过MCP吗?通过打开一个问题或讨论来分享你的故事!
📞 学习支持
- 问题: GitHub讨论
- 问题: GitHub问题
- MCP文件: 模型上下文协议.io
- 社区:加入MCP社区,进行更广泛的讨论
📄 许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- 模型上下文协议 创建卓越标准的团队
- TypeScript和Node.js社区提供优秀的工具
- 通过教育为使MCP更容易获得做出贡献的每个人
准备好学习MCP了吗? 从开始 src/index.ts 让注释代码成为您的指南! 🚀