refactor: add typed mcp source connection seam

This commit is contained in:
lda
2026-06-07 13:50:57 +07:00 Verified
parent f79741eb2a
commit 195a967527
27 changed files with 690 additions and 217 deletions
+21 -21
View File
@@ -112,8 +112,8 @@ def everything_server_connection() -> ConnectionConfig | None:
class FakeAdapter:
async def list_tools(
self,
connection: ConnectionConfig,
auth: AuthRecord | None,
connection,
auth,
) -> list[DiscoveredTool]:
return [
DiscoveredTool(
@@ -145,8 +145,8 @@ class FakeAdapter:
async def list_resources(
self,
connection: ConnectionConfig,
auth: AuthRecord | None,
connection,
auth,
) -> list[DiscoveredResource]:
return [
DiscoveredResource(
@@ -161,8 +161,8 @@ class FakeAdapter:
async def list_prompts(
self,
connection: ConnectionConfig,
auth: AuthRecord | None,
connection,
auth,
) -> list[DiscoveredPrompt]:
return [
DiscoveredPrompt(
@@ -182,19 +182,19 @@ class FakeAdapter:
async def get_connection_metadata(
self,
connection: ConnectionConfig,
auth: AuthRecord | None,
connection,
auth,
) -> dict[str, Any]:
return {
"server": connection.server,
"server": getattr(connection, "provider", getattr(connection, "server", None)),
"account": connection.account,
"auth_scheme": auth.scheme if auth is not None else None,
}
async def read_resource(
self,
connection: ConnectionConfig,
auth: AuthRecord | None,
connection,
auth,
uri: str,
) -> dict[str, Any]:
if uri != "demo://docs/welcome":
@@ -211,8 +211,8 @@ class FakeAdapter:
async def get_prompt(
self,
connection: ConnectionConfig,
auth: AuthRecord | None,
connection,
auth,
prompt_name: str,
arguments: dict[str, str] | None = None,
) -> dict[str, Any]:
@@ -234,8 +234,8 @@ class FakeAdapter:
async def invoke_method(
self,
connection: ConnectionConfig,
auth: AuthRecord | None,
connection,
auth,
method: str,
params: dict[str, Any] | None = None,
) -> dict[str, Any]:
@@ -247,8 +247,8 @@ class FakeAdapter:
async def send_notification(
self,
connection: ConnectionConfig,
auth: AuthRecord | None,
connection,
auth,
method: str,
params: dict[str, Any] | None = None,
) -> None:
@@ -256,8 +256,8 @@ class FakeAdapter:
async def call_tool(
self,
connection: ConnectionConfig,
auth: AuthRecord | None,
connection,
auth,
tool_name: str,
payload: dict[str, Any],
) -> ToolCallResult:
@@ -272,8 +272,8 @@ class FakeAdapter:
class FailingDiscoveryAdapter(FakeAdapter):
async def list_tools(
self,
connection: ConnectionConfig,
auth: AuthRecord | None,
connection,
auth,
) -> list[DiscoveredTool]:
raise PermissionError("Access is denied")