ContextVM MCP Bridge

ContextVM MCP Bridge

Enables LLMs to interact with ContextVM services (Event Sourcing + FSM + DDD) by translating Model Context Protocol requests to DVM commands over Nostr, allowing AI agents to manage domain entities and workflows.

Category
访问服务器

README

ContextVM MCP Bridge

Expone servicios ContextVM (Event Sourcing + FSM + DDD) a LLMs mediante Model Context Protocol sobre Nostr.

🎯 ¿Qué hace este Bridge?

Este bridge actúa como traductor bidireccional entre:

  • MCP (Model Context Protocol): Protocolo estándar para que LLMs interactúen con servicios externos
  • ContextVM: Nuestra arquitectura de Event Sourcing + FSM + DDD
LLMs (Claude, GPT, etc.)
    ↓ MCP (kind 25910)
MCP Bridge (Traductor)
    ↓ DVM (kind 5051-6054)
ContextVM Services (sin cambios)

✨ Características

  • No invasivo: Los ContextVMs existentes no se modifican
  • Nostr como BUS: Un solo relay para MCP y DVM
  • Bidireccional: Traduce peticiones y respuestas
  • Configurable: Mapeos externos en JSON
  • Observable: Logs detallados y métricas
  • Production-ready: Docker, health checks, error handling

🚀 Quick Start

1. Instalación

# Clonar repositorio
git clone https://github.com/your-org/contextvm-mcp-bridge.git
cd contextvm-mcp-bridge

# Instalar dependencias
npm install

# Configurar
cp .env.example .env
# Editar .env con tu configuración

2. Generar Keypair

# Generar nueva keypair para el bridge
npx tsx scripts/generate-keypair.ts

# Copiar el private key a .env
# BRIDGE_PRIVATE_KEY=<hex-key>

3. Configurar Contextos

Editar config/contexts.json con los ContextVMs disponibles:

{
  "contexts": [
    {
      "id": "cbz_tesoreria_pagos",
      "name": "CBZ Tesorería - Pagos Ejecutados",
      "namespace": "cbz-tesoreria-pagos-ejecutados",
      "jobRequestKind": 5053,
      "jobResultKind": 6053,
      "rootEntity": {
        "type": "pago-tesoreria",
        "initialState": "planificado",
        "schema": { ... },
        "transitions": [ ... ]
      }
    }
  ]
}

4. Ejecutar

# Modo desarrollo
npm run dev

# Modo producción
npm run build
npm start

# Con Docker
docker-compose up -d

📋 Uso para LLMs

Conectar desde Claude/GPT

import { NostrMCPProxy } from '@contextvm/sdk/proxy';

// Crear proxy MCP
const proxy = new NostrMCPProxy({
  privateKey: "llm-private-key-hex",
  relays: ["wss://relay.controller-ai.com"],
  serverPubkey: "bridge-public-key-hex"
});

await proxy.start();

// Listar herramientas disponibles
const tools = await proxy.request({
  method: "tools/list"
});

// Llamar herramienta
const result = await proxy.request({
  method: "tools/call",
  params: {
    name: "cbz_tesoreria_pagos_create",
    arguments: {
      importe: 1500.00,
      concepto: "Pago nómina",
      beneficiario: "Juan Pérez"
    }
  }
});

🏗️ Arquitectura

src/
├── core/
│   ├── bridge.ts              # Clase principal del bridge
│   ├── translator.ts          # MCP ↔ DVM translator
│   └── routing.ts             # Routing logic
├── mcp/
│   ├── mcp-listener.ts        # Escucha kind 25910
│   ├── mcp-publisher.ts       # Publica kind 25910
│   └── mcp-types.ts           # Tipos MCP
├── dvm/
│   ├── dvm-listener.ts        # Escucha kind 5051-6054
│   ├── dvm-publisher.ts       # Publica kind 5051-6054
│   └── dvm-types.ts           # Tipos DVM
├── mapping/
│   ├── capabilities.ts        # Mapeo de capabilities
│   ├── schemas.ts             # Schemas de validación
│   └── contexts.ts            # Contextos disponibles
├── config/
│   └── index.ts               # Configuración
└── index.ts                   # Entry point

🔧 Configuración Avanzada

Mapeo de Contextos

Ver docs/context-mapping.md para detalles sobre cómo mapear ContextVMs a MCP tools.

Queries sin Eventos

Para consultas de solo lectura, el bridge puede consultar directamente la API/PostgreSQL sin generar eventos DVM:

// En config/contexts.json
{
  "queries": {
    "enabled": true,
    "apiEndpoint": "https://api.cbz-tesoreria.controller-ai.com",
    "cacheEnabled": true,
    "cacheTTL": 300
  }
}

📊 Monitoring

Health Check

curl http://localhost:4000/health

# Response:
{
  "status": "healthy",
  "uptime": 3600,
  "relay": "connected",
  "contexts": 4,
  "requests": {
    "total": 1234,
    "success": 1200,
    "errors": 34
  }
}

Métricas

El bridge expone métricas en formato Prometheus:

curl http://localhost:4000/metrics

🧪 Testing

# Tests unitarios
npm test

# Tests con watch
npm run test:watch

# Tests de integración (requiere relay activo)
npm run test:integration

🐳 Docker

Build

docker build -t contextvm-mcp-bridge:latest .

Run

docker run -d \
  --name mcp-bridge \
  -p 4000:4000 \
  -e BRIDGE_PRIVATE_KEY=your-key \
  -e RELAY_URL=ws://relay:8080 \
  contextvm-mcp-bridge:latest

Docker Compose

docker-compose up -d

📖 Documentación

🤝 Contribuir

  1. Fork el repositorio
  2. Crear feature branch (git checkout -b feature/amazing-feature)
  3. Commit cambios (git commit -m 'Add amazing feature')
  4. Push al branch (git push origin feature/amazing-feature)
  5. Abrir Pull Request

📄 Licencia

MIT License - ver LICENSE

🔗 Links

  • ContextVM Docs: https://contextvm.org
  • MCP Protocol: https://modelcontextprotocol.io
  • Nostr Protocol: https://nostr.com
  • GitHub: https://github.com/your-org/contextvm-mcp-bridge

Última actualización: 23 de diciembre de 2025

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选