Rebuild the docs around tested examples; shrink README.v2.md to a pitch (#2978)
This commit is contained in:
parent
4caa41f6d5
commit
411a6d3980
1 changed files with 9510 additions and 2639 deletions
26
docs_src/session_groups/tutorial004.py
Normal file
26
docs_src/session_groups/tutorial004.py
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
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())
|
||||
Loading…
Reference in a new issue