辛迪人工智能mcp服务器
Anthropic模型上下文协议(MCP)服务器的Java实现。
此实现旨在以无缝的方式提供MCP协议和Jakarta EE应用程序之间的集成。
🏗️ 建筑
该项目分为几个模块,每个模块都有特定的用途:
核心模块
sindi-ai-mcp-server-spi:基本的服务器端MCP类、接口、注释和SPI定义sindi-ai-mcp-server-runtime:SPI的运行时实现,用于运行时服务器注册和服务发现。sindi-ai-mcp-server-features:生产就绪的MCP功能,通过一些例子展示了MCP的强大功能,即Jakarta EE方式。
有2个运行时实现:
runtime-rest:此模块包含RESTful MCP服务器端传输与Jakarta REST的实现。
- sindi-ai-mcp-server-runtime-rest-base:下面提到的所有Jakarta REST实现使用的Jakarta REST基本包。 - sindi-ai-mcp-server-runtime-rest-sse:MCP SSE传输的雅加达REST实现。 - sindi-ai-mcp-server-runtime-rest-streamable-http:MCP Streamable HTTP传输的Jakarta REST实现。
runtime-servlet:此模块包含使用Jakarta Servlet实现基于web的MCP服务器端传输。
- sindi-ai-mcp-server-runtime-servlet-sse:MCP SSE传输的Jakarta Servlet实现。 - sindi-ai-mcp-server-runtime-servlet-streamable-http:MCP流式HTTP传输的Jakarta Servlet实现。
🚀 快速开始
1.添加依赖项
您需要在应用程序中选择Servlet或REST运行时(但不能同时选择两者,因为可能存在端点冲突)。
将所需的依赖项添加到您的 pom.xml.
- 对于Servlet:
za.co.sindi
sindi-ai-mcp-server-runtime-servlet
${project.version}
- 对于REST:
za.co.sindi
sindi-ai-mcp-server-runtime-rest
${project.version}
2.定义MCP功能服务
MCP功能可以在简单的POJO或CDI管理的bean上注册。
支持以下MCP功能:
Tools:支持的注释有@Tool,@ToolArgument关于方法。还支持LangChain4J工具注释。方法结果的类型必须为String.Prompts:支持的注释有@Prompt,@PromptArgument关于方法。方法结果的类型必须为PromptMessage或PromptMessage[].Resource:支持注释,@Resource(uri注释属性是必需的)。方法结果的类型必须为ResourceContents[](两种类型中的任何一种BlobResourceContents或TextResourceContents).Resource template:支持注释,@ResourceTemplate(uri注释属性是必需的)。方法结果的类型必须为ResourceTemplate[].
对于更具编程性的方法,您可以通过向MCP服务器运行时注入相应的管理器来向其回调处理程序注册MCP功能:
ToolManager:用于工具注册。PromptManager:用于快速注册。ResourceManager:用于资源和资源模板注册。
此外,您可以注入以下MCP资源:
MCPLogger:MCP记录到客户端会话(如果启用)。MCPContext:MCP上下文,提供手动MCP功能和客户端会话。
📖 例子
该项目包括MCP服务器的综合示例,见 examples/ 目录。有2个示例,每个示例都演示了MCP在其各种Jakarta EE服务器协议上的应用(它捆绑了 sindi-ai-mcp-server-features 模块,暴露各个Jakarta EE服务器协议上的MCP功能):
sindi-ai-mcp-server-rest:在REST协议上运行MCP服务器(与MCP功能捆绑在一起)。sindi-ai-mcp-server-servlet:在Servlet协议上运行MCP服务器(与MCP功能捆绑在一起)。
🛠️ 如何运行示例
- Git克隆整个项目。
- 构建项目。
mvn clean package -ecd examples/sindi-ai-mcp-server-xxxx/,在哪里xxxx可以是rest或servlet.
- 按如下方式运行应用程序:
mvn clean liberty:dev -e- 打开一个新终端并启动MCP检查器。
npx -y @modelcontextprotocol/inspector@latest浏览器应使用MCP Inspector自动打开。
- 复制链接并连接到您的MCP服务器。
对于苏格兰和南方能源公司,链接应该是 http://localhost:9080/sse. 对于Streamable HTTP,链接应该是 http://localhost:9080/mcp.
单击MCP检查器上的连接,开始测试您的MCP功能。
🤝 贡献
如果你想做出贡献,请查看 贡献.md.
📄 许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
🌟 入门指南
准备好将AI集成到您的企业Java应用程序中了吗?
- 探索示例:从MCP的具体示例开始
examples/目录。 - 阅读文档:查看单个模块文档,了解详细的配置选项
- 贡献:通过报告问题或提交拉取请求来帮助改进项目
