Merge pull request #81 from modelcontextprotocol/ashwin/serverport

Respect custom server port
This commit is contained in:
ashwin-ant
2024-11-27 08:59:59 -05:00
committed by GitHub
3 changed files with 20 additions and 13 deletions

View File

@@ -57,6 +57,10 @@ import ToolsTab from "./components/ToolsTab";
const DEFAULT_REQUEST_TIMEOUT_MSEC = 10000;
const params = new URLSearchParams(window.location.search);
const PROXY_PORT = params.get("proxyPort") ?? "3000";
const PROXY_SERVER_URL = `http://localhost:${PROXY_PORT}`;
const App = () => {
const [connectionStatus, setConnectionStatus] = useState<
"disconnected" | "connected" | "error"
@@ -82,7 +86,8 @@ const App = () => {
const [args, setArgs] = useState<string>(() => {
return localStorage.getItem("lastArgs") || "";
});
const [url, setUrl] = useState<string>("http://localhost:3001/sse");
const [sseUrl, setSseUrl] = useState<string>("http://localhost:3001/sse");
const [transportType, setTransportType] = useState<"stdio" | "sse">("stdio");
const [requestHistory, setRequestHistory] = useState<
{ request: string; response?: string }[]
@@ -191,7 +196,7 @@ const App = () => {
}, [args]);
useEffect(() => {
fetch("http://localhost:3000/config")
fetch(`${PROXY_SERVER_URL}/config`)
.then((response) => response.json())
.then((data) => {
setEnv(data.defaultEnvironment);
@@ -404,7 +409,7 @@ const App = () => {
},
);
const backendUrl = new URL("http://localhost:3000/sse");
const backendUrl = new URL(`${PROXY_SERVER_URL}/sse`);
backendUrl.searchParams.append("transportType", transportType);
if (transportType === "stdio") {
@@ -412,7 +417,7 @@ const App = () => {
backendUrl.searchParams.append("args", args);
backendUrl.searchParams.append("env", JSON.stringify(env));
} else {
backendUrl.searchParams.append("url", url);
backendUrl.searchParams.append("url", sseUrl);
}
const clientTransport = new SSEClientTransport(backendUrl);
@@ -469,8 +474,8 @@ const App = () => {
setCommand={setCommand}
args={args}
setArgs={setArgs}
url={url}
setUrl={setUrl}
sseUrl={sseUrl}
setSseUrl={setSseUrl}
env={env}
setEnv={setEnv}
onConnect={connectMcpServer}

View File

@@ -22,8 +22,8 @@ interface SidebarProps {
setCommand: (command: string) => void;
args: string;
setArgs: (args: string) => void;
url: string;
setUrl: (url: string) => void;
sseUrl: string;
setSseUrl: (url: string) => void;
env: Record<string, string>;
setEnv: (env: Record<string, string>) => void;
onConnect: () => void;
@@ -38,8 +38,8 @@ const Sidebar = ({
setCommand,
args,
setArgs,
url,
setUrl,
sseUrl,
setSseUrl,
env,
setEnv,
onConnect,
@@ -75,6 +75,7 @@ const Sidebar = ({
</SelectContent>
</Select>
</div>
{transportType === "stdio" ? (
<>
<div className="space-y-2">
@@ -99,8 +100,8 @@ const Sidebar = ({
<label className="text-sm font-medium">URL</label>
<Input
placeholder="URL"
value={url}
onChange={(e) => setUrl(e.target.value)}
value={sseUrl}
onChange={(e) => setSseUrl(e.target.value)}
/>
</div>
)}