ceshi
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
"""
|
||||
Project Tools for Unreal MCP.
|
||||
|
||||
This module provides tools for managing project-wide settings and configuration.
|
||||
"""
|
||||
|
||||
import logging
|
||||
from typing import Dict, Any
|
||||
from mcp.server.fastmcp import FastMCP, Context
|
||||
|
||||
# Get logger
|
||||
logger = logging.getLogger("UnrealMCP")
|
||||
|
||||
def register_project_tools(mcp: FastMCP):
|
||||
"""Register project tools with the MCP server."""
|
||||
|
||||
@mcp.tool()
|
||||
def create_input_mapping(
|
||||
ctx: Context,
|
||||
action_name: str,
|
||||
key: str,
|
||||
input_type: str = "Action"
|
||||
) -> Dict[str, Any]:
|
||||
"""
|
||||
Create an input mapping for the project.
|
||||
|
||||
Args:
|
||||
action_name: Name of the input action
|
||||
key: Key to bind (SpaceBar, LeftMouseButton, etc.)
|
||||
input_type: Type of input mapping (Action or Axis)
|
||||
|
||||
Returns:
|
||||
Response indicating success or failure
|
||||
"""
|
||||
from unreal_mcp_server import get_unreal_connection
|
||||
|
||||
try:
|
||||
unreal = get_unreal_connection()
|
||||
if not unreal:
|
||||
logger.error("Failed to connect to Unreal Engine")
|
||||
return {"success": False, "message": "Failed to connect to Unreal Engine"}
|
||||
|
||||
params = {
|
||||
"action_name": action_name,
|
||||
"key": key,
|
||||
"input_type": input_type
|
||||
}
|
||||
|
||||
logger.info(f"Creating input mapping '{action_name}' with key '{key}'")
|
||||
response = unreal.send_command("create_input_mapping", params)
|
||||
|
||||
if not response:
|
||||
logger.error("No response from Unreal Engine")
|
||||
return {"success": False, "message": "No response from Unreal Engine"}
|
||||
|
||||
logger.info(f"Input mapping creation response: {response}")
|
||||
return response
|
||||
|
||||
except Exception as e:
|
||||
error_msg = f"Error creating input mapping: {e}"
|
||||
logger.error(error_msg)
|
||||
return {"success": False, "message": error_msg}
|
||||
|
||||
logger.info("Project tools registered successfully")
|
||||
Reference in New Issue
Block a user