MCP服务器演示

一个基于TypeScript的Model Context Protocol (MCP)服务器演示项目,用于实现AI助手访问外部数据源和工具的基本功能。

  • by gogouravr
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 gogouravr/fast-mcp

使用说明

FastMCP演示-TypeScript MCP服务器

一个使用TypeScript理解模型上下文协议(MCP)的演示项目。此项目使用工具、资源和提示实现了一个基本的MCP服务器。

什么是MCP?

模型上下文协议(MCP)是一种标准化协议,使AI助手能够安全地访问外部数据源和工具。它为AI模型提供了一种方法:

  • 工具:执行功能和操作
  • 资源:访问数据和信息
  • 提示词:使用预定义的提示模板

项目结构

fast-mcp/
├── src/
│   └── index.ts          # Main MCP server implementation
├── dist/                 # Compiled JavaScript (generated)
├── package.json          # Project dependencies
├── tsconfig.json         # TypeScript configuration
└── README.md            # This file

特性

此演示服务器包括:

工具

  • 你好:欢迎用户的简单问候工具
  • 计算:执行基本算术运算(加、减、乘、除)

资源

  • demo://example:一个简单的文本资源
  • demo://config:JSON格式的服务器配置

提示词

  • greet_user:为用户生成问候消息
  • 解释-mcp:解释什么是MCP

设置

  1. 安装依赖项:

    npm install
    
  2. 构建项目:

    npm run build
    
  3. 运行服务器:

    npm start
    

    或者使用自动重新加载的开发模式:

    npm run dev
    

MCP的工作原理

服务器初始化

服务器创建时具有工具、资源和提示功能:

const server = new Server(
  { name: "fast-mcp-demo", version: "0.1.0" },
  {
    capabilities: {
      tools: {},
      resources: {},
      prompts: {},
    },
  }
);

运输

此服务器使用 标准 (标准输入/输出)传输,这意味着它通过stdin/stdout进行通信。这是MCP服务器最常见的传输方式。

请求处理程序

每个功能都需要请求处理程序:

  • ListToolsRequestSchema -列出可用工具
  • CallToolRequestSchema -执行工具
  • ListResourcesRequestSchema -列出可用资源
  • ReadResourceRequestSchema -读取资源
  • ListPromptsRequestSchema -列出可用提示
  • GetPromptRequestSchema -获取带有参数的提示

使用MCP客户端进行测试

要测试此服务器,您需要一个MCP客户端。热门选项包括:

  1. 克劳德桌面 -将服务器添加到MCP配置中
  2. MCP检查员 -MCP服务器的调试工具
  3. 自定义MCP客户端 -使用MCP SDK构建自己的

示例配置(克劳德桌面)

添加到您的Claude Desktop MCP设置中:

{
  "mcpServers": {
    "fast-mcp-demo": {
      "command": "node",
      "args": ["/path/to/fast-mcp/dist/index.js"]
    }
  }
}

学习路径

该项目是逐步构建的,以了解MCP概念:

  1. ✅ 初始设置 -TypeScript配置和依赖关系
  2. ✅ 基本服务器 -带有hello工具的简单服务器
  3. ✅ 资源 -增加了资源读取功能
  4. ✅ 提示词 -添加提示模板
  5. ✅ 高级工具 -添加了具有错误处理功能的计算工具

关键概念

工具

工具是AI可以调用的功能。他们有:

  • 名称和描述
  • 输入模式(JSON模式)
  • 返回结果的执行逻辑

资源

资源是可以读取的数据源。他们有:

  • URI标识符
  • 名称和描述
  • MIME类型
  • 可检索的内容

提示词

提示是可用于指导AI交互的模板消息。他们有:

  • 名称和描述
  • 可选参数
  • 消息模板

后续步骤

要扩展此演示,请考虑:

  • 添加文件系统资源
  • 实施身份验证
  • 添加更复杂的工具(API调用、数据库查询)
  • 使用不同的传输方式(SSE、HTTP)
  • 添加日志记录和错误处理中间件
  • 实现资源缓存

资源

许可证

麻省理工学院