MCP协议学习服务器

一个通过实际代码示例学习Model Context Protocol (MCP)的交互式教程服务器,提供工具、资源和提示的详细实现与注释。

  • by frankiewarren
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 frankiewarren/hello-mcp-server

使用说明

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依赖关系和构建过程。

🧪 第三步:动手实验

  1. 设置和测试 (见下面的安装部分)
  2. 使用MCP检查器 与服务器交互
  3. 修改代码 -更改问候语、添加参数、创建新工具
  4. 构建自己的功能 使用你学到的模式

💡 你将学到什么

此存储库演示了所有基本的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界面来测试您的服务器:

  1. 发射检查器:

    npx @modelcontextprotocol/inspector node build/index.js
    
  2. 测试每个图元:

    • 工具:试试 say_hello 具有不同名称的工具
    • 资源:阅读 server-info 查看实时数据的资源
    • 鼓励:使用 greeting-generator 具有各种音调和语境
  3. 观察沟通:查看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 (必填):问候语的使用背景(会议、电子邮件等)

🎯 学习练习

初学者练习

  1. 修改问候语:更改 say_hello 响应消息
  2. 添加参数:添加可选 language 参数到 say_hello
  3. 创建一个简单的工具:构建一个 get_time 返回当前时间的工具

中级练习

  1. 添加新资源:创建一个 system-stats 具有内存和CPU信息的资源
  2. 构建计算工具:创建一个 calculator 具有基本数学运算的工具
  3. 延长提示:向添加更多参数 greeting-generator

高级练习

  1. 文件系统集成:创建可以安全读/写文件的工具
  2. API集成:构建调用外部API的工具
  3. 国家管理:创建在调用之间维护状态的工具

📁 项目结构

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 作为指导方针。

🔮 学习后的后续步骤

一旦你理解了这些模式:

  1. 构建真正的工具:为您的特定用例创建MCP服务器
  2. 探索生态系统:查看其他MCP服务器和工具
  3. 加入社区:分享你的创作并向他人学习
  4. 回馈:帮助改进MCP文档和工具

🌟 成功案例

你用这个知识库学习过MCP吗?通过打开一个问题或讨论来分享你的故事!

📞 学习支持

📄 许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

🙏 致谢

  • 模型上下文协议 创建卓越标准的团队
  • TypeScript和Node.js社区提供优秀的工具
  • 通过教育为使MCP更容易获得做出贡献的每个人

准备好学习MCP了吗? 从开始 src/index.ts 让注释代码成为您的指南! 🚀