Token导航 LogoToken导航TokenDH.com
MCP Chat Query logo
运维云端未说明官方级别未说明来源级核验

MCP Chat Query

MCP Server

一个基于Express.js和Next.js的生产就绪实现,展示LLM代理如何通过标准化协议与外部工具交互。

工具数

3

提示词数

0

GitHub Stars

0

资源数

0
LLM代理API集成JavaScriptMongoDB

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

putupadang

提供方

putupadang

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

🚀 MCP聊天查询-模型上下文协议演示

![CI/CD Pipeline](https://github.com/YOUR_USERNAME/mcp-portfolio/actions/workflows/ci.yml) ![License: MIT](https://opensource.org/licenses/MIT)

生产就绪的实施 模型上下文协议(MCP) 配备Express.js服务器和Next.js前端。该项目演示了LLM代理如何通过标准化协议与外部工具进行交互。

📺 演示

  • 现场演示:\[您的Vercel网址\]
  • API文档:\[您的服务器URL\]/api文档
  • 演示视频:\[您的YouTube/Drive链接\]

MCP Demo Screenshot

✨ 特性

MCP服务器(Express.js)

  • 工具注册表:使用JSON模式验证的动态工具注册
  • OpenAPI规范:交互式Swagger UI文档
  • 认证:带有RBAC的基于API密钥的身份验证(基于角色的访问控制)
  • 速率限制:可配置的请求限制
  • 审计日志:完成工具调用跟踪
  • 结构化日志记录:使用Pino进行生产准备测井
  • 数据库:Prisma ORM+MongoDB(默认为本地)
  • 综合测试:单元和集成测试,覆盖率超过70%
  • Docker支持:生产就绪的集装箱化

前端(Next.js)

  • 交互式聊天界面:美观、反应灵敏的聊天界面
  • 工具可视化:实时显示工具调用和结果
  • 现代设计:Tailwind CSS+shadcn/ui组件
  • 类型安全:完全支持TypeScript
  • 服务器端API路由:安全的API密钥管理

开发运维

  • Docker Compose:多容器编排
  • GitHub 操作:自动化CI/CD管道
  • 容器注册表:自动构建Docker镜像
  • 健康检查:服务监控和自动重启

🏗️ 建筑

┌─────────────────┐         ┌─────────────────┐         ┌─────────────────┐
│   Next.js App   │────────▶│  MCP Server     │────────▶│  Tool Handlers  │
│  (Frontend UI)  │  HTTP   │  (Express.js)   │         │  (Business Logic)│
└─────────────────┘         └─────────────────┘         └─────────────────┘
        │                            │                           │
        │                            ▼                           ▼
        │                    ┌──────────────┐          ┌────────────────┐
        │                    │   Validator  │          │   MongoDB       │
        │                    │  (AJV+Schema)│          │   (Prisma)      │
        └───────────────────▶└──────────────┘          └────────────────┘
               API Routes            │
                                     ▼
                             ┌──────────────┐
                             │  Audit Log   │
                             │  (Memory)    │
                             └──────────────┘

🚀 快速开始

先决条件

  • Node.js 18+
  • npm或纱线
  • Docker和Docker Compose(可选)
  • MongoDB 6+(本地)或Docker(用于数据库)

选项1:本地运行

  1. 克隆仓库
git clone https://github.com/YOUR_USERNAME/mcp-portfolio.git
cd mcp-portfolio
  1. 启动MCP服务器
cd server
npm install
cp .env.example .env
# Edit .env with your API key (APP_API_KEY)
# Ensure MongoDB is running locally:
#   - Docker:        docker compose up -d mongo
#   - Homebrew (mac): brew services start mongodb-community

# Initialize database (Prisma + MongoDB)
npm run prisma:generate
npm run prisma:push
npm run prisma:seed

# Start development server
npm run dev
# Server running on http://localhost:4000
  1. 启动Next.js应用程序 (在新航站楼)
cd app
npm install
cp .env.local.example .env.local
# Edit .env.local with server URL and API key
npm run dev
# App running on http://localhost:3000
  1. 访问应用程序
  • 前端:http://localhost:3000
  • API文件:http://localhost:4000/api-docs
  • 健康:http://localhost:4000/admin/health

选项2:使用Docker运行

docker compose中包含MongoDB服务;无需安装本地MongoDB。

# Set API key
export APP_API_KEY=your-secret-key

# Start all services
docker-compose up -d

# View logs
docker-compose logs -f

# Stop services
docker-compose down

📚 API文档

可用工具

1. search_db -搜索产品数据库(MongoDB+Prisma)

{
  "tool": "search_db",
  "input": {
    "q": "laptop",
    "category": "Electronics",
    "limit": 5
  }
}

2. 创建_票 -创建支持票(MongoDB)

{
  "tool": "create_ticket",
  "input": {
    "title": "Login Issue",
    "body": "Cannot login to my account",
    "priority": "high"
  }
}

3. run_query -执行数据库查询(仅限管理员,模拟)

{
  "tool": "run_query",
  "input": {
    "query": "SELECT * FROM products LIMIT 5"
  }
}

核心终点

方法端点描述需要身份验证
得到/tools列出所有可用工具
职位/invoke调用特定工具
职位/agent/ask向代理发送消息
得到/admin/health健康检查
得到/admin/audit获取审核日志
得到/api-docsSwagger用户界面

认证

所有受保护的终结点都需要标头中的API密钥:

curl -H "x-api-key: your-api-key" http://localhost:4000/tools

🧪 测试

运行服务器测试

cd server
npm test              # Run all tests
npm run test:watch    # Watch mode
npm run test:coverage # With coverage

测试覆盖率

当前覆盖范围: 70%+ (分支、函数、行、语句)

🔒 安全特性

  • API密钥验证:安全的端点访问
  • 基于角色的访问控制:基于角色的工具权限(管理员、用户)
  • 速率限制:防止滥用(默认100个要求/分钟)
  • 输入验证:使用AJV进行JSON模式验证
  • 审计日志:跟踪所有工具调用
  • Helmet.js:安全标题
  • 跨域资源共享:可配置的来源白名单
  • 危险操作检测:防止破坏性查询

📊 演出

  • 工具执行:平均约100-200ms
  • 速率限制:100个请求/分钟(可配置)
  • 内存使用:每次服务约50MB
  • 并发请求:处理100+并发

🛠️ 技术栈

后端

  • Express.js -Web框架
  • 阿联酋 -JSON模式验证器
  • 皮诺 -结构化日志记录
  • Swagger用户界面 -API文件
  • 棱镜 -用于MongoDB的ORM/客户端
  • MongoDB -文档数据库
  • 测试 -测试框架

前端

  • Next.js 14 -React框架
  • TypeScript -类型安全
  • 尾风CSS -造型
  • Lucide图标 -图标库

开发运维

  • 码头工人 -集装箱化
  • GitHub 操作 -CI/CD
  • Docker Compose -编排

📁 项目结构

mcp-portfolio/
├── server/                 # Express.js MCP server
│   ├── src/
│   │   ├── config/        # Configuration
│   │   ├── middleware/    # Auth, audit, permissions
│   │   ├── routes/        # API routes
│   │   ├── tools/         # Tool registry & handlers
│   │   ├── validators/    # Schema validators
│   │   ├── db/            # Prisma client
│   │   └── index.js       # Entry point
│   ├── prisma/            # Prisma schema & seed
│   ├── __tests__/         # Test suites
│   ├── Dockerfile
│   └── package.json
│
├── app/                    # Next.js frontend
│   ├── app/
│   │   ├── api/chat/      # API routes
│   │   ├── globals.css    # Global styles
│   │   ├── layout.tsx     # Root layout
│   │   └── page.tsx       # Home page
│   ├── components/        # React components
│   ├── lib/               # Utilities
│   ├── Dockerfile
│   └── package.json
│
├── .github/
│   ├── workflows/         # CI/CD pipelines
│   └── ISSUE_TEMPLATE/    # Issue templates
│
├── docs/                   # Documentation
├── docker-compose.yml
├── LICENSE
└── README.md

🎯 路线图

  • \[\]添加真正的LLM集成(OpenAI/Anthropic)
  • \[\]实现RAG的矢量存储
  • \[\]添加多步骤工具链
  • \[\]实现工具结果缓存
  • \[\]添加Kubernetes清单
  • \[\]创建性能基准
  • \[\]使用Playwright添加E2E测试
  • \[\]实现WebSocket以实现实时更新
  • \[\]添加更多工具示例(电子邮件、日历等)
  • \[\]创建全面的视频教程

🤝 贡献

欢迎投稿!请查看我们的 贡献指南.

  1. 复刻仓库
  2. 创建功能分支(git checkout -b feature/AmazingFeature)
  3. 提交您的更改(git commit -m 'feat: add amazing feature')
  4. 推到分支(git push origin feature/AmazingFeature)
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

  • 受模型上下文协议规范的启发
  • 采用现代最佳实践构建
  • 社区反馈和贡献

📧 联系

你的名字- @你的推特

项目链接:

______________________________________________________________________

标记此回购 如果你觉得有帮助的话!

内置于❤️ \[你的名字\]

目录标签

目录标签

LLM代理API集成JavaScriptMongoDB本地部署工具集成API服务JSONSchema验证

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明api-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP