Skip to main content

MCP server for FEAGI neural monitoring and control

Project description

FEAGI MCP Server

Model Context Protocol (MCP) server for FEAGI neural monitoring and control. Enables LLMs to observe brain activity, design neural circuits, and debug neurorobotic systems in real-time.

Features

Monitoring & Observation

  • Monitor cortical activity - Real-time firing rates, spike patterns, and neuron states
  • Trace signal paths - Verify connectivity between cortical areas
  • Inspect embodiment - Check controller registration, motor/sensor mappings
  • Analyze connectivity - Examine synaptic connections and morphologies

Circuit Building

  • Stimulate areas - Trigger specific cortical regions for testing
  • Validate circuits - Check genome structure and parameter sanity
  • Get area parameters - Inspect neuron properties and dimensions

Genome Management

  • Upload genomes - Load neural architectures into running FEAGI
  • Download genomes - Retrieve current brain configuration
  • List areas - Enumerate all cortical regions

Installation

# From PyPI
pip install feagi-mcp

# Or install from a source checkout (editable)
cd feagi-mcp
pip install -e .

# Or with uv
uv pip install -e .

Usage

Standalone Server (stdio)

feagi-mcp

With Configuration

export FEAGI_HOST=localhost
export FEAGI_PORT=8000
feagi-mcp

Cursor Integration

Add to your Cursor MCP settings (~/.cursor/mcp.json):

{
  "mcpServers": {
    "feagi": {
      "command": "python",
      "args": ["-m", "feagi_mcp.server"],
      "env": {
        "FEAGI_HOST": "localhost",
        "FEAGI_PORT": "8000"
      }
    }
  }
}

Available Tools

Agent Introspection

  • get_registered_agents - List all connected agents (controllers, embodiments)
  • get_agent_properties - Get agent type, capabilities, version, connection info
  • get_agent_device_registrations - Inspect motor/sensor structure, group_ids, control modes

Monitoring

  • monitor_activity - Get real-time firing rates for a cortical area
  • get_connectivity - Inspect synaptic connections between areas
  • trace_signal_path - Verify signal propagation paths
  • get_embodiment_status - Check controller connections and mappings
  • get_area_parameters - Inspect neuron properties
  • get_cortical_synapse_counts - Get incoming/outgoing synapse counts

Genome Editing (NEW)

  • create_cortical_area - Add OPU/IPU/CUSTOM/MEMORY areas programmatically (CUSTOM/MEMORY require brain_region_id; MCP enforces origin/label spacing unless skipped). Naming: use intuitive role/circuit names; never prefix with Mcp — see docs/NEW_TOOLS.md (Cortical area naming policy).
  • update_cortical_area - Modify cortical area properties
  • delete_cortical_area - Remove cortical areas
  • list_opu_areas - List only motor output areas
  • list_ipu_areas - List only sensory input areas
  • list_opu_areas_with_metadata - List OPU areas with semantic type/purpose/capabilities info
  • list_ipu_areas_with_metadata - List IPU areas with semantic type/purpose/capabilities info
  • get_area_semantic_info - Get detailed semantic information about any cortical area

Connection Management (NEW)

  • get_cortical_mapping - Get connection configuration between two areas
  • update_cortical_mapping - Create/update connections with morphology rules
  • delete_cortical_mapping - Remove connections between areas

