84 lines
2.1 KiB
TypeScript
84 lines
2.1 KiB
TypeScript
/**
|
|
* @deprecated This file is deprecated in favor of centralized MCP registry in Convex
|
|
*
|
|
* MCP Registry - Global storage for configured MCP servers
|
|
* These can be selected and reused across multiple nodes
|
|
*
|
|
* MIGRATION NOTE: This localStorage-based registry has been replaced
|
|
* with a centralized registry stored in Convex. All MCP configurations
|
|
* are now managed through Settings → MCP Registry and stored persistently
|
|
* in the database.
|
|
*
|
|
* See: /convex/mcpServers.ts for the new implementation
|
|
*/
|
|
|
|
const MCP_REGISTRY_KEY = 'mcp_registry';
|
|
|
|
export interface MCPServer {
|
|
id: string;
|
|
name: string;
|
|
description: string;
|
|
url: string;
|
|
authType: 'none' | 'api-key' | 'oauth';
|
|
accessToken?: string;
|
|
tools: string[];
|
|
category: 'web' | 'ai' | 'data' | 'custom';
|
|
}
|
|
|
|
/**
|
|
* Get all configured MCP servers from global registry
|
|
*/
|
|
export function getMCPRegistry(): MCPServer[] {
|
|
if (typeof window === 'undefined') return [];
|
|
|
|
const stored = localStorage.getItem(MCP_REGISTRY_KEY);
|
|
if (!stored) return [];
|
|
|
|
try {
|
|
return JSON.parse(stored);
|
|
} catch (e) {
|
|
console.error('Failed to parse MCP registry:', e);
|
|
return [];
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Save MCP server to global registry
|
|
*/
|
|
export function saveMCPToRegistry(server: MCPServer): void {
|
|
const registry = getMCPRegistry();
|
|
const existingIndex = registry.findIndex(s => s.id === server.id);
|
|
|
|
if (existingIndex >= 0) {
|
|
registry[existingIndex] = server;
|
|
} else {
|
|
registry.push(server);
|
|
}
|
|
|
|
localStorage.setItem(MCP_REGISTRY_KEY, JSON.stringify(registry));
|
|
}
|
|
|
|
/**
|
|
* Remove MCP server from global registry
|
|
*/
|
|
export function removeMCPFromRegistry(id: string): void {
|
|
const registry = getMCPRegistry();
|
|
const filtered = registry.filter(s => s.id !== id);
|
|
localStorage.setItem(MCP_REGISTRY_KEY, JSON.stringify(filtered));
|
|
}
|
|
|
|
/**
|
|
* Get a specific MCP server by ID
|
|
*/
|
|
export function getMCPFromRegistry(id: string): MCPServer | null {
|
|
const registry = getMCPRegistry();
|
|
return registry.find(s => s.id === id) || null;
|
|
}
|
|
|
|
/**
|
|
* Check if there are any configured MCP servers
|
|
*/
|
|
export function hasConfiguredMCPs(): boolean {
|
|
return getMCPRegistry().length > 0;
|
|
}
|