Fix first Python demo so it works

You can't do async with ... outside of an async def function
This commit is contained in:
Simon Willison
2024-11-25 08:44:19 -08:00
committed by GitHub
parent 6063b09d04
commit 569acf077d

View File

@@ -76,6 +76,11 @@ Connections between clients and servers are established through transports like
MCP servers follow a decorator approach to register handlers for MCP primitives like resources, prompts, and tools. The goal is to provide a simple interface for exposing capabilities to LLM clients. MCP servers follow a decorator approach to register handlers for MCP primitives like resources, prompts, and tools. The goal is to provide a simple interface for exposing capabilities to LLM clients.
```python ```python
# /// script
# dependencies = [
# "mcp"
# ]
# ///
from mcp.server import Server, NotificationOptions from mcp.server import Server, NotificationOptions
from mcp.server.models import InitializationOptions from mcp.server.models import InitializationOptions
import mcp.server.stdio import mcp.server.stdio
@@ -122,6 +127,7 @@ async def handle_get_prompt(
] ]
) )
async def run():
# Run the server as STDIO # Run the server as STDIO
async with mcp.server.stdio.stdio_server() as (read_stream, write_stream): async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
await server.run( await server.run(
@@ -136,6 +142,10 @@ async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
) )
) )
) )
if __name__ == "__main__":
import asyncio
asyncio.run(run())
``` ```
### Creating a Client ### Creating a Client