Merge pull request #4942 from menloresearch/enhancement/mcp-servers-search-cache-results
enhancement: cache MCP Server search results to enhance UX
This commit is contained in:
parent
aefe9cc23a
commit
946e8dda65
@ -1,6 +1,8 @@
|
|||||||
import React, { useState, useEffect, useCallback } from 'react'
|
import React, { useState, useEffect, useCallback } from 'react'
|
||||||
|
|
||||||
import { Button, Input } from '@janhq/joi'
|
import { Button, Input } from '@janhq/joi'
|
||||||
|
import { useAtom } from 'jotai'
|
||||||
|
import { atomWithStorage } from 'jotai/utils'
|
||||||
import { PlusIcon } from 'lucide-react'
|
import { PlusIcon } from 'lucide-react'
|
||||||
import { npxFinder, NPMPackage } from 'npx-scope-finder'
|
import { npxFinder, NPMPackage } from 'npx-scope-finder'
|
||||||
|
|
||||||
@ -16,12 +18,13 @@ interface MCPConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const mcpPackagesAtom = atomWithStorage<NPMPackage[]>('mcpPackages', [])
|
||||||
const MCPSearch = () => {
|
const MCPSearch = () => {
|
||||||
const [showToast, setShowToast] = useState(false)
|
const [showToast, setShowToast] = useState(false)
|
||||||
const [toastMessage, setToastMessage] = useState('')
|
const [toastMessage, setToastMessage] = useState('')
|
||||||
const [toastType, setToastType] = useState<'success' | 'error'>('success')
|
const [toastType, setToastType] = useState<'success' | 'error'>('success')
|
||||||
const [orgName, setOrgName] = useState('@modelcontextprotocol')
|
const [orgName, setOrgName] = useState('@modelcontextprotocol')
|
||||||
const [packages, setPackages] = useState<NPMPackage[]>([])
|
const [packages, setPackages] = useAtom(mcpPackagesAtom)
|
||||||
const [loading, setLoading] = useState(false)
|
const [loading, setLoading] = useState(false)
|
||||||
const [error, setError] = useState('')
|
const [error, setError] = useState('')
|
||||||
|
|
||||||
@ -170,7 +173,7 @@ const MCPSearch = () => {
|
|||||||
// Check if this server already exists
|
// Check if this server already exists
|
||||||
if (config.mcpServers[serverName]) {
|
if (config.mcpServers[serverName]) {
|
||||||
toaster({
|
toaster({
|
||||||
title: `Add ${serverName} success`,
|
title: `Add ${serverName}`,
|
||||||
description: `Server ${serverName} already exists in configuration`,
|
description: `Server ${serverName} already exists in configuration`,
|
||||||
type: 'error',
|
type: 'error',
|
||||||
})
|
})
|
||||||
@ -191,7 +194,7 @@ const MCPSearch = () => {
|
|||||||
await window.core?.api?.restartMcpServers()
|
await window.core?.api?.restartMcpServers()
|
||||||
|
|
||||||
toaster({
|
toaster({
|
||||||
title: `Add ${serverName} success`,
|
title: `Add ${serverName}`,
|
||||||
description: `Added ${serverName} to MCP configuration`,
|
description: `Added ${serverName} to MCP configuration`,
|
||||||
type: 'success',
|
type: 'success',
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user