Merge pull request #66 from simonw/patch-1

Fix first Python demo so it works without further modifications
This commit is contained in:
David Soria Parra 2024-11-25 20:10:14 +00:00 • committed by GitHub
commit e41482821c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

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,20 +127,25 @@ async def handle_get_prompt(
] ]
) )
# Run the server as STDIO async def run():
async with mcp.server.stdio.stdio_server() as (read_stream, write_stream): # Run the server as STDIO
await server.run( async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
read_stream, await server.run(
write_stream, read_stream,
InitializationOptions( write_stream,
server_name="example", InitializationOptions(
server_version="0.1.0", server_name="example",
capabilities=server.get_capabilities( server_version="0.1.0",
notification_options=NotificationOptions(), capabilities=server.get_capabilities(
experimental_capabilities={}, notification_options=NotificationOptions(),
experimental_capabilities={},
)
) )
) )
)
if __name__ == "__main__":
import asyncio
asyncio.run(run())
``` ```
### Creating a Client ### Creating a Client