Add instructions field to ServerSession and FastMCP

This commit is contained in:
Salman Mohammed
2025-01-13 13:00:11 -05:00
parent 135191403a
commit bc6746e89b
6 changed files with 18 additions and 5 deletions

View File

@@ -86,9 +86,11 @@ class Settings(BaseSettings):
class FastMCP:
def __init__(self, name: str | None = None, **settings: Any):
def __init__(
self, name: str | None = None, instructions: str | None = None, **settings: Any
):
self.settings = Settings(**settings)
self._mcp_server = MCPServer(name=name or "FastMCP")
self._mcp_server = MCPServer(name=name or "FastMCP", instructions=instructions)
self._tool_manager = ToolManager(
warn_on_duplicate_tools=self.settings.warn_on_duplicate_tools
)
@@ -110,6 +112,10 @@ class FastMCP:
def name(self) -> str:
return self._mcp_server.name
@property
def instructions(self) -> str | None:
return self._mcp_server.instructions
def run(self, transport: Literal["stdio", "sse"] = "stdio") -> None:
"""Run the FastMCP server. Note this is a synchronous function.

View File

@@ -101,9 +101,12 @@ class NotificationOptions:
class Server:
def __init__(self, name: str, version: str | None = None):
def __init__(
self, name: str, version: str | None = None, instructions: str | None = None
):
self.name = name
self.version = version
self.instructions = instructions
self.request_handlers: dict[
type, Callable[..., Awaitable[types.ServerResult]]
] = {
@@ -139,6 +142,7 @@ class Server:
notification_options or NotificationOptions(),
experimental_capabilities or {},
),
instructions=self.instructions,
)
def get_capabilities(

View File

@@ -14,3 +14,4 @@ class InitializationOptions(BaseModel):
server_name: str
server_version: str
capabilities: ServerCapabilities
instructions: str | None = None

View File

@@ -135,6 +135,7 @@ class ServerSession(
name=self._init_options.server_name,
version=self._init_options.server_version,
),
instructions=self._init_options.instructions,
)
)
)