Brain Visualizer parity (full REST router)

  • list_brain_visualizer_operations - Index of every supported operation_id with HTTP method and path (same surface as FEAGIHTTPAddressList.gd)
  • brain_visualizer_api - Call any whitelisted operation: genome (save, amalgamation, circuits), cortical areas (geometry, properties, multi-put, reset, clone), regions (CRUD, relocate, clone), morphologies (CRUD, rename, usage), cortical mappings (afferents, efferents, batch), burst engine, system visualization tuning, neuroplasticity, insight/monitoring, agents (register, heartbeat, stimulation, device registrations), network, vision input. Use path_params for {agent_id} / {region_id} routes; for amalgamation-by-upload use post_genome_amalgamation_by_upload_multipart with json_body: {\"genome_json\": \"...\"}.
  • Voxel / neuron inspection: For a specific cortical area and voxel (x,y,z)—neuron details, incoming/outgoing synapses at that voxel, or debugging—use operation_id get_cortical_area_voxel_neurons (GET /v1/cortical_area/voxel_neurons) with query: cortical_id, x, y, z, optional synapse_page.

Control

  • stimulate_area - Trigger neurons for testing
  • upload_genome - Load a new brain architecture
  • download_genome - Retrieve current genome

Inspection

  • list_cortical_areas - Enumerate all brain regions
  • get_genome_info - Get metadata about current genome
  • validate_genome - Check genome structure for issues
  • get_burst_engine_status - Check burst engine state
  • get_runtime_metrics - Get comprehensive runtime metrics

Example: LLM-Assisted Circuit Design

# LLM can now:
# 1. Monitor CPG oscillation
activity = await monitor_activity(area_id="cCPGa_", duration_ms=1000)
# Returns: {"firing_rate": 5.2, "active_neurons": [0,1,2,3,4], "period_ms": 192}

# 2. Verify connections
conn = await get_connectivity(src_area="cCPGa_", dst_area="cHipFL")
# Returns: {"synapse_count": 150, "morphology": "cpg_to_hip_x", "avg_weight": 18.0}

# 3. Check motor output
status = await get_embodiment_status()
# Returns: {"motor_cortical_id": "opose0", "device_count": 12, "last_packet_ms": 42}

# 4. Debug with stimulation
result = await stimulate_area(area_id="cStart", coords=[0,0,0], potential=1.0)
# Trigger walking behavior for testing

Architecture

feagi-mcp/
├── src/feagi_mcp/
│   ├── __init__.py
│   ├── server.py          # Main MCP server with tool definitions
│   ├── feagi_client.py    # HTTP client for FEAGI REST API
│   ├── config.py          # Configuration management
│   └── tools/             # Individual tool implementations
│       ├── monitoring.py
│       ├── control.py
│       └── genome.py
├── tests/
│   ├── test_server.py
│   └── test_feagi_client.py
├── examples/
│   └── circuit_design.py
├── pyproject.toml
└── README.md

Development

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Lint and format
ruff check .
ruff format .
mypy src/

Requirements

  • Python 3.10+
  • Running FEAGI instance (default: localhost:8000)
  • MCP-compatible client (Cursor, Claude Desktop)

License

Apache-2.0 - Copyright 2026 Neuraville Inc.

Support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

feagi_mcp-0.0.3.tar.gz (101.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

feagi_mcp-0.0.3-py3-none-any.whl (37.5 kB view details)

Uploaded Python 3

File details

Details for the file feagi_mcp-0.0.3.tar.gz.

File metadata

  • Download URL: feagi_mcp-0.0.3.tar.gz
  • Upload date:
  • Size: 101.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for feagi_mcp-0.0.3.tar.gz
Algorithm Hash digest
SHA256 7edad939780adb395ef23224c7d1278ab42deab359659768f9dbb24b5936c294
MD5 9d4301e17f04edabc940210e3f25ebdb
BLAKE2b-256 4dfc83eb50428e7aabcd78e822430d3a75e492b4dcec70fc36572aa46675b296

See more details on using hashes here.

File details

Details for the file feagi_mcp-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: feagi_mcp-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 37.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for feagi_mcp-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f48b7c0295fa58e5549fbe6fe60aa233ce4c486c7c7e05bf5dfe3074a203b81a
MD5 48b3b997d9de54f11ecdbe96320c2b45
BLAKE2b-256 3ccc27efff4ba261769fb77185b52709c91c1959159f47a33ff29b9dc417e319

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page