diff --git a/src/mcp_scan/mcp_client.py b/src/mcp_scan/mcp_client.py index aea2687..81579be 100644 --- a/src/mcp_scan/mcp_client.py +++ b/src/mcp_scan/mcp_client.py @@ -12,6 +12,7 @@ from mcp.client.streamable_http import streamablehttp_client from mcp_scan.models import ( + AmazonQDeveloperMCPConfigFile, ClaudeConfigFile, MCPConfig, ServerSignature, @@ -142,6 +143,7 @@ def parse_and_validate(config: dict) -> MCPConfig: ClaudeConfigFile, # used by most clients VSCodeConfigFile, # used by vscode settings.json VSCodeMCPConfig, # used by vscode mcp.json + AmazonQDeveloperMCPConfigFile, # used by amazon q developer ] for model in models: try: diff --git a/src/mcp_scan/models.py b/src/mcp_scan/models.py index 9b1fcf9..3460e40 100644 --- a/src/mcp_scan/models.py +++ b/src/mcp_scan/models.py @@ -123,6 +123,17 @@ def set_servers(self, servers: dict[str, SSEServer | StdioServer | StreamableHTT self.mcp.servers = servers +class AmazonQDeveloperMCPConfigFile(MCPConfig): + model_config = ConfigDict() + mcpServers: dict[str, SSEServer | StdioServer | StreamableHTTPServer] + + def get_servers(self) -> dict[str, SSEServer | StdioServer | StreamableHTTPServer]: + return self.mcpServers + + def set_servers(self, servers: dict[str, SSEServer | StdioServer | StreamableHTTPServer]) -> None: + self.mcpServers = servers + + class ScanError(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True) message: str | None = None diff --git a/src/mcp_scan/paths.py b/src/mcp_scan/paths.py index f61d0b6..321e8e2 100644 --- a/src/mcp_scan/paths.py +++ b/src/mcp_scan/paths.py @@ -7,6 +7,7 @@ "windsurf": ["~/.codeium/windsurf/mcp_config.json"], "cursor": ["~/.cursor/mcp.json"], "vscode": ["~/.vscode/mcp.json", "~/.config/Code/User/settings.json"], + "amazonqdeveloper": ["~/.aws/amazonq/mcp.json"], } WELL_KNOWN_MCP_PATHS = [path for client, paths in CLIENT_PATHS.items() for path in paths] elif sys.platform == "darwin": @@ -16,6 +17,7 @@ "cursor": ["~/.cursor/mcp.json"], "claude": ["~/Library/Application Support/Claude/claude_desktop_config.json"], "vscode": ["~/.vscode/mcp.json", "~/Library/Application Support/Code/User/settings.json"], + "amazonqdeveloper": ["~/.aws/amazonq/mcp.json"], } WELL_KNOWN_MCP_PATHS = [path for client, paths in CLIENT_PATHS.items() for path in paths] elif sys.platform == "win32": @@ -24,6 +26,7 @@ "cursor": ["~/.cursor/mcp.json"], "claude": ["~/AppData/Roaming/Claude/claude_desktop_config.json"], "vscode": ["~/.vscode/mcp.json", "~/AppData/Roaming/Code/User/settings.json"], + "amazonqdeveloper": ["~/.aws/amazonq/mcp.json"], } WELL_KNOWN_MCP_PATHS = [path for client, paths in CLIENT_PATHS.items() for path in paths]