ryomo commited on
Commit
e7c03d2
·
1 Parent(s): 3f53a9e

doct: add tool_prefix to MCP Guide

Browse files
Files changed (2) hide show
  1. app.py +6 -6
  2. src/unpredictable_lord/utils.py +14 -0
app.py CHANGED
@@ -23,7 +23,7 @@ from unpredictable_lord.mcp_server.mcp_server import (
23
  list_available_advice,
24
  )
25
  from unpredictable_lord.settings import ENABLE_GRADIO_DEPRECATION_WARNING, LOGGING_LEVEL
26
- from unpredictable_lord.utils import get_tool_prefix
27
 
28
  # Configure logging level from environment variable
29
  log_level = getattr(logging, LOGGING_LEVEL, logging.INFO)
@@ -41,10 +41,6 @@ logger = logging.getLogger(__name__)
41
  logger.info(f"Gradio version: {gr.__version__}")
42
  logger.info(f"ZeroGPU: {spaces.config.Config.zero_gpu}")
43
 
44
- # Load MCP guide from external file
45
- MCP_GUIDE_PATH = Path(__file__).parent / "docs" / "mcp_guide.md"
46
- MCP_GUIDE_CONTENT = MCP_GUIDE_PATH.read_text(encoding="utf-8")
47
-
48
  # Constants
49
  NO_GAME_MESSAGE = """_No active game._
50
 
@@ -53,6 +49,10 @@ NO_GAME_MESSAGE = """_No active game._
53
  2. Click "⚔️ Start New Game"
54
  """
55
 
 
 
 
 
56
  # MCP tool prefix for HF Spaces
57
  tool_prefix = get_tool_prefix()
58
  logger.info(f"Using tool prefix: '{tool_prefix}'")
@@ -388,7 +388,7 @@ _{personality_desc}_"""
388
 
389
  # MCP Server Tab
390
  with gr.TabItem("MCP Server", id="mcp_server"):
391
- gr.Markdown(MCP_GUIDE_CONTENT)
392
 
393
  gr.Markdown("### Test: Initialize Game")
394
  with gr.Row():
 
23
  list_available_advice,
24
  )
25
  from unpredictable_lord.settings import ENABLE_GRADIO_DEPRECATION_WARNING, LOGGING_LEVEL
26
+ from unpredictable_lord.utils import get_tool_prefix, update_guide_with_tool_prefix
27
 
28
  # Configure logging level from environment variable
29
  log_level = getattr(logging, LOGGING_LEVEL, logging.INFO)
 
41
  logger.info(f"Gradio version: {gr.__version__}")
42
  logger.info(f"ZeroGPU: {spaces.config.Config.zero_gpu}")
43
 
 
 
 
 
44
  # Constants
45
  NO_GAME_MESSAGE = """_No active game._
46
 
 
49
  2. Click "⚔️ Start New Game"
50
  """
51
 
52
+ # Load MCP guide from external file
53
+ MCP_GUIDE_PATH = Path(__file__).parent / "docs" / "mcp_guide.md"
54
+ MCP_GUIDE_TEMPLATE = MCP_GUIDE_PATH.read_text(encoding="utf-8")
55
+
56
  # MCP tool prefix for HF Spaces
57
  tool_prefix = get_tool_prefix()
58
  logger.info(f"Using tool prefix: '{tool_prefix}'")
 
388
 
389
  # MCP Server Tab
390
  with gr.TabItem("MCP Server", id="mcp_server"):
391
+ gr.Markdown(update_guide_with_tool_prefix(tool_prefix, MCP_GUIDE_TEMPLATE))
392
 
393
  gr.Markdown("### Test: Initialize Game")
394
  with gr.Row():
src/unpredictable_lord/utils.py CHANGED
@@ -16,3 +16,17 @@ def get_tool_prefix() -> str:
16
  prefix = prefix.replace("-", "_")
17
  return prefix
18
  return ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  prefix = prefix.replace("-", "_")
17
  return prefix
18
  return ""
19
+
20
+
21
+ def update_guide_with_tool_prefix(prefix: str, mcp_guide: str) -> str:
22
+ """Apply tool prefix to MCP guide content."""
23
+ for tool_name in [
24
+ "init_game",
25
+ "get_game_state",
26
+ "list_available_advice",
27
+ "execute_turn",
28
+ ]:
29
+ # Replace tool names in backticks and in function calls
30
+ mcp_guide = mcp_guide.replace(f"`{tool_name}`", f"`{prefix}{tool_name}`")
31
+ mcp_guide = mcp_guide.replace(f"`{tool_name}(", f"`{prefix}{tool_name}(")
32
+ return mcp_guide