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