Skip to content

Commit 48a2ae4

Browse files
committed
show-server-info
1 parent b6380bb commit 48a2ae4

File tree

2 files changed

+30
-13
lines changed

2 files changed

+30
-13
lines changed

src/mcp/server/fastmcp/server.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
from mcp.types import Resource as MCPResource
5050
from mcp.types import ResourceTemplate as MCPResourceTemplate
5151
from mcp.types import Tool as MCPTool
52+
from mcp.types import ServerInfo
5253

5354
logger = get_logger(__name__)
5455

@@ -177,7 +178,7 @@ async def _run(self, transport: Literal["stdio", "sse"]):
177178
else: # transport == "sse"
178179
await self.run_sse_async()
179180

180-
async def get_server_info(self):
181+
async def get_server_info(self) -> ServerInfo:
181182
"""
182183
Asynchronously retrieves and returns server information.
183184
@@ -196,18 +197,18 @@ async def get_server_info(self):
196197
- prompts (list): A list of prompts available on the server.
197198
- resource_templates (list): A list of resource templates available on the server.
198199
"""
199-
return {
200-
'name': self.name,
201-
'host': self.settings.host,
202-
'port': self.settings.port,
203-
'instructions': self.instructions,
204-
'assets': {
205-
'tools': await self.list_tools(),
206-
'resources': await self.list_resources(),
207-
'prompts': await self.list_prompts(),
208-
'resource_templates': await self.list_resource_templates()
209-
}
210-
}
200+
return ServerInfo(
201+
name=self.name,
202+
host=self.settings.host,
203+
port=self.settings.port,
204+
instructions=self.instructions,
205+
assets=ServerInfo.ServerInfoAssets(
206+
tools=await self.list_tools(),
207+
resources=await self.list_resources(),
208+
prompts=await self.list_prompts(),
209+
resource_templates=await self.list_resource_templates()
210+
)
211+
)
211212

212213
def _setup_handlers(self) -> None:
213214
"""Set up core MCP protocol handlers."""

src/mcp/types.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,3 +1128,19 @@ class ServerResult(
11281128
]
11291129
):
11301130
pass
1131+
1132+
class ServerInfo(BaseModel):
1133+
class ServerInfoAssets(BaseModel):
1134+
tools: list[Tool]
1135+
prompts: list[Prompt]
1136+
resources: list[Resource]
1137+
resource_templates: list[ResourceTemplate]
1138+
1139+
name: str
1140+
host: str
1141+
port: int
1142+
instructions: str | None
1143+
assets: ServerInfoAssets
1144+
1145+
1146+

0 commit comments

Comments
 (0)