Skip to content

Commit 7eaf74e

Browse files
committed
refactor(server): Restructure server components and factories
1 parent 4b758f2 commit 7eaf74e

23 files changed

+180
-162
lines changed

docs/docs/getting-started.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Now you can create a simple MCP server with just one line of core code.
3333
```java
3434
import com.github.codeboyzhou.mcp.declarative.McpServers;
3535
import com.github.codeboyzhou.mcp.declarative.annotation.McpServerApplication;
36-
import com.github.codeboyzhou.mcp.declarative.server.McpServerInfo;
36+
import com.github.codeboyzhou.mcp.declarative.server.simple.SimpleMcpServerBaseInfo;
3737

3838
@McpServerApplication
3939
public class McpStdioServer {
@@ -117,7 +117,7 @@ There is a Maven plugin that can handle this, just place the following configura
117117
```java
118118
import com.github.codeboyzhou.mcp.declarative.McpServers;
119119
import com.github.codeboyzhou.mcp.declarative.annotation.McpServerApplication;
120-
import com.github.codeboyzhou.mcp.declarative.server.McpSseServerInfo;
120+
import com.github.codeboyzhou.mcp.declarative.server.simple.SimpleMcpHttpSseServerInfo;
121121

122122
@McpServerApplication
123123
public class McpSseServer {

src/main/java/com/github/codeboyzhou/mcp/declarative/McpServers.java

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
import com.github.codeboyzhou.mcp.declarative.common.GuiceInjectorModule;
44
import com.github.codeboyzhou.mcp.declarative.configuration.McpServerConfiguration;
55
import com.github.codeboyzhou.mcp.declarative.configuration.YAMLConfigurationLoader;
6-
import com.github.codeboyzhou.mcp.declarative.server.McpServerInfo;
7-
import com.github.codeboyzhou.mcp.declarative.server.McpSseServerInfo;
8-
import com.github.codeboyzhou.mcp.declarative.server.McpStreamableServerInfo;
9-
import com.github.codeboyzhou.mcp.declarative.server.factory.ConfigurableMcpHttpSseServerFactory;
10-
import com.github.codeboyzhou.mcp.declarative.server.factory.ConfigurableMcpServerFactory;
11-
import com.github.codeboyzhou.mcp.declarative.server.factory.ConfigurableMcpStdioServerFactory;
12-
import com.github.codeboyzhou.mcp.declarative.server.factory.SimpleMcpHttpSseServerFactory;
13-
import com.github.codeboyzhou.mcp.declarative.server.factory.McpHttpStreamableServerFactory;
14-
import com.github.codeboyzhou.mcp.declarative.server.factory.McpServerPromptFactory;
15-
import com.github.codeboyzhou.mcp.declarative.server.factory.McpServerResourceFactory;
16-
import com.github.codeboyzhou.mcp.declarative.server.factory.McpServerToolFactory;
17-
import com.github.codeboyzhou.mcp.declarative.server.factory.SimpleMcpStdioServerFactory;
6+
import com.github.codeboyzhou.mcp.declarative.server.component.McpServerPromptFactory;
7+
import com.github.codeboyzhou.mcp.declarative.server.component.McpServerResourceFactory;
8+
import com.github.codeboyzhou.mcp.declarative.server.component.McpServerToolFactory;
9+
import com.github.codeboyzhou.mcp.declarative.server.configurable.ConfigurableMcpHttpSseServerFactory;
10+
import com.github.codeboyzhou.mcp.declarative.server.configurable.ConfigurableMcpServerFactory;
11+
import com.github.codeboyzhou.mcp.declarative.server.configurable.ConfigurableMcpStdioServerFactory;
12+
import com.github.codeboyzhou.mcp.declarative.server.simple.SimpleMcpHttpSseServerFactory;
13+
import com.github.codeboyzhou.mcp.declarative.server.simple.SimpleMcpHttpSseServerInfo;
14+
import com.github.codeboyzhou.mcp.declarative.server.simple.SimpleMcpHttpStreamableServerFactory;
15+
import com.github.codeboyzhou.mcp.declarative.server.simple.SimpleMcpHttpStreamableServerInfo;
16+
import com.github.codeboyzhou.mcp.declarative.server.simple.SimpleMcpServerBaseInfo;
17+
import com.github.codeboyzhou.mcp.declarative.server.simple.SimpleMcpStdioServerFactory;
1818
import com.google.inject.Guice;
1919
import com.google.inject.Injector;
2020
import io.modelcontextprotocol.server.McpAsyncServer;
@@ -40,20 +40,20 @@ public static McpServers run(Class<?> applicationMainClass, String[] args) {
4040
return INSTANCE;
4141
}
4242

43-
public void startStdioServer(McpServerInfo serverInfo) {
43+
public void startStdioServer(SimpleMcpServerBaseInfo serverInfo) {
4444
SimpleMcpStdioServerFactory factory = new SimpleMcpStdioServerFactory();
4545
McpAsyncServer server = factory.create(serverInfo);
4646
registerComponents(server);
4747
}
4848

49-
public void startSseServer(McpSseServerInfo serverInfo) {
49+
public void startSseServer(SimpleMcpHttpSseServerInfo serverInfo) {
5050
SimpleMcpHttpSseServerFactory factory = new SimpleMcpHttpSseServerFactory();
5151
McpAsyncServer server = factory.create(serverInfo);
5252
registerComponents(server);
5353
}
5454

55-
public void startStreamableServer(McpStreamableServerInfo serverInfo) {
56-
McpHttpStreamableServerFactory factory = new McpHttpStreamableServerFactory();
55+
public void startStreamableServer(SimpleMcpHttpStreamableServerInfo serverInfo) {
56+
SimpleMcpHttpStreamableServerFactory factory = new SimpleMcpHttpStreamableServerFactory();
5757
McpAsyncServer server = factory.create(serverInfo);
5858
registerComponents(server);
5959
}

src/main/java/com/github/codeboyzhou/mcp/declarative/common/GuiceInjectorModule.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
import com.github.codeboyzhou.mcp.declarative.annotation.McpResources;
1111
import com.github.codeboyzhou.mcp.declarative.annotation.McpServerApplication;
1212
import com.github.codeboyzhou.mcp.declarative.annotation.McpTools;
13-
import com.github.codeboyzhou.mcp.declarative.server.factory.McpServerPromptFactory;
14-
import com.github.codeboyzhou.mcp.declarative.server.factory.McpServerResourceFactory;
15-
import com.github.codeboyzhou.mcp.declarative.server.factory.McpServerToolFactory;
13+
import com.github.codeboyzhou.mcp.declarative.server.component.McpServerPromptFactory;
14+
import com.github.codeboyzhou.mcp.declarative.server.component.McpServerResourceFactory;
15+
import com.github.codeboyzhou.mcp.declarative.server.component.McpServerToolFactory;
1616
import com.google.inject.AbstractModule;
1717
import com.google.inject.Provides;
1818
import com.google.inject.Singleton;

src/main/java/com/github/codeboyzhou/mcp/declarative/server/factory/AbstractMcpServerComponentFactory.java renamed to src/main/java/com/github/codeboyzhou/mcp/declarative/server/component/AbstractMcpServerComponentFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.codeboyzhou.mcp.declarative.server.factory;
1+
package com.github.codeboyzhou.mcp.declarative.server.component;
22

33
import static com.github.codeboyzhou.mcp.declarative.common.GuiceInjectorModule.INJECTED_VARIABLE_NAME_I18N_ENABLED;
44

src/main/java/com/github/codeboyzhou/mcp/declarative/server/factory/McpServerComponentFactory.java renamed to src/main/java/com/github/codeboyzhou/mcp/declarative/server/component/McpServerComponentFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.codeboyzhou.mcp.declarative.server.factory;
1+
package com.github.codeboyzhou.mcp.declarative.server.component;
22

33
import io.modelcontextprotocol.server.McpAsyncServer;
44
import java.lang.reflect.Method;

src/main/java/com/github/codeboyzhou/mcp/declarative/server/factory/McpServerPromptFactory.java renamed to src/main/java/com/github/codeboyzhou/mcp/declarative/server/component/McpServerPromptFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.codeboyzhou.mcp.declarative.server.factory;
1+
package com.github.codeboyzhou.mcp.declarative.server.component;
22

33
import static com.github.codeboyzhou.mcp.declarative.common.GuiceInjectorModule.INJECTED_VARIABLE_NAME_I18N_ENABLED;
44

src/main/java/com/github/codeboyzhou/mcp/declarative/server/factory/McpServerResourceFactory.java renamed to src/main/java/com/github/codeboyzhou/mcp/declarative/server/component/McpServerResourceFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.codeboyzhou.mcp.declarative.server.factory;
1+
package com.github.codeboyzhou.mcp.declarative.server.component;
22

33
import static com.github.codeboyzhou.mcp.declarative.common.GuiceInjectorModule.INJECTED_VARIABLE_NAME_I18N_ENABLED;
44

src/main/java/com/github/codeboyzhou/mcp/declarative/server/factory/McpServerToolFactory.java renamed to src/main/java/com/github/codeboyzhou/mcp/declarative/server/component/McpServerToolFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.codeboyzhou.mcp.declarative.server.factory;
1+
package com.github.codeboyzhou.mcp.declarative.server.component;
22

33
import static com.github.codeboyzhou.mcp.declarative.common.GuiceInjectorModule.INJECTED_VARIABLE_NAME_I18N_ENABLED;
44

src/main/java/com/github/codeboyzhou/mcp/declarative/server/factory/AbstractConfigurableMcpServerFactory.java renamed to src/main/java/com/github/codeboyzhou/mcp/declarative/server/configurable/AbstractConfigurableMcpServerFactory.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package com.github.codeboyzhou.mcp.declarative.server.factory;
1+
package com.github.codeboyzhou.mcp.declarative.server.configurable;
22

33
import com.github.codeboyzhou.mcp.declarative.configuration.McpServerCapabilities;
44
import com.github.codeboyzhou.mcp.declarative.configuration.McpServerChangeNotification;
55
import com.github.codeboyzhou.mcp.declarative.configuration.McpServerConfiguration;
66
import io.modelcontextprotocol.spec.McpSchema;
7-
import io.modelcontextprotocol.spec.McpServerTransportProvider;
7+
import io.modelcontextprotocol.spec.McpServerTransportProviderBase;
88

9-
public abstract class AbstractConfigurableMcpServerFactory<T extends McpServerTransportProvider>
9+
public abstract class AbstractConfigurableMcpServerFactory<T extends McpServerTransportProviderBase>
1010
implements ConfigurableMcpServerFactory<T> {
1111

1212
protected final McpServerConfiguration configuration;

src/main/java/com/github/codeboyzhou/mcp/declarative/server/factory/ConfigurableMcpHttpSseServerFactory.java renamed to src/main/java/com/github/codeboyzhou/mcp/declarative/server/configurable/ConfigurableMcpHttpSseServerFactory.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
package com.github.codeboyzhou.mcp.declarative.server.factory;
1+
package com.github.codeboyzhou.mcp.declarative.server.configurable;
22

33
import com.github.codeboyzhou.mcp.declarative.common.NamedThreadFactory;
44
import com.github.codeboyzhou.mcp.declarative.configuration.McpServerConfiguration;
5-
import com.github.codeboyzhou.mcp.declarative.configuration.McpServerSSE;
65
import com.github.codeboyzhou.mcp.declarative.server.McpHttpServer;
76
import io.modelcontextprotocol.server.McpAsyncServer;
87
import io.modelcontextprotocol.server.McpServer;
@@ -20,14 +19,10 @@ public ConfigurableMcpHttpSseServerFactory(McpServerConfiguration configuration)
2019

2120
@Override
2221
public HttpServletSseServerTransportProvider transportProvider() {
23-
McpServerSSE sse = configuration.sse();
24-
final String baseUrl = sse.baseUrl();
25-
final String messageEndpoint = sse.messageEndpoint();
26-
final String sseEndpoint = sse.endpoint();
2722
return HttpServletSseServerTransportProvider.builder()
28-
.baseUrl(baseUrl)
29-
.sseEndpoint(sseEndpoint)
30-
.messageEndpoint(messageEndpoint)
23+
.baseUrl(configuration.sse().baseUrl())
24+
.sseEndpoint(configuration.sse().endpoint())
25+
.messageEndpoint(configuration.sse().messageEndpoint())
3126
.build();
3227
}
3328

0 commit comments

Comments
 (0)