Files
dvmcp/packages/dvmcp-bridge
2025-03-27 20:01:12 +01:00
..
2025-03-19 17:31:33 +01:00
2025-03-27 20:01:12 +01:00
2025-03-19 17:31:33 +01:00
2025-03-26 22:57:44 +01:00

DVMCP Bridge

A bridge implementation that connects Model Context Protocol (MCP) servers to Nostr's Data Vending Machine (DVM) ecosystem.

Features

  • Connect and manage multiple MCP servers through a single DVM instance
  • Automatic service announcement using NIP-89
  • Tool discovery and execution through DVM kind:5910/6910 events
  • Job status updates and payment handling via kind:7000 events
  • Service announcement deletion using NIP-09
  • Comprehensive error handling

Configuration

When the package is run for the first time, it will detect if the 'config.dvmcp.yml' file exists, and if not, it will launch a configuration wizard to help you create the configuration file. You can also create your configuration file by copying config.example.yml and changing the values of the fields

cp config.example.yml config.dvmcp.yml
nano config.dvmcp.yml

You can also specify a custom configuration file path using the --config-path flag:

npx dvmcp-bridge --config-path /path/to/custom/config.yml

Usage

Prerequisite: Ensure you have Bun installed.

You can run this package directly using npx:

npx @dvmcp/bridge

Alternatively, for development:

bun run dev

For production:

bun run start

Deleting Service Announcements

To remove your service announcements from relays when shutting down or taking your service offline, you can use the --delete-announcement flag:

bun run start --delete-announcement

You can also provide an optional reason for the deletion:

bun run start --delete-announcement --reason "Service maintenance in progress"

This will send a NIP-09 deletion event (kind 5) to all connected relays, instructing them to remove your previously published service announcements.

Testing

Run the test suite:

bun test