Skip to content

Commit ae5014b

Browse files
committed
feat: bundle.json mcp server
1 parent b8b6258 commit ae5014b

8 files changed

Lines changed: 730 additions & 15 deletions

File tree

app/src/main/java/com/tinyengine/it/TinyEngineApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
*/
2525
@SpringBootApplication
2626
@EnableAspectJAutoProxy
27-
@MapperScan({"com.tinyengine.it.mapper","com.tinyengine.it.dynamic.dao"})
27+
@MapperScan({"com.tinyengine.it.mapper","com.tinyengine.it.dynamic.dao","com.tinyengine.it.mcp.tools"})
2828
public class TinyEngineApplication {
2929
/**
3030
* The entry point of application.

app/src/main/resources/application-dev.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,21 @@ spring:
2828
min-evictable-idle-time-millis: 300000 # 连接在池中保持空闲的最小时间(单位:毫秒)。如果空闲时间超过这个值,连接将被回收,默认值为 1800000。
2929
pool-prepared-statements: true # 是否缓存 PreparedStatement 对象,默认值为 true。
3030
max-open-prepared-statements: 20 # 最大缓存的 PreparedStatement 数量,默认值为 -1,表示无限制。如果 `pool-prepared-statements` 设置为 true,设置此值以限制缓存数量。
31-
31+
ai:
32+
mcp:
33+
server:
34+
enabled: true
35+
protocol: STREAMABLE
36+
version: 1.0.0
37+
tool-change-notification: true
38+
type: SYNC
39+
annotation-scanner:
40+
enabled: false
41+
capabilities:
42+
tool: true
43+
streamable-http:
44+
mcp-endpoint: /tiny-engine/mcp
45+
name: tiny-engine-mcp
3246
# 清空任务配置
3347
cleanup:
3448
enabled: false

app/src/main/resources/sql/h2/init_data_for_test_v1.0.0.sql

Lines changed: 87 additions & 4 deletions
Large diffs are not rendered by default.

app/src/main/resources/sql/mysql/init_data_for_test_v1.0.0.sql

Lines changed: 87 additions & 4 deletions
Large diffs are not rendered by default.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.tinyengine.it.mcp.config;
2+
3+
4+
import com.tinyengine.it.mcp.tools.GitFileReaderService;
5+
import org.slf4j.Logger;
6+
import org.slf4j.LoggerFactory;
7+
import org.springframework.ai.tool.ToolCallbackProvider;
8+
import org.springframework.ai.tool.method.MethodToolCallbackProvider;
9+
import org.springframework.context.annotation.Bean;
10+
import org.springframework.context.annotation.Configuration;
11+
import org.springframework.context.annotation.Primary;
12+
13+
@Configuration
14+
public class McpToolsConfig {
15+
private static final Logger log = LoggerFactory.getLogger(McpToolsConfig.class);
16+
17+
18+
/**
19+
* 方式一:通过 ToolCallbackProvider 批量注册工具
20+
*/
21+
@Bean
22+
@Primary
23+
public ToolCallbackProvider toolCallbackProvider(GitFileReaderService gitFileReaderService) {
24+
25+
26+
MethodToolCallbackProvider provider = MethodToolCallbackProvider.builder()
27+
.toolObjects(gitFileReaderService)
28+
.build();
29+
// 立即验证
30+
log.info("Tool count from provider: " + provider.getToolCallbacks().length);
31+
return provider;
32+
}
33+
}

0 commit comments

Comments
 (0)