More safety around always allowing MCP

This commit is contained in:
Matt Rubens
2024-12-13 17:16:27 -05:00
parent ed626a604e
commit 23efdeaf35
9 changed files with 51 additions and 8 deletions

View File

@@ -5,9 +5,10 @@ import { vscode } from "../../utils/vscode"
type McpToolRowProps = {
tool: McpTool
serverName?: string
alwaysAllowMcp?: boolean
}
const McpToolRow = ({ tool, serverName }: McpToolRowProps) => {
const McpToolRow = ({ tool, serverName, alwaysAllowMcp }: McpToolRowProps) => {
const handleAlwaysAllowChange = () => {
if (!serverName) return;
@@ -33,7 +34,7 @@ const McpToolRow = ({ tool, serverName }: McpToolRowProps) => {
<span className="codicon codicon-symbol-method" style={{ marginRight: "6px" }}></span>
<span style={{ fontWeight: 500 }}>{tool.name}</span>
</div>
{serverName && (
{serverName && alwaysAllowMcp && (
<VSCodeCheckbox
checked={tool.alwaysAllow}
onChange={handleAlwaysAllowChange}

View File

@@ -17,7 +17,7 @@ type McpViewProps = {
}
const McpView = ({ onDone }: McpViewProps) => {
const { mcpServers: servers } = useExtensionState()
const { mcpServers: servers, alwaysAllowMcp } = useExtensionState()
// const [servers, setServers] = useState<McpServer[]>([
// // Add some mock servers for testing
// {
@@ -126,7 +126,7 @@ const McpView = ({ onDone }: McpViewProps) => {
{servers.length > 0 && (
<div style={{ display: "flex", flexDirection: "column", gap: "10px" }}>
{servers.map((server) => (
<ServerRow key={server.name} server={server} />
<ServerRow key={server.name} server={server} alwaysAllowMcp={alwaysAllowMcp} />
))}
</div>
)}
@@ -152,7 +152,7 @@ const McpView = ({ onDone }: McpViewProps) => {
}
// Server Row Component
const ServerRow = ({ server }: { server: McpServer }) => {
const ServerRow = ({ server, alwaysAllowMcp }: { server: McpServer, alwaysAllowMcp?: boolean }) => {
const [isExpanded, setIsExpanded] = useState(false)
const getStatusColor = () => {
@@ -260,6 +260,7 @@ const ServerRow = ({ server }: { server: McpServer }) => {
key={tool.name}
tool={tool}
serverName={server.name}
alwaysAllowMcp={alwaysAllowMcp}
/>
))}
</div>