49b9bb6724
Deploy Docs / deploy-docs (push) Failing after 1s
Conformance Tests / client-conformance (push) Failing after 3s
Conformance Tests / server-conformance (push) Failing after 1s
GitHub Actions Security Analysis / zizmor (push) Failing after 1s
CI / checks (push) Failing after 59m20s
CI / all-green (push) Waiting to run
27 lines
820 B
Python
27 lines
820 B
Python
import asyncio
|
|
|
|
from mcp_types import Implementation
|
|
|
|
from mcp import ClientSessionGroup, StdioServerParameters
|
|
|
|
|
|
def by_server(name: str, server_info: Implementation) -> str:
|
|
return f"{server_info.name}.{name}"
|
|
|
|
|
|
async def main() -> None:
|
|
library = StdioServerParameters(command="uv", args=["run", "mcp", "run", "library_server.py"])
|
|
web = StdioServerParameters(command="uv", args=["run", "mcp", "run", "web_server.py"])
|
|
|
|
async with ClientSessionGroup(component_name_hook=by_server) as group:
|
|
await group.connect_to_server(library)
|
|
await group.connect_to_server(web)
|
|
|
|
print(sorted(group.tools))
|
|
result = await group.call_tool("Web.search", {"query": "model context protocol"})
|
|
print(result.structured_content)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|