Files
patchy631--ai-engineering-hub/open-agent-builder/lib/workflow/mcp-registry.ts
T
2026-07-13 12:37:47 +08:00

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;
}