mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-21 21:14:17 +02:00
fix: remove CSP from tool metadata, keep on resource only (#3754)
This commit is contained in:
parent
927a03bee1
commit
333aaddff5
3 changed files with 8 additions and 30 deletions
|
|
@ -306,25 +306,10 @@ class FastMCPApp(Provider):
|
|||
_ensure_prefab_renderer,
|
||||
)
|
||||
|
||||
try:
|
||||
from prefab_ui.renderer import get_renderer_csp
|
||||
|
||||
from fastmcp.apps.config import ResourceCSP
|
||||
|
||||
csp = get_renderer_csp()
|
||||
app_config = AppConfig(
|
||||
resource_uri=PREFAB_RENDERER_URI,
|
||||
visibility=["model"],
|
||||
csp=ResourceCSP(
|
||||
resource_domains=csp.get("resource_domains"),
|
||||
connect_domains=csp.get("connect_domains"),
|
||||
),
|
||||
)
|
||||
except ImportError:
|
||||
app_config = AppConfig(
|
||||
resource_uri=PREFAB_RENDERER_URI,
|
||||
visibility=["model"],
|
||||
)
|
||||
app_config = AppConfig(
|
||||
resource_uri=PREFAB_RENDERER_URI,
|
||||
visibility=["model"],
|
||||
)
|
||||
|
||||
meta: dict[str, Any] = {
|
||||
"ui": app_config_to_meta_dict(app_config),
|
||||
|
|
|
|||
|
|
@ -108,17 +108,10 @@ def _ensure_prefab_renderer(provider: LocalProvider) -> None:
|
|||
|
||||
def _expand_prefab_ui_meta(tool: Tool) -> None:
|
||||
"""Expand meta["ui"] = True into the full AppConfig dict for a prefab tool."""
|
||||
from prefab_ui.renderer import get_renderer_csp
|
||||
from fastmcp.apps.config import AppConfig, app_config_to_meta_dict
|
||||
|
||||
from fastmcp.apps.config import AppConfig, ResourceCSP, app_config_to_meta_dict
|
||||
|
||||
csp = get_renderer_csp()
|
||||
app_config = AppConfig(
|
||||
resource_uri=PREFAB_RENDERER_URI,
|
||||
csp=ResourceCSP(
|
||||
resource_domains=csp.get("resource_domains"),
|
||||
connect_domains=csp.get("connect_domains"),
|
||||
),
|
||||
)
|
||||
meta = dict(tool.meta) if tool.meta else {}
|
||||
meta["ui"] = app_config_to_meta_dict(app_config)
|
||||
|
|
|
|||
|
|
@ -246,7 +246,8 @@ class TestAppUI:
|
|||
assert meta is not None
|
||||
assert meta["ui"]["resourceUri"] == "ui://prefab/renderer.html"
|
||||
|
||||
async def test_ui_has_csp(self):
|
||||
async def test_ui_tool_has_no_csp(self):
|
||||
"""CSP belongs on the UI resource, not the tool (per MCP Apps spec)."""
|
||||
app = FastMCPApp("test")
|
||||
|
||||
@app.ui()
|
||||
|
|
@ -256,8 +257,7 @@ class TestAppUI:
|
|||
tools = await app._list_tools()
|
||||
meta = tools[0].meta
|
||||
assert meta is not None
|
||||
csp = meta["ui"].get("csp")
|
||||
assert csp is not None
|
||||
assert "csp" not in meta["ui"]
|
||||
|
||||
async def test_ui_with_title_and_description(self):
|
||||
app = FastMCPApp("test")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue