docs: load media examples from disk instead of inline base64 (#3108)
This commit is contained in:
parent
ebcc4dc3fb
commit
3a6f2996cd
4 changed files with 108 additions and 50 deletions
|
|
@ -1,16 +1,14 @@
|
|||
import base64
|
||||
from pathlib import Path
|
||||
|
||||
from mcp.server import MCPServer
|
||||
from mcp.server.mcpserver import Image
|
||||
|
||||
mcp = MCPServer("Brand kit")
|
||||
|
||||
LOGO_PNG = base64.b64decode(
|
||||
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGOQ9bsBAAHPAURf8l/aAAAAAElFTkSuQmCC"
|
||||
)
|
||||
LOGO_FILE = Path(__file__).parent / "logo.png" # or the path to your file on disk
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def logo() -> Image:
|
||||
"""The brand logo as a PNG."""
|
||||
return Image(data=LOGO_PNG, format="png")
|
||||
return Image(path=LOGO_FILE)
|
||||
|
|
|
|||
|
|
@ -1,24 +1,21 @@
|
|||
import base64
|
||||
from pathlib import Path
|
||||
|
||||
from mcp.server import MCPServer
|
||||
from mcp.server.mcpserver import Audio, Image
|
||||
|
||||
mcp = MCPServer("Brand kit")
|
||||
|
||||
LOGO_PNG = base64.b64decode(
|
||||
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGOQ9bsBAAHPAURf8l/aAAAAAElFTkSuQmCC"
|
||||
)
|
||||
|
||||
CHIME_WAV = base64.b64decode("UklGRjQAAABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YRAAAAAAAAAAAAAAAAAAAAAAAAAA")
|
||||
LOGO_FILE = Path(__file__).parent / "logo.png"
|
||||
CHIME_FILE = Path(__file__).parent / "chime.wav"
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def logo() -> Image:
|
||||
"""The brand logo as a PNG."""
|
||||
return Image(data=LOGO_PNG, format="png")
|
||||
return Image(path=LOGO_FILE)
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def chime() -> Audio:
|
||||
"""The notification chime as a WAV."""
|
||||
return Audio(data=CHIME_WAV, format="wav")
|
||||
return Audio(path=CHIME_FILE)
|
||||
|
|
|
|||
|
|
@ -1,20 +1,15 @@
|
|||
from mcp_types import Icon
|
||||
from pathlib import Path
|
||||
|
||||
from mcp.server import MCPServer
|
||||
from mcp.server.mcpserver import Image
|
||||
|
||||
LOGO = Icon(src="https://example.com/brand-kit.png", mime_type="image/png", sizes=["48x48"])
|
||||
PALETTE = Icon(src="https://example.com/palette.svg", mime_type="image/svg+xml", sizes=["any"])
|
||||
mcp = MCPServer("Brand kit")
|
||||
|
||||
mcp = MCPServer("Brand kit", icons=[LOGO])
|
||||
LOGO_FILE = Path(__file__).parent / "logo.png"
|
||||
|
||||
|
||||
@mcp.tool(icons=[PALETTE])
|
||||
def palette() -> list[str]:
|
||||
"""The brand colour palette as hex codes."""
|
||||
return ["#1d4ed8", "#f59e0b", "#10b981"]
|
||||
|
||||
|
||||
@mcp.resource("brand://guidelines", icons=[LOGO])
|
||||
def guidelines() -> str:
|
||||
"""How to use the brand assets."""
|
||||
return "Use the primary colour for calls to action."
|
||||
@mcp.tool()
|
||||
def logo_from_bytes() -> Image:
|
||||
"""The brand logo as a PNG."""
|
||||
png = LOGO_FILE.read_bytes() # a database read, an HTTP response, Pillow output...
|
||||
return Image(data=png, format="png")
|
||||
|
|
|
|||
20
docs_src/media/tutorial004.py
Normal file
20
docs_src/media/tutorial004.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
from mcp_types import Icon
|
||||
|
||||
from mcp.server import MCPServer
|
||||
|
||||
LOGO = Icon(src="https://example.com/brand-kit.png", mime_type="image/png", sizes=["48x48"])
|
||||
PALETTE = Icon(src="https://example.com/palette.svg", mime_type="image/svg+xml", sizes=["any"])
|
||||
|
||||
mcp = MCPServer("Brand kit", icons=[LOGO])
|
||||
|
||||
|
||||
@mcp.tool(icons=[PALETTE])
|
||||
def palette() -> list[str]:
|
||||
"""The brand colour palette as hex codes."""
|
||||
return ["#1d4ed8", "#f59e0b", "#10b981"]
|
||||
|
||||
|
||||
@mcp.resource("brand://guidelines", icons=[LOGO])
|
||||
def guidelines() -> str:
|
||||
"""How to use the brand assets."""
|
||||
return "Use the primary colour for calls to action."
|
||||
Loading…
Reference in a new issue