Skip to content

Commit f072b2e

Browse files
committed
update demo, formatting
1 parent 0e06e9b commit f072b2e

3 files changed

Lines changed: 8 additions & 18 deletions

File tree

examples/rc_basics/mcp_demo.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import streamlit as st
22
import asyncio
33
import requestcompletion as rc
4-
from requestcompletion.nodes.library.mcp_tool import async_from_mcp_server
4+
from requestcompletion.nodes.library.mcp_tool import from_mcp_server
55
from requestcompletion.rc_mcp.main import MCPHttpParams
66

77
# MCP server URL
88
urls = [
9-
"https://mcp.paypal.com/sse",
109
"https://remote.mcpservers.org/fetch/mcp",
1110
]
1211

@@ -15,11 +14,8 @@
1514

1615
# Initialize tools in session state
1716
async def get_node():
18-
all_tools = set()
19-
tasks = [async_from_mcp_server(MCPHttpParams(url=url)) for url in urls]
20-
results = await asyncio.gather(*tasks)
21-
for tools in results:
22-
all_tools.update(tools)
17+
servers = [from_mcp_server(MCPHttpParams(url=url)) for url in urls]
18+
all_tools = set(*[server.tools for server in servers])
2319

2420
return rc.library.tool_call_llm(
2521
connected_nodes=all_tools,

src/requestcompletion/nodes/library/mcp_tool.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
from typing import Type
21

32
from mcp import StdioServerParameters
4-
import asyncio
53

6-
from ...rc_mcp.main import MCPAsyncClient, MCPHttpParams, from_mcp, MCPServer
7-
from ...nodes.nodes import Node
4+
from ...rc_mcp.main import MCPHttpParams, MCPServer
85

96

107
def from_mcp_server(

src/requestcompletion/rc_mcp/main.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from datetime import timedelta
55
from typing import Any, Dict
66

7-
from typing_extensions import Self, Type
7+
from typing_extensions import Self
88

99
from mcp import ClientSession, StdioServerParameters
1010
from mcp.client.stdio import stdio_client
@@ -139,22 +139,18 @@ def __exit__(self, exc_type, exc, tb):
139139
self.close()
140140

141141
def _thread_main(self):
142-
print("MCP server thread is starting...")
143142
loop = asyncio.new_event_loop()
144143
asyncio.set_event_loop(loop)
145144
self._loop = loop
146145

147146
self._shutdown_event = asyncio.Event()
148147

149-
print("Setting up MCP server in thread...")
150148
self._loop.run_until_complete(self.setup())
151149
self._ready_event.set()
152150

153-
print("MCP server setup complete, waiting for shutdown...")
154151
loop.run_until_complete(self._shutdown_event.wait())
155152

156153
self._loop.close()
157-
print("MCP server thread has been closed.")
158154

159155
async def setup(self):
160156
"""
@@ -200,15 +196,16 @@ def __init__(self, **kwargs):
200196
self.kwargs = kwargs
201197

202198
async def invoke(self):
203-
print("Invoke!")
204199
try:
205200
future = asyncio.run_coroutine_threadsafe(
206201
client.call_tool(tool.name, self.kwargs), loop
207202
)
208203
result = future.result(timeout=30)
209204
return result.content if hasattr(result, "content") else result
210205
except Exception as e:
211-
raise RuntimeError(f"Tool invocation failed: {type(e).__name__}: {str(e)}") from e
206+
raise RuntimeError(
207+
f"Tool invocation failed: {type(e).__name__}: {str(e)}"
208+
) from e
212209

213210
@classmethod
214211
def pretty_name(cls):

0 commit comments

Comments
 (0)