11import json
22import logging
33import os
4- from typing import Any , Dict , List , Optional
4+ from typing import Any
55
66logger = logging .getLogger (__name__ )
77
@@ -12,7 +12,7 @@ class McpServer:
1212 def __init__ (
1313 self ,
1414 name : str ,
15- server_config : Dict [str , Any ],
15+ server_config : dict [str , Any ],
1616 ):
1717 self .name = name
1818 self .type = server_config .get ("type" )
@@ -24,11 +24,11 @@ def __init__(
2424 self .env [key ] = os .environ [key ]
2525
2626 @property
27- def file_path (self ) -> Optional [ str ] :
27+ def file_path (self ) -> str | None :
2828 """Get the file path from args if available."""
2929 return self .args [0 ] if self .args and len (self .args ) > 0 else None
3030
31- def to_dict (self ) -> Dict [str , Any ]:
31+ def to_dict (self ) -> dict [str , Any ]:
3232 """Convert the server model back to a dictionary."""
3333 return {"type" : self .type , "command" : self .command , "args" : self .args }
3434
@@ -39,8 +39,8 @@ def __repr__(self) -> str:
3939class McpConfig :
4040 def __init__ (self , config_path : str = "mcp.json" ):
4141 self .config_path = config_path
42- self ._servers : Dict [str , McpServer ] = {}
43- self ._raw_config : Dict [str , Any ] = {}
42+ self ._servers : dict [str , McpServer ] = {}
43+ self ._raw_config : dict [str , Any ] = {}
4444
4545 if self .exists :
4646 self ._load_config ()
@@ -68,11 +68,11 @@ def _load_config(self) -> None:
6868 logger .error (f"Failed to load mcp.json: { str (e )} " )
6969 raise
7070
71- def get_servers (self ) -> List [McpServer ]:
71+ def get_servers (self ) -> list [McpServer ]:
7272 """Get list of all server models."""
7373 return list (self ._servers .values ())
7474
75- def get_server (self , name : str ) -> Optional [ McpServer ] :
75+ def get_server (self , name : str ) -> McpServer | None :
7676 """
7777 Get a server model by name.
7878 If there's only one server available, return that one regardless of name.
@@ -85,11 +85,11 @@ def get_server(self, name: str) -> Optional[McpServer]:
8585 # Otherwise, fall back to looking up by name
8686 return self ._servers .get (name )
8787
88- def get_server_names (self ) -> List [str ]:
88+ def get_server_names (self ) -> list [str ]:
8989 """Get list of all server names."""
9090 return list (self ._servers .keys ())
9191
92- def load_config (self ) -> Dict [str , Any ]:
92+ def load_config (self ) -> dict [str , Any ]:
9393 """Load and validate MCP servers configuration."""
9494 if not self .exists :
9595 raise FileNotFoundError (f"Config file not found: { self .config_path } " )
0 commit comments