使用说明
MCP网关工作区
概述
此存储库目前以 ai-mcp-gateway 项目:一个可配置的MCP网关,将后端HTTP功能作为LLM客户端的MCP工具公开。
在较高层次上,该项目位于MCP客户和下游服务之间:
MCP Client / LLM
-> MCP Gateway (this project)
-> Database-driven gateway/tool/protocol config
-> Downstream HTTP services
网关在北行侧使用MCP/JSON-RPC,在南行侧使用配置驱动的HTTP调用。 它不仅仅是一个本地硬编码的MCP服务器。其核心价值是协议适配:
- 基于会话的SSE通信
- JSON-RPC请求分派
- 动态的
tools/list从数据库映射生成 tools/call转换为下游HTTP请求- 网关级路由
gatewayId
仓库的规划
存储库当前包含:
ai-mcp-gateway/主要的多模块Spring Boot项目。NOTE.md更广泛的学习笔记和实施演练。data/开发过程中使用的本地数据相关文件。
ai-mcp-gateway 结构
ai-mcp-gateway 被组织为一个多模块Maven项目:
ai-mcp-gateway-api公共API合同,如IMcpGatewayService.ai-mcp-gateway-appSpring Boot引导模块和应用程序配置。ai-mcp-gateway-triggerHTTP控制器入口点。ai-mcp-gateway-case会话编排和基于节点的管道。ai-mcp-gateway-domainMCP协议对象、会话服务和消息处理程序。ai-mcp-gateway-infrastructureDAO、存储库适配器和下游HTTP调用适配器。ai-mcp-gateway-types共享枚举、常量和异常。
当前核心能力
截至目前的实施,主要项目已经形成了一个有意义的MCP网关框架:
initialize解析MCP初始化请求并返回网关感知服务器元数据。tools/list根据数据库映射记录动态构建工具模式。tools/call解析工具调用请求,查找下游协议配置,调用HTTP服务,并将结果包装回MCP响应格式。- SSE会话生命周期 支持会话创建、基于接收器的消息推送、心跳和清理。
主要运行时流程
北向运行时流为:
GET /{gatewayId}/mcp/sse
-> create session
-> return SSE stream
POST /{gatewayId}/mcp/sse?sessionId=...
-> accept JSON-RPC message
-> deserialize outer JSON-RPC envelope
-> dispatch by method
-> handle initialize / tools/list / tools/call / resources/list
-> push JSON-RPC response back through SSE sink
目前最重要的消息处理程序是:
InitializeHandlerToolsListHandlerToolsCallHandler
数据库模型
网关由四个主要表支持:
mcp_gateway网关标识和元数据。mcp_gateway_auth网关级身份验证信息。mcp_protocol_registry工具注册和下游HTTP协议配置。mcp_protocol_mapping用于构建工具模式的字段级MCP映射记录。
其中, mcp_protocol_mapping 是结构上最有趣的桌子。它使用以下方式存储一棵扁平的田间树:
parent_pathmcp_pathfield_namemcp_typeis_required
这允许项目重建嵌套的JSON模式 tools/list.
本地开发
MySQL
- 通过以下方式启动MySQL
ai-mcp-gateway/docs/dev-ops/docker-compose-environment.yml - 使用以下方式初始化架构:
ai-mcp-gateway/docs/dev-ops/mysql/sql/ai_mcp_gateway.sql- 或分支对齐备份SQL
ai-mcp-gateway/docs/dev-ops/bak/
应用
- Spring Boot的入口点是
ai-mcp-gateway/ai-mcp-gateway-app/src/main/java/com/makiatox/ai/Application.java - 控制器入口点为
McpGatewayController - 会话消息分派发生在
SessionMessageService
测试模式
有两个有用的测试级别:
- 项目内部测试 当前项目中的测试处理程序、存储库和协议程序集。
- 端到端MCP测试 使用外部演示客户端和下游演示HTTP服务来验证整个链:
Demo ApiTest
-> ai-mcp-gateway
-> downstream demo HTTP server
-> ai-mcp-gateway
-> Demo ApiTest
文档指针
- 根水平
NOTE.md更广泛的实施说明。 ai-mcp-gateway/README.md详细的分阶段说明以及项目特定摘要。ai-mcp-gateway/docs/dev-ops/SQL、Docker Compose和应用程序脚本。
项目定位
描述这个项目的最佳方式是:
配置驱动的MCP网关,暴露MCP北向并适应HTTP南向。
从客户端的角度来看,它看起来像一个MCP服务器。 从实现的角度来看,它的行为很像传统的API网关/协议适配器层,MCP作为其外部契约。
