From ef3b8305ab88cdae9c0526048cd5306f043116ff Mon Sep 17 00:00:00 2001 From: Matthias Hinrichs Date: Sat, 30 May 2026 18:34:42 +0200 Subject: [PATCH] feat: output raw HTML in get_activity_map for native markdown block rendering --- src/strava_mcp_server/__init__.py | 2 +- src/strava_mcp_server/tools/activities.py | 6 ++---- tests/unit/test_map.py | 25 ++++++++++------------- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/src/strava_mcp_server/__init__.py b/src/strava_mcp_server/__init__.py index 469e8f0..0cefac2 100644 --- a/src/strava_mcp_server/__init__.py +++ b/src/strava_mcp_server/__init__.py @@ -1,3 +1,3 @@ """Strava MCP Server""" -__version__ = "0.2.3" +__version__ = "0.2.4" diff --git a/src/strava_mcp_server/tools/activities.py b/src/strava_mcp_server/tools/activities.py index 1eb88b3..3f9f874 100644 --- a/src/strava_mcp_server/tools/activities.py +++ b/src/strava_mcp_server/tools/activities.py @@ -844,13 +844,11 @@ def register(mcp: FastMCP, strava: StravaClient) -> None: """ - escaped_html = html_content.strip().replace('"', """) - iframe_content = f'' return [ - TextContent(type="text", text=iframe_content), + TextContent(type="text", text=html_content.strip()), TextContent( type="text", - text="[System Context: The interactive map has been generated successfully. You must output the exact ') + html_text = result[0].text assert result[1].type == "text" - assert "System Context" in result[1].text + assert "Render the above content" in result[1].text - decoded_html = iframe_text.replace(""", '"') - assert "" in decoded_html - assert "unpkg.com/leaflet" in decoded_html - assert "latlngData" in decoded_html - assert "[47.1, 9.1]" in decoded_html - assert 'sportEmoji = "🚴"' in decoded_html - assert "L.control.layers" in decoded_html - assert "satellite" in decoded_html - assert "🟢" in decoded_html - assert "🏁" in decoded_html + assert "" in html_text + assert "unpkg.com/leaflet" in html_text + assert "latlngData" in html_text + assert "[47.1, 9.1]" in html_text + assert 'sportEmoji = "🚴"' in html_text + assert "L.control.layers" in html_text + assert "satellite" in html_text + assert "🟢" in html_text + assert "🏁" in html_text @pytest.mark.asyncio