/** * Society Protocol — MCP Bridge * * Bidirectional bridge allowing external MCP-compatible agents * (Claude, Cursor, etc.) to participate in Society Protocol * workflows natively. * * - Inbound: MCP tool calls → Society SWP actions * - Outbound: Society events → MCP notifications/resources */ import { EventEmitter } from 'events'; import type { Storage } from '../storage.js'; import type { RoomManager } from '../rooms.js'; import type { CocEngine } from '../coc.js'; import type { KnowledgePool } from '../knowledge.js'; import type { Identity } from '../identity.js'; export interface MCPBridgeConfig { identity: Identity; storage: Storage; rooms: RoomManager; coc: CocEngine; knowledge: KnowledgePool; /** Limit concurrent bridge sessions */ maxSessions?: number; } export interface MCPToolDefinition { name: string; description: string; inputSchema: Record; } export interface MCPToolCall { name: string; arguments: Record; } export interface MCPToolResult { content: Array<{ type: 'text'; text: string; }>; isError?: boolean; } export interface MCPResource { uri: string; name: string; mimeType: string; description?: string; } export interface MCPBridgeSession { sessionId: string; mcpClientId: string; adapterId?: string; joinedRooms: Set; createdAt: number; lastActivity: number; } export declare class MCPBridge extends EventEmitter { private sessions; private identity; private storage; private rooms; private coc; private knowledge; private maxSessions; constructor(config: MCPBridgeConfig); createSession(mcpClientId: string): MCPBridgeSession; destroySession(sessionId: string): void; getSession(sessionId: string): MCPBridgeSession | undefined; getToolDefinitions(): MCPToolDefinition[]; executeTool(sessionId: string, call: MCPToolCall): Promise; getResources(sessionId: string): MCPResource[]; private handleJoinRoom; private handleSendMessage; private handleOpenChain; private handleSubmitStep; private handleListPeers; private handleSearchKnowledge; private handleListChains; private setupEventForwarding; private textResult; private errorResult; getStats(): { activeSessions: number; totalRooms: number; }; destroy(): void; } //# sourceMappingURL=mcp-bridge.d.ts.map