brainy/src/mcp
David Snelling bf0afe8563 refactor(8.0): remove dead, unreachable, and unwired modules
Pre-GA dead-code sweep. A deterministic import-reachability walk from the
package's real entry points (the exports map, the CLI bin, the conversation
surface) found 34 source modules that nothing reachable imports — they
compile and ship as dist output that no consumer or internal path can ever
reach. All were superseded duplicates, abandoned parallel implementations,
or built-but-never-wired features:

  - superseded duplicates of live modules: an older "unified" entry, a
    standalone neural-import variant, a static NLP processor + its matcher,
    a parallel API-types module, a duplicate progress-types module
  - an abandoned import path (orchestrator + entity deduplicator + barrels)
    left behind when ingestion moved to the coordinator
  - unwired feature modules (instance pool, import presets, cached
    embeddings, relationship-confidence scorer) reachable only from tests
  - dead leaf utilities (write buffer, deleted-items index, bounded
    registry, two crypto shims, a cache manager, a structured logger, a
    stale v5 type-migration helper, a browser-only FS type shim) and
    several dead re-export barrels
  - a CLI catalog command wired into no command

Also removed two tests that only exercised deleted modules, repointed two
VFS tests off a deleted barrel onto the implementation module, and deleted
one example that demoed removed features.

Verified: clean build (both tsc passes), unit 1505 + integration 607 green,
and a re-run of the reachability walk reports zero remaining orphans.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 15:18:40 -07:00
..
brainyMCPAdapter.ts chore(8.0): final pre-RC1 sweep — API consistency, named errors, orphans, zero-cast codebase 2026-06-11 14:51:00 -07:00
brainyMCPService.ts chore(8.0)!: drop browser support, cloud SDKs, legacy pipeline, dead threading 2026-06-09 16:38:30 -07:00
index.ts chore(8.0)!: drop browser support, cloud SDKs, legacy pipeline, dead threading 2026-06-09 16:38:30 -07:00
README.md fix: update all imports and references from BrainyData to Brainy 2025-09-30 17:09:15 -07:00

Model Control Protocol (MCP) for Brainy

This document provides information about the Model Control Protocol (MCP) implementation in Brainy, which allows external models to access Brainy data and use the augmentation pipeline as tools.

Components

The MCP implementation consists of three main components:

  1. BrainyMCPAdapter: Provides access to Brainy data through MCP
  2. MCPAugmentationToolset: Exposes the augmentation pipeline as tools
  3. BrainyMCPService: Integrates the adapter and toolset, providing WebSocket and REST server implementations for external model access

Environment Compatibility

BrainyMCPAdapter

The BrainyMCPAdapter has no environment-specific dependencies and can run in any environment where Brainy itself runs, including:

  • Browser environments
  • Node.js environments
  • Server environments

MCPAugmentationToolset

The MCPAugmentationToolset also has no environment-specific dependencies and can run in any environment where Brainy itself runs, including:

  • Browser environments
  • Node.js environments
  • Server environments

BrainyMCPService

The BrainyMCPService has been refactored to separate the core functionality from the Node.js-specific server functionality:

  1. Core Functionality: The core request handling functionality (handleMCPRequest) can run in any environment where Brainy itself runs. This is what remains in the main Brainy package.

  2. Server Functionality: The WebSocket and REST server functionality is not included in the main Brainy package to keep the browser bundle lightweight and avoid Node.js-specific dependencies. In browser or other environments, you can use the core functionality through the handleMCPRequest method.

Usage

In Any Environment (Browser, Node.js, Server)

import { Brainy, BrainyMCPAdapter, MCPAugmentationToolset } from '@soulcraft/brainy'

// Create a Brainy instance
const brainyData = new Brainy()
await brainyData.init()

// Create an MCP adapter
const adapter = new BrainyMCPAdapter(brainyData)

// Create a toolset
const toolset = new MCPAugmentationToolset()

// Use the adapter to access Brainy data
const response = await adapter.handleRequest({
  type: 'data_access',
  operation: 'search',
  requestId: adapter.generateRequestId(),
  version: '1.0.0',
  parameters: {
    query: 'example query',
    k: 5
  }
})

// Use the toolset to execute augmentation pipeline tools
const toolResponse = await toolset.handleRequest({
  type: 'tool_execution',
  toolName: 'brainy_memory_storeData',
  requestId: toolset.generateRequestId(),
  version: '1.0.0',
  parameters: {
    args: ['key1', { some: 'data' }]
  }
})

In Browser Environment (Core Functionality Only)

import { Brainy, BrainyMCPService } from '@soulcraft/brainy'

// Create a Brainy instance
const brainyData = new Brainy()
await brainyData.init()

// Create an MCP service (server functionality will be disabled in browser)
const mcpService = new BrainyMCPService(brainyData)

// Use the core functionality
const response = await mcpService.handleMCPRequest({
  type: 'data_access',
  operation: 'search',
  requestId: mcpService.generateRequestId(),
  version: '1.0.0',
  parameters: {
    query: 'example query',
    k: 5
  }
})