Skip to content

Commit 7714024

Browse files
Issue 587/rest tool error (#778)
* added params extraction from url logic Signed-off-by: Veeresh K <[email protected]> * added params extraction from url logic Signed-off-by: Veeresh K <[email protected]> * Rebase and lint / test Signed-off-by: Mihai Criveti <[email protected]> --------- Signed-off-by: Veeresh K <[email protected]> Signed-off-by: Mihai Criveti <[email protected]> Co-authored-by: Mihai Criveti <[email protected]>
1 parent f3bf738 commit 7714024

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

mcpgateway/services/tool_service.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import re
2323
import time
2424
from typing import Any, AsyncGenerator, Dict, List, Optional
25+
from urllib.parse import parse_qs, urlparse
2526
import uuid
2627

2728
# Third-Party
@@ -756,6 +757,15 @@ async def invoke_tool(self, db: Session, name: str, arguments: Dict[str, Any], r
756757
else:
757758
raise ToolInvocationError(f"Required URL parameter '{param}' not found in arguments")
758759

760+
# --- Extract query params from URL ---
761+
parsed = urlparse(final_url)
762+
final_url = f"{parsed.scheme}://{parsed.netloc}{parsed.path}"
763+
764+
query_params = {k: v[0] for k, v in parse_qs(parsed.query).items()}
765+
766+
# Merge leftover payload + query params
767+
payload.update(query_params)
768+
759769
# Use the tool's request_type rather than defaulting to POST.
760770
method = tool.request_type.upper()
761771
if method == "GET":

0 commit comments

Comments
 (0)