Skip to content

Commit 1bd4998

Browse files
committed
refactor(server): rename all tool/resource registration functions to 'register' prefix and add prompt support
1 parent 6a10bf1 commit 1bd4998

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+165
-104
lines changed

Server/build/index.js

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,21 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
33
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
44
import { McpUnity } from './unity/mcpUnity.js';
55
import { Logger, LogLevel } from './utils/logger.js';
6-
import { createMenuItemTool } from './tools/menuItemTool.js';
7-
import { createSelectGameObjectTool } from './tools/selectGameObjectTool.js';
8-
import { createAddPackageTool } from './tools/addPackageTool.js';
9-
import { createRunTestsTool } from './tools/runTestsTool.js';
10-
import { createSendConsoleLogTool } from './tools/sendConsoleLogTool.js';
11-
import { createUpdateComponentTool } from './tools/updateComponentTool.js';
12-
import { createAddAssetToSceneTool } from './tools/addAssetToSceneTool.js';
13-
import { createGetMenuItemsResource } from './resources/getMenuItemResource.js';
14-
import { createGetConsoleLogsResource } from './resources/getConsoleLogResource.js';
15-
import { createGetHierarchyResource } from './resources/getHierarchyResource.js';
16-
import { createGetPackagesResource } from './resources/getPackagesResource.js';
17-
import { createGetAssetsResource } from './resources/getAssetsResource.js';
18-
import { createGetTestsResource } from './resources/getTestsResource.js';
19-
import { createGetGameObjectResource } from './resources/getGameObjectResource.js';
6+
import { registerMenuItemTool } from './tools/menuItemTool.js';
7+
import { registerSelectGameObjectTool } from './tools/selectGameObjectTool.js';
8+
import { registerAddPackageTool } from './tools/addPackageTool.js';
9+
import { registerRunTestsTool } from './tools/runTestsTool.js';
10+
import { registerSendConsoleLogTool } from './tools/sendConsoleLogTool.js';
11+
import { registerUpdateComponentTool } from './tools/updateComponentTool.js';
12+
import { registerAddAssetToSceneTool } from './tools/addAssetToSceneTool.js';
13+
import { registerGetMenuItemsResource } from './resources/getMenuItemResource.js';
14+
import { registerGetConsoleLogsResource } from './resources/getConsoleLogResource.js';
15+
import { registerGetHierarchyResource } from './resources/getHierarchyResource.js';
16+
import { registerGetPackagesResource } from './resources/getPackagesResource.js';
17+
import { registerGetAssetsResource } from './resources/getAssetsResource.js';
18+
import { registerGetTestsResource } from './resources/getTestsResource.js';
19+
import { registerGetGameObjectResource } from './resources/getGameObjectResource.js';
20+
import { registerGameObjectHandlingStrategyPrompt } from './prompts/gameobjectHandlingStrategyPrompt.js';
2021
// Initialize loggers
2122
const serverLogger = new Logger('Server', LogLevel.INFO);
2223
const unityLogger = new Logger('Unity', LogLevel.INFO);
@@ -30,26 +31,29 @@ const server = new McpServer({
3031
capabilities: {
3132
tools: {},
3233
resources: {},
34+
prompts: {},
3335
},
3436
});
3537
// Initialize MCP HTTP bridge with Unity editor
3638
const mcpUnity = new McpUnity(unityLogger);
37-
// Add all tools to the registry
38-
createMenuItemTool(server, mcpUnity, toolLogger);
39-
createSelectGameObjectTool(server, mcpUnity, toolLogger);
40-
createAddPackageTool(server, mcpUnity, toolLogger);
41-
createRunTestsTool(server, mcpUnity, toolLogger);
42-
createSendConsoleLogTool(server, mcpUnity, toolLogger);
43-
createUpdateComponentTool(server, mcpUnity, toolLogger);
44-
createAddAssetToSceneTool(server, mcpUnity, toolLogger);
45-
// Create and register all resources with the MCP server
46-
createGetTestsResource(server, mcpUnity, resourceLogger);
47-
createGetGameObjectResource(server, mcpUnity, resourceLogger);
48-
createGetMenuItemsResource(server, mcpUnity, resourceLogger);
49-
createGetConsoleLogsResource(server, mcpUnity, resourceLogger);
50-
createGetHierarchyResource(server, mcpUnity, resourceLogger);
51-
createGetPackagesResource(server, mcpUnity, resourceLogger);
52-
createGetAssetsResource(server, mcpUnity, resourceLogger);
39+
// Register all tools into the MCP server
40+
registerMenuItemTool(server, mcpUnity, toolLogger);
41+
registerSelectGameObjectTool(server, mcpUnity, toolLogger);
42+
registerAddPackageTool(server, mcpUnity, toolLogger);
43+
registerRunTestsTool(server, mcpUnity, toolLogger);
44+
registerSendConsoleLogTool(server, mcpUnity, toolLogger);
45+
registerUpdateComponentTool(server, mcpUnity, toolLogger);
46+
registerAddAssetToSceneTool(server, mcpUnity, toolLogger);
47+
// Register all resources into the MCP server
48+
registerGetTestsResource(server, mcpUnity, resourceLogger);
49+
registerGetGameObjectResource(server, mcpUnity, resourceLogger);
50+
registerGetMenuItemsResource(server, mcpUnity, resourceLogger);
51+
registerGetConsoleLogsResource(server, mcpUnity, resourceLogger);
52+
registerGetHierarchyResource(server, mcpUnity, resourceLogger);
53+
registerGetPackagesResource(server, mcpUnity, resourceLogger);
54+
registerGetAssetsResource(server, mcpUnity, resourceLogger);
55+
// Register all prompts into the MCP server
56+
registerGameObjectHandlingStrategyPrompt(server);
5357
// Server startup function
5458
async function startServer() {
5559
try {
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2+
/**
3+
* Registers the 'gameobjectHandlingStrategy' prompt with the MCP server.
4+
* This prompt defines a strategy for handling GameObjects within the Unity Editor.
5+
*
6+
* @param server The McpServer instance to register the prompt with.
7+
*/
8+
export declare function registerGameObjectHandlingStrategyPrompt(server: McpServer): void;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/**
2+
* Registers the 'gameobjectHandlingStrategy' prompt with the MCP server.
3+
* This prompt defines a strategy for handling GameObjects within the Unity Editor.
4+
*
5+
* @param server The McpServer instance to register the prompt with.
6+
*/
7+
export function registerGameObjectHandlingStrategyPrompt(server) {
8+
server.prompt('gameobjectHandlingStrategy', 'Defines strategy for handling gameobjects in Unity', async () => ({
9+
messages: [
10+
{
11+
role: 'user',
12+
content: {
13+
type: 'text',
14+
text: `This is the template text for handling GameObjects in Unity. Define your strategy here.`
15+
}
16+
}
17+
]
18+
}));
19+
}

Server/build/resources/getAssetsResource.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
99
* @param mcpUnity The McpUnity instance to communicate with Unity
1010
* @param logger The logger instance for diagnostic information
1111
*/
12-
export declare function createGetAssetsResource(server: McpServer, mcpUnity: McpUnity, logger: Logger): void;
12+
export declare function registerGetAssetsResource(server: McpServer, mcpUnity: McpUnity, logger: Logger): void;

Server/build/resources/getAssetsResource.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const resourceMimeType = 'application/json';
1111
* @param mcpUnity The McpUnity instance to communicate with Unity
1212
* @param logger The logger instance for diagnostic information
1313
*/
14-
export function createGetAssetsResource(server, mcpUnity, logger) {
14+
export function registerGetAssetsResource(server, mcpUnity, logger) {
1515
logger.info(`Registering resource: ${resourceName}`);
1616
// Register this resource with the MCP server
1717
server.resource(resourceName, resourceUri, {

Server/build/resources/getConsoleLogResource.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
99
* @param mcpUnity The McpUnity instance to communicate with Unity
1010
* @param logger The logger instance for diagnostic information
1111
*/
12-
export declare function createGetConsoleLogsResource(server: McpServer, mcpUnity: McpUnity, logger: Logger): void;
12+
export declare function registerGetConsoleLogsResource(server: McpServer, mcpUnity: McpUnity, logger: Logger): void;

Server/build/resources/getConsoleLogResource.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const resourceMimeType = 'application/json';
1111
* @param mcpUnity The McpUnity instance to communicate with Unity
1212
* @param logger The logger instance for diagnostic information
1313
*/
14-
export function createGetConsoleLogsResource(server, mcpUnity, logger) {
14+
export function registerGetConsoleLogsResource(server, mcpUnity, logger) {
1515
logger.info(`Registering resource: ${resourceName}`);
1616
// Register this resource with the MCP server
1717
server.resource(resourceName, resourceUri, {

Server/build/resources/getGameObjectResource.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ import { McpUnity } from '../unity/mcpUnity.js';
99
* @param mcpUnity The McpUnity instance to communicate with Unity
1010
* @param logger The logger instance for diagnostic information
1111
*/
12-
export declare function createGetGameObjectResource(server: McpServer, mcpUnity: McpUnity, logger: Logger): void;
12+
export declare function registerGetGameObjectResource(server: McpServer, mcpUnity: McpUnity, logger: Logger): void;

Server/build/resources/getGameObjectResource.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const resourceMimeType = 'application/json';
1313
* @param mcpUnity The McpUnity instance to communicate with Unity
1414
* @param logger The logger instance for diagnostic information
1515
*/
16-
export function createGetGameObjectResource(server, mcpUnity, logger) {
16+
export function registerGetGameObjectResource(server, mcpUnity, logger) {
1717
// Create a resource template with the MCP SDK
1818
const resourceTemplate = new ResourceTemplate(resourceUri, {
1919
// This list method is commented because is calling getHierarchyResource every second to the MCP client in the current format.

Server/build/resources/getHierarchyResource.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ export declare const resourceMimeType = "application/json";
1212
* @param mcpUnity The McpUnity instance to communicate with Unity
1313
* @param logger The logger instance for diagnostic information
1414
*/
15-
export declare function createGetHierarchyResource(server: McpServer, mcpUnity: McpUnity, logger: Logger): void;
15+
export declare function registerGetHierarchyResource(server: McpServer, mcpUnity: McpUnity, logger: Logger): void;

0 commit comments

Comments
 (0)