MCP协议实现

一个基于Model Context Protocol (MCP)的简单实现,用于构建MCP服务器和客户端,提供中国茶叶信息的查询和管理功能。

  • by mwpryer
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 mwpryer/diy-mcp

使用说明

DIY MCP

用于构建MCP服务器和客户端的模型上下文协议(MCP)的简单从头开始实现 标准输入输出这个例子使用了一个简单的中国茶集,包括描述、起源等。

对于生产应用程序,请查看官方 MCP SDK.

项目结构

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服务器

这个实现的核心是一个轻量级的MCP服务器。它提供以下资源和工具:

  • 资源:
    • tea://teas:所有可用茶的列表
    • tea://teas/{slug}:特定茶的详细信息
  • 工具:
    • getTeasByType:购买特定类型的所有茶
    • getTeasByRegion:从特定省份或地区购买所有茶

设置

cd server
npm install
npm run build

跑步

您可以使用以下命令测试MCP服务器 MCP检查员,一个用于测试和调试MCP服务器的交互式工具。

cd server
npm run inspector

MCP客户端

您可以通过像Claude Desktop这样的MCP客户端与MCP服务器交互,或者,您也可以使用附带的DIY MCP客户端。通过添加Anthropic API密钥,您可以让Claude根据提示智能地确定要使用哪些工具。

客户端提供三种交互模式:

  • 问LLM:让Claude与MCP服务器交互
  • 获取资源:直接访问MCP服务器资源
  • 使用某种工具:直接调用MCP服务器工具

设置

cd client
npm install

若要使用Claude,请首先复制示例环境文件,然后将具有可用信用的Anthropic API密钥添加到 ANTHROPIC_API_KEY 变量:

cp .env.example .env

跑步

客户端将自动启动MCP服务器,因此请确保您首先构建了它。

cd server
npm run build
cd client
npm start

用法

运行后,您可以通过MCP客户端CLI与MCP服务器交互。试着问法学硕士一些关于中国茶的问题:

  1. “你知道什么茶?”
  2. “哪些茶来自福建?”
  3. “你最喜欢的绿茶是什么?”

资源