使用说明
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
交互示例
- 用户:“创建一个名为John Doe的用户”
- 客户端向Gemini AI发送查询
- AI选择
create-user工具 - MCP服务器验证并存储用户数据
- 响应返回给用户
🛠️ 可用脚本
npm run build-将TypeScript编译为JavaScriptnpm 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" }] };
}
);
📖 文档
有关包括架构细节、高级功能和集成模式的全面指南,请参阅:
- MCP集成演示 -完整的技术演示
🔗 资源
🤝 贡献
- 分叉存储库
- 创建要素分支
- 添加您的增强功能
- 与MCP检查员一起测试
- 提交拉取请求
📄 许可证
ISC许可证-详见package.json
使用模型上下文协议构建
