diff --git a/README.md b/README.md index 56ff18862992cffb8023f527ff81e95f0d66c516..e0d3e87bb4487c8ae28b5736b5040e0d76bc1efc 100644 --- a/README.md +++ b/README.md @@ -1,140 +1,105 @@ # Open MCP Server -[**English Version**](https://gitee.com/changsong/open-mcp-server/blob/main/README_EN.md) +## 核心功能 +- HTTP接口自动生成MCP工具 +- Dubbo接口自动发现与调用 +- 支持第三方API调用 +- 国际化配置支持 -Open-MCP-Server 是一个支持模型上下文协议(Model Context Protocol, MCP)的服务框架,旨在简化企业系统与AI平台的集成,为AI系统提供业务数据支持。本框架原生兼容各类开放API、内部系统API、Dubbo接口等多协议接入,赋能AI系统实现定制化需求。 +## 快速开始 -## 核心功能 +### 启动服务 +1. 确保已安装JDK 1.8+ 和 Maven +2. 执行以下命令启动服务: +```bash +mvn spring-boot:run +``` -- 公/私有API统一适配(支持 RESTful、gRPC、Dubbo 等协议) -- AI工作流上下文感知数据编排 -- 可扩展的业务逻辑架构 -- 在保持异构系统兼容性的同时,实现定制化AI解决方案 +## HTTP接口自动生成MCP工具 -## 快速开始 +### 接口生成 +通过HTTP接口自动生成MCP工具,可以快速生成代码并测试API。 + +### 生成的功能包括 +- 代码生成器:根据API文档生成Java代码 +- 测试接口:提供测试API的接口 +- 下载生成的代码:支持下载生成的代码包 -### HTTP接口自动生成MCP工具 +### 使用示例 +1. 访问 `/api/generate` 接口生成代码 +2. 使用 `/api/test` 接口测试API +3. 通过 `/api/download` 下载生成的代码包 -框架提供了便捷的HTTP接口转换功能,可以快速将现有的HTTP API转换为MCP工具。 +## 测试接口 +使用 `/api/test` 接口测试API,支持GET和POST方法。 -#### 1. 接口生成 -通过提供以下信息,即可自动生成对应的MCP工具: +### 请求示例 ```json { - "apiUrl": "接口URL", - "method": "HTTP方法(GET/POST等)", - "packagePath": "生成代码的包路径", - "apiName": "接口名称", - "requestData": "请求参数示例(JSON格式)", - "responseData": "响应数据示例(JSON格式)" + "apiUrl": "https://api.example.com/data", + "cookie": "session_id=123456", + "requestData": "{\"param1\": \"value1\"}", + "method": "POST" } ``` -#### 2. 生成的功能包括 -- 自动生成API接口定义 -- 生成请求/响应DTO类 -- 生成服务实现类 -- 自动处理参数映射和类型转换 -- 支持文件下载功能 - -#### 3. 使用示例 -```bash -# 测试接口 -POST /api/test -Content-Type: application/json +## 生成代码 +通过 `/api/generate` 接口生成代码,支持生成API接口、请求和响应DTO。 +### 请求示例 +```json { - "apiUrl": "http://api.example.com/data", - "method": "GET", - "packagePath": "com.open.mcp.server.api", - "apiName": "ExampleApi", - "requestData": "{\"param1\": \"value1\"}" + "apiUrl": "https://api.example.com/data", + "cookie": "session_id=123456", + "requestData": "{\"param1\": \"value1\"}", + "packagePath": "com.example.api", + "apiName": "ExampleApi", + "responseData": "{\"param1\": \"value1\"}" } - -# 生成代码 -POST /api/generate -Content-Type: application/json - -# 下载生成的代码 -POST /api/download ``` -### Dubbo接口自动发现与调用 +## 下载生成的代码 +通过 `/api/download` 接口下载生成的代码包。 -框架支持自动发现和调用Dubbo服务,无需手动编写适配代码。 +## Dubbo接口自动发现与调用 -#### 1. 配置Dubbo连接 -在 `application.yml` 中配置Dubbo相关信息: +### 配置Dubbo连接 +在 `application.yml` 中配置Dubbo注册中心地址: ```yaml dubbo: - application: - name: ${spring.application.name} - qos-enable: false registry: address: zookeeper://127.0.0.1:2181 - timeout: 30000 - protocol: - name: dubbo - port: -1 - consumer: - check: false - timeout: 30000 - retries: 0 ``` -#### 2. 服务发现与调用 -框架提供了两个主要工具来操作Dubbo服务: +### 服务发现与调用 -##### 获取服务信息 -```bash -# 工具名称: getDubboServiceInfo -# 参数说明: -{ - "interfaceName": "com.example.DemoService" # Dubbo服务接口全限定名 -} -``` +#### 获取服务信息 +**工具名称**: getDubboServiceInfo +**参数说明**: +- `interfaceName`: 接口全限定名 -##### 调用服务方法 -```bash -# 工具名称: invokeDubboService -# 参数说明: -{ - "interfaceName": "com.example.DemoService", # Dubbo服务接口全限定名 - "methodName": "sayHello", # 要调用的方法名 - "version": "1.0.0", # 服务版本(可选) - "params": { # 方法参数(JSON格式) - "param1": "value1", - "param2": 123 - } -} -``` +#### 调用服务方法 +**工具名称**: invokeDubboService +**参数说明**: +- `interfaceName`: 接口全限定名 +- `methodName`: 方法名 +- `version`: 服务版本 +- `params`: 参数JSON字符串 -#### 3. 特性支持 -- 自动服务发现:自动从注册中心获取服务列表 -- 泛化调用:无需依赖服务接口类 -- 参数类型转换:自动处理基本类型和复杂对象的转换 -- 异常处理:统一的错误处理和日志记录 -- 服务缓存:缓存服务引用,提高调用性能 +### 特性支持 +- 支持Dubbo服务的自动发现 +- 支持动态调用Dubbo服务方法 +- 支持服务版本控制 -### Supported Third-party APIs -[juhe data](https://www.juhe.cn/) +## Supported Third-party APIs +- 新闻API:获取新闻列表和详情 +- 视频API:获取视频列表和详情 +- 股票API:获取股票信息 ## Configuration - -```json -"mcpServers": { -"open-mcp-server": { -"command": "java", -"args": [ -"-Dspring.ai.mcp.server.stdio=true", -"-jar", -"/jar包路径/open-mcp-server-1.0-SNAPSHOT.jar", -"juhe.news.api-key= 您的聚合密钥" -] -} -} -``` +配置文件位于 `application.yml`,支持以下配置: +- Dubbo注册中心地址 +- 第三方API的基地址和API密钥 ## License -open-mcp-server 采用 MIT 许可证授权。 -根据 MIT 许可证条款,您可以自由使用、修改和分发本软件。具体条款请参阅项目仓库中的 LICENSE 文件。 \ No newline at end of file +本项目使用 MIT 许可证。详情请查看 LICENSE 文件。 \ No newline at end of file