Skip to content

Commit e627122

Browse files
committed
Update bug.yaml w/ fully-self-contained client+server example
1 parent df3e428 commit e627122

File tree

1 file changed

+42
-1
lines changed

1 file changed

+42
-1
lines changed

.github/ISSUE_TEMPLATE/bug.yaml

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,50 @@ body:
3939
demonstrating the bug.
4040
4141
placeholder: |
42+
#!/usr/bin/env uv run
43+
# /// script
44+
# requires-python = ">=3.11"
45+
# dependencies = [
46+
# "anyio",
47+
# "mcp",
48+
# ]
49+
# ///
50+
import threading
51+
52+
import anyio
53+
54+
from mcp.client.session import ClientSession
55+
from mcp.client.streamable_http import streamablehttp_client
4256
from mcp.server.fastmcp import FastMCP
4357
44-
...
58+
59+
async def run_server():
60+
mcp = FastMCP()
61+
62+
@mcp.tool()
63+
def add(a: int, b: int) -> int:
64+
"""Add two numbers."""
65+
return a + b
66+
67+
# ...
68+
69+
await mcp.run_streamable_http_async()
70+
71+
async def run_client():
72+
async with streamablehttp_client("http://localhost:8000/mcp") as (read_stream, write_stream, _):
73+
async with ClientSession(read_stream, write_stream) as session:
74+
await session.initialize()
75+
76+
print(f'\nTool result: {await session.call_tool("add", {"a": 1, "b": 2})}\n')
77+
78+
# ...
79+
80+
81+
if __name__ == "__main__":
82+
# Run the server in a background thread
83+
threading.Thread(target=lambda: anyio.run(run_server), daemon=True).start()
84+
85+
anyio.run(run_client)
4586
render: Python
4687

4788
- type: textarea

0 commit comments

Comments
 (0)