MCPcopy Create free account
hub / github.com/algorithmicsuperintelligence/optillm / execute_tool_sse

Function execute_tool_sse

optillm/plugins/mcp_plugin.py:742–776  ·  view source on GitHub ↗

Execute tool using SSE transport

(server_config: ServerConfig, tool_name: str, arguments: Dict[str, Any])

Source from the content-addressed store, hash-verified

740 return {"error": f"Error executing tool via stdio: {str(e)}"}
741
742async def execute_tool_sse(server_config: ServerConfig, tool_name: str, arguments: Dict[str, Any]) -> Dict[str, Any]:
743 """Execute tool using SSE transport"""
744 if not server_config.url:
745 return {"error": "SSE transport requires URL"}
746
747 try:
748 # Expand environment variables in headers
749 expanded_headers = {}
750 for key, value in server_config.headers.items():
751 if isinstance(value, str) and value.startswith("${") and value.endswith("}"):
752 env_var = value[2:-1]
753 expanded_value = os.environ.get(env_var)
754 if expanded_value:
755 expanded_headers[key] = expanded_value
756 else:
757 logger.warning(f"Environment variable {env_var} not found for header {key}")
758 else:
759 expanded_headers[key] = value
760
761 logger.debug(f" URL: {server_config.url}")
762 logger.debug(f" Headers: {list(expanded_headers.keys())}")
763
764 async with sse_client(
765 url=server_config.url,
766 headers=expanded_headers,
767 timeout=server_config.timeout,
768 sse_read_timeout=server_config.sse_read_timeout
769 ) as (read_stream, write_stream):
770 async with LoggingClientSession(read_stream, write_stream) as session:
771 return await execute_tool_with_session(session, tool_name, arguments)
772
773 except Exception as e:
774 logger.error(f"Error with SSE tool execution: {e}")
775 logger.error(traceback.format_exc())
776 return {"error": f"Error executing tool via SSE: {str(e)}"}
777
778async def execute_tool_websocket(server_config: ServerConfig, tool_name: str, arguments: Dict[str, Any]) -> Dict[str, Any]:
779 """Execute tool using WebSocket transport"""

Callers 2

execute_toolFunction · 0.85

Calls 2

Tested by 1