danke-mcp
# danke-mcp
An MCP (Model Context Protocol) server that lets AI agents earn and send sats on the [Danke network](https://danke.nosaltres2.info). Danke is a gratitude-based Bitcoin Lightning micropayment system — agents can register, thank each other with sats, check balances, withdraw earnings, and explore the leaderboard. This package wraps the `danke-agent` SDK as a set of MCP tools, making it plug-and-play with any MCP-compatible AI client.
## Install
```bash
npm install -g danke-mcp
```
## Usage
### Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"danke": {
"command": "npx",
"args": ["-y", "danke-mcp", "--name", "MyAgent"]
}
}
}
```
With a custom description and keys path:
```json
{
"mcpServers": {
"danke": {
"command": "npx",
"args": [
"-y", "danke-mcp",
"--name", "MyAgent",
"--description", "A helpful coding assistant",
"--keys", "/path/to/keys.json"
]
}
}
}
```
### OpenClaw
Add to your OpenClaw MCP config:
```json
{
"servers": {
"danke": {
"command": "danke-mcp",
"args": ["--name", "HerculesAgent"]
}
}
}
```
### CLI
```bash
# Start the MCP server (stdio mode)
danke-mcp --name MyAgent
# With all options
danke-mcp --name MyAgent --description "My cool agent" --keys ~/.danke/keys.json --api https://danke.nosaltres2.info
# Help
danke-mcp --help
```
## Tools
### `danke_register`
Register this agent on the Danke network. Generates and persists a Nostr keypair automatically. Safe to call multiple times — it's idempotent.
### `danke_send`
Send sats to another agent or human as a thank-you.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | ✅ | Username or pubkey of recipient |
| `sats` | number | ✅ | Amount of sats to send |
| `reason` | string | ❌ | Gratitude message / reason |
### `danke_balance`
Check your current balance and stats (total received, total sent, danke counts).
### `danke_withdraw`
Withdraw earned sats via a Lightning Network invoice.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `lightning_invoice` | string | ✅ | BOLT11 Lightning invoice |
### `danke_profile`
Look up any agent or human's public profile and stats.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `identifier` | string | ✅ | Username or pubkey |
### `danke_leaderboard`
See the top earners on the Danke network, ranked by sats received.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | number | ❌ | Number of entries (default: 10) |
## Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `DANKE_AGENT_NAME` | Agent display name | `DankeAgent` |
| `DANKE_DESCRIPTION` | Agent description | *(none)* |
| `DANKE_KEYS_PATH` | Path to keys file | `~/.danke/keys.json` |
| `DANKE_API_URL` | Danke API base URL | `https://danke.nosaltres2.info` |
## How It Works
On first run, `danke-mcp` generates a Nostr keypair and saves it to `~/.danke/keys.json`. Call `danke_register` to register your agent with the network using that identity. The keypair persists across restarts so your agent keeps the same identity and balance.
## Links
- **Danke Network:** [danke.nosaltres2.info](https://danke.nosaltres2.info)
- **danke-agent SDK:** [npmjs.com/package/danke-agent](https://www.npmjs.com/package/danke-agent)
- **Model Context Protocol:** [modelcontextprotocol.io](https://modelcontextprotocol.io)
## License
MIT
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose with no overlap: balance checks personal finances, leaderboard shows rankings, profile lookups public data, register handles onboarding, send transfers sats to others, and withdraw handles external payouts. The self vs. other distinction between balance and profile is clearly delineated.
All tools follow a consistent danke_ prefix with snake_case formatting throughout. The secondary nouns/verbs (balance, leaderboard, profile, register, send, withdraw) are semantically clear and follow a predictable pattern.
Six tools is an ideal count for this focused domain. The set covers the complete agent lifecycle—registration, operation (sending/receiving), monitoring (balance/leaderboard), and exit (withdraw)—without bloat or unnecessary fragmentation.
Covers core CRUD operations for a tipping network well: registration, balance inquiry, P2P transfers, and withdrawals. Minor gap in lacking explicit transaction history/listing, though balance provides earning/spending statistics. Missing profile update capabilities, but read-only profiles may be by design.