AI工具集成协议

Model Context Protocol (MCP) 是一个标准化的协议,用于AI应用程序访问外部数据和工具,通过JSON-RPC实现客户端与服务器之间的通信,适用于需要AI模型与数据库、API等资源交互的场景。

  • by AneshSM
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 aneshsm/mcp-server_client

使用说明

MCP服务器和客户端集成

该存储库使用Node.js和TypeScript实现了模型上下文协议(MCP)服务器和客户端,演示了如何通过结构化工具访问和数据集成创建支持AI的应用程序。

🎯 什么是模型上下文协议(MCP)?

  • 标准化协议 用于AI应用程序访问外部数据和工具
  • 基于JSON-RPC 客户端和服务器之间的通信
  • 启用AI模型 与数据库、API和其他资源交互
  • 安全且结构化 扩展人工智能能力的方法

🏗️ 项目结构

mcp-server_client/
├── src/
│   ├── server.ts          # MCP Server implementation
│   ├── client.ts          # MCP Client with AI integration
│   └── data/
│       └── users.json     # Sample data storage
├── build/                 # Compiled JavaScript output
├── package.json          # Dependencies and scripts
├── tsconfig.json         # TypeScript configuration
└── MCP_Integration_Presentation.md  # Detailed presentation

🔧 技术栈

核心依赖关系

  • @模型上下文协议/sdk -官方MCP SDK
  • TypeScript -类型安全和现代JavaScript
  • Node.js -带有ES模块的运行时环境
  • 萨德 -工具参数的模式验证

人工智能集成

  • @ai sdk/谷歌 -谷歌Gemini AI集成
  • 人工智能 -用于工具执行的AI SDK
  • @询问者/提示 -交互式CLI提示
  • 多伦多证券交易所 -TypeScript的开发运行时

🚀 快速开始

1.安装

npm install

2.环境设置

创建一个 .env 使用API密钥文件:

GEMINI_API_KEY=your_gemini_api_key_here

3.开发工作流程

# Build TypeScript
npm run build

# Run server in development mode
npm run server:dev

# Run client (in another terminal)
npm run client:dev

# Debug with MCP inspector
npm run server:inspect

📡 可用功能

🛠️ 工具

  • 例子 -用于测试MCP功能的回声工具
  • 创建用户 -通过验证创建新用户
  • 创建随机用户 -在人工智能的帮助下生成用户

📚 资源

  • users://all -从数据库中检索所有用户
  • 用户://{userId}/profile -获取特定用户详细信息

💭 提示

  • 生成虚拟用户 -用户配置文件生成的AI提示

🔄 运作原理

服务器客户端流

User Input → Client → AI Model → Tool Selection → MCP Server → Data Storage
     ↑                                                            ↓
Response ← Client ← AI Processing ← Tool Response ← MCP Server ← Data Retrieval

交互示例

  1. 用户:“创建一个名为John Doe的用户”
  2. 客户端向Gemini AI发送查询
  3. AI选择 create-user 工具
  4. MCP服务器验证并存储用户数据
  5. 响应返回给用户

🛠️ 可用脚本

  • npm run build -将TypeScript编译为JavaScript
  • npm run build:watch -观看模式编译
  • npm run server:dev -使用自动重新加载启动开发服务器
  • npm run server:inspect -使用MCP检查器启动服务器
  • npm run client:dev -运行交互式客户端
  • npm run client:start -运行已编译的客户端

🔍 开发工具

MCP检查员

检查员为以下内容提供了一个web界面:

  • 交互式工具测试
  • JSON-RPC消息检查
  • 协议合规性验证
  • 实时调试

访问方式: npm run server:inspect

客户端接口

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

  • 查询 -自然语言AI驱动的查询
  • 工具 -通过参数输入直接执行工具
  • 资源 -数据访问和检索
  • 提示 -AI提示生成和执行

🎯 Claude桌面集成

配置Claude Desktop以使用您的MCP服务器:

// %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-server": {
      "command": "node",
      "args": ["C:\\path\\to\\your\\project\\build\\server.js"]
    }
  }
}

🛡️ 安全与最佳实践

  • ✅ 输入验证 使用Zod模式
  • ✅ 错误处理 具有全面的try-catch块
  • ✅ 类型安全性 在整个应用程序中
  • ✅ API密钥管理 有环境变量
  • ✅ 结构化日志记录 (stderr用于日志,stdout用于协议)

📚 主要特点

人工智能驱动的操作

  • 自然语言到工具执行
  • 上下文感知响应
  • 多步推理能力

类型安全开发

  • 完全集成TypeScript
  • 所有输入的模式验证
  • 编译时错误检查

可扩展架构

  • 轻松添加新工具
  • 灵活的资源定义
  • 模块化提示系统

🔮 扩展示例

轻松添加新工具:

server.tool(
  "custom-tool",
  "Description of your tool",
  {
    param: z.string().describe("Parameter description"),
  },
  async ({ param }) => {
    // Your tool logic here
    return { content: [{ type: "text", text: "Result" }] };
  }
);

📖 文档

有关包括架构细节、高级功能和集成模式的全面指南,请参阅:

🔗 资源

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 添加您的增强功能
  4. 与MCP检查员一起测试
  5. 提交拉取请求

📄 许可证

ISC许可证-详见package.json


使用模型上下文协议构建