doct: add tool_prefix to MCP Guide
Browse files- app.py +6 -6
- 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(
|
| 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
|