diff --git a/tools/server/public_simplechat/local.tools/simplemcp.py b/tools/server/public_simplechat/local.tools/simplemcp.py index 6375a96a9d..8030241dbd 100644 --- a/tools/server/public_simplechat/local.tools/simplemcp.py +++ b/tools/server/public_simplechat/local.tools/simplemcp.py @@ -101,7 +101,8 @@ class ProxyHandler(http.server.BaseHTTPRequestHandler): try: if not gMe.op.toolManager: raise RuntimeError("DBUG:PH:MCPToolsCall:ToolManager uninitialised") - resp = gMe.op.toolManager.tc_handle(oRPC["id"], oRPC["params"]["name"], oRPC["params"]["arguments"], self.headers) + inHeaders: Any = self.headers + resp = gMe.op.toolManager.tc_handle(oRPC["id"], oRPC["params"]["name"], oRPC["params"]["arguments"], inHeaders) if not resp.response.callOk: self.send_error(resp.response.statusCode, resp.response.statusMsg) return @@ -141,13 +142,16 @@ class ProxyHandler(http.server.BaseHTTPRequestHandler): acGot = self.auth_check() if not acGot.callOk: self.send_error(acGot.statusCode, acGot.statusMsg) + return pr = urllib.parse.urlparse(self.path) print(f"DBUG:PH:Post:{pr}") if pr.path != '/mcp': self.send_error(400, f"WARN:UnknownPath:{pr.path}") + return body = self.rfile.read(gMe.nw.maxReadBytes) if len(body) == gMe.nw.maxReadBytes: self.send_error(400, f"WARN:RequestOverflow:{pr.path}") + return self.mcp_run(body) def do_POST(self): diff --git a/tools/server/public_simplechat/local.tools/toolcall.py b/tools/server/public_simplechat/local.tools/toolcall.py index 102b058bd9..c73b20e116 100644 --- a/tools/server/public_simplechat/local.tools/toolcall.py +++ b/tools/server/public_simplechat/local.tools/toolcall.py @@ -1,11 +1,9 @@ # Tool Call Base # by Humans for All -from typing import Any, TypeAlias, TYPE_CHECKING -from dataclasses import dataclass +from typing import Any, TypeAlias +from dataclasses import dataclass, field -if TYPE_CHECKING: - import email.message # @@ -47,8 +45,8 @@ TCInProperties: TypeAlias = dict[str, TCInProperty] @dataclass class TCInParameters(): type: str = "object" - properties: TCInProperties = {} - required: list[str] = [] + properties: TCInProperties = field(default_factory=dict) + required: list[str] = field(default_factory=list) @dataclass class TCFunction(): @@ -94,7 +92,8 @@ class MCPToolCallResponse: result: MCPTCRResult jsonrpc: str = "2.0" -HttpHeaders: TypeAlias = dict[str, str] | email.message.Message[str, str] +#HttpHeaders: TypeAlias = dict[str, str] | email.message.Message[str, str] +HttpHeaders: TypeAlias = dict[str, str] @dataclass