bsv-mcp 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.md +60 -98
- package/dist/index.js +16 -9
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# BSV MCP Server Changelog
|
|
2
2
|
|
|
3
|
+
## [0.5.1] - 2026-09-08
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- Start local stdio when no transport is specified, with early stdout guards in
|
|
8
|
+
both source and bundled entry points. Explicit `TRANSPORT=http` retains the
|
|
9
|
+
existing HTTP server; the deployed hosted endpoint and OAuth routes are unchanged.
|
|
10
|
+
- Run the Codex plugin through the local npm executable instead of hosted MCP.
|
|
11
|
+
The executable requires Bun; the npx installer also requires Node.js.
|
|
12
|
+
- Direct homepage tool links to a generated reference with 106 full tools and six
|
|
13
|
+
compact families, category navigation, search, individual URLs and Markdown.
|
|
14
|
+
- Generate tool schemas and registration availability across isolated wallet
|
|
15
|
+
configurations, preserving schema variants and conditional payment tools.
|
|
16
|
+
- Separate task examples from the tool reference and document wallet and backend
|
|
17
|
+
settings in tables. Local installation needs no account sign-in.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- Reject invalid transport values before wallet initialization.
|
|
22
|
+
- Honor reduced-motion preferences while scrolling between homepage sections.
|
|
23
|
+
|
|
3
24
|
## [0.5.0] - 2026-09-08
|
|
4
25
|
|
|
5
26
|
### Added
|
package/README.md
CHANGED
|
@@ -2,109 +2,73 @@
|
|
|
2
2
|
|
|
3
3
|
BSV MCP connects your AI assistant to Bitcoin SV. Ask it to check a transaction, show your balance, send a payment, or create and trade ordinals (content recorded on the blockchain).
|
|
4
4
|
|
|
5
|
-
[Documentation](https://bsvmcp.com/docs) · [
|
|
5
|
+
[Documentation](https://bsvmcp.com/docs) · [All tools](https://bsvmcp.com/docs/tools) · [npm](https://www.npmjs.com/package/bsv-mcp) · [Issues](https://github.com/b-open-io/bsv-mcp/issues)
|
|
6
6
|
|
|
7
|
-
## Install
|
|
7
|
+
## Install
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
Leave Git ref and Sparse paths blank. Select **BSV MCP** in the bOpen marketplace
|
|
11
|
-
and install it. Authenticate through Sigma Identity when prompted, then start a
|
|
12
|
-
new chat and ask: “Run bsv_status and explain which services are available.”
|
|
13
|
-
|
|
14
|
-
The plugin uses hosted MCP, so you do not need Bun or a local wallet. Signing in
|
|
15
|
-
does not authorize spending or connect a wallet on your computer. For wallet
|
|
16
|
-
operations, use the local setup below. If you already have a manual BSV MCP
|
|
17
|
-
connection, choose which connection to use to avoid duplicate tools.
|
|
18
|
-
|
|
19
|
-
## Quick start
|
|
20
|
-
|
|
21
|
-
Install [Bun](https://bun.sh), clone this repository, and build the local
|
|
22
|
-
server. The local wallet registrations below use the source checkout's launcher;
|
|
23
|
-
`scripts/local-mcp-launcher.ts` is not included in the npm package.
|
|
24
|
-
|
|
25
|
-
```sh
|
|
26
|
-
git clone https://github.com/b-open-io/bsv-mcp.git
|
|
27
|
-
cd bsv-mcp
|
|
28
|
-
bun install
|
|
29
|
-
bun run build
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
For legacy embedded mode, create an encrypted account in a local terminal. The
|
|
33
|
-
source-checkout launcher can open it after creation:
|
|
34
|
-
|
|
35
|
-
```sh
|
|
36
|
-
bun run index.ts init --account default
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
For a new local Vault, or to import an existing wallet through the private
|
|
40
|
-
browser setup, register the built server directly:
|
|
9
|
+
Install [Bun](https://bun.sh) to run the server and Node.js for the `npx` commands below, then add it to your client:
|
|
41
10
|
|
|
42
11
|
```sh
|
|
43
|
-
# Codex
|
|
44
|
-
codex mcp add bsv-mcp-
|
|
45
|
-
-- bun --no-env-file /absolute/path/to/bsv-mcp/dist/index.js --stdio
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
If the server reports that wallet setup is needed, ask your agent to run
|
|
49
|
-
`wallet_onboarding`, then create, import, or unlock the wallet in the browser.
|
|
12
|
+
# Codex
|
|
13
|
+
codex mcp add bsv-mcp -- npx -y bsv-mcp@latest --stdio
|
|
50
14
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
```sh
|
|
54
|
-
# Codex: existing BRC-100 signer
|
|
55
|
-
codex mcp add bsv-mcp-external \
|
|
56
|
-
--env BRC100_WALLET_URL=https://signer.example/rpc \
|
|
57
|
-
--env BRC100_WALLET_ORIGINATOR=bsv-mcp.local \
|
|
58
|
-
-- bun --no-env-file /absolute/path/to/bsv-mcp/scripts/local-mcp-launcher.ts external
|
|
59
|
-
|
|
60
|
-
# Codex: existing encrypted local account (legacy account path)
|
|
61
|
-
codex mcp add bsv-mcp-embedded \
|
|
62
|
-
--env BSV_MCP_ACCOUNT=default \
|
|
63
|
-
-- bun --no-env-file /absolute/path/to/bsv-mcp/scripts/local-mcp-launcher.ts embedded
|
|
64
|
-
|
|
65
|
-
# Codex: project-bound Vault roles
|
|
66
|
-
codex mcp add bsv-mcp-project \
|
|
67
|
-
-- bun --no-env-file /absolute/path/to/bsv-mcp/scripts/local-mcp-launcher.ts project \
|
|
68
|
-
--project-root /absolute/path/to/project --project-id project.example
|
|
15
|
+
# Claude Code
|
|
16
|
+
claude mcp add --transport stdio bsv-mcp -- npx -y bsv-mcp@latest --stdio
|
|
69
17
|
```
|
|
70
18
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
19
|
+
Choose one command. For Cursor or Claude Desktop, use this server configuration:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"mcpServers": {
|
|
24
|
+
"bsv-mcp": {
|
|
25
|
+
"command": "npx",
|
|
26
|
+
"args": ["-y", "bsv-mcp@latest", "--stdio"]
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
79
30
|
```
|
|
80
31
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
32
|
+
Restart your client, then ask: **“Run bsv_status and explain what is available.”**
|
|
33
|
+
Local stdio needs no Sigma account or OAuth sign-in. It is also the default when
|
|
34
|
+
no transport is specified. Existing self-hosted HTTP remains opt-in through
|
|
35
|
+
`TRANSPORT=http`; the deployed hosted endpoint is unchanged.
|
|
36
|
+
|
|
37
|
+
For the Codex desktop plugin, add `b-open-io/claude-plugins` in the plugin
|
|
38
|
+
marketplace and install **BSV MCP**. The plugin starts the local npm executable
|
|
39
|
+
and requires Node.js and Bun. Claude Code and Grok plugins bundle the local server and
|
|
40
|
+
require Bun. Choose one registration to avoid duplicate tools.
|
|
41
|
+
|
|
42
|
+
## Connect a wallet
|
|
43
|
+
|
|
44
|
+
Ask your assistant to run `wallet_onboarding`. Create, import or unlock a Vault
|
|
45
|
+
in the local browser. Back it up before funding. Enter passwords only in the
|
|
46
|
+
local setup UI, never in chat. After a server restart, unlock it again.
|
|
47
|
+
|
|
48
|
+
To use an existing BRC-100 wallet, configure its signing API instead:
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"mcpServers": {
|
|
53
|
+
"bsv-mcp": {
|
|
54
|
+
"command": "npx",
|
|
55
|
+
"args": ["-y", "bsv-mcp@latest", "--stdio"],
|
|
56
|
+
"env": {
|
|
57
|
+
"BRC100_WALLET_URL": "http://127.0.0.1:3321",
|
|
58
|
+
"BRC100_WALLET_ORIGINATOR": "bsv-mcp.local"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
100
63
|
```
|
|
101
64
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
for
|
|
105
|
-
**https://bsvmcp.com**. See [client setup](https://bsvmcp.com/#install).
|
|
65
|
+
The wallet keeps its keys and controls permission requests. Its signing API is
|
|
66
|
+
separate from a wallet-storage endpoint. See [wallet setup](https://bsvmcp.com/docs#wallets)
|
|
67
|
+
for network settings, account selection and project roles.
|
|
106
68
|
|
|
107
|
-
|
|
69
|
+
The package also includes the Bun-based `bsv-mcp-local` launcher for explicit external,
|
|
70
|
+
legacy embedded and project configurations. Source-checkout examples live in
|
|
71
|
+
[the installation guide](docs/install-verification.md).
|
|
108
72
|
|
|
109
73
|
## MCP protocol compatibility
|
|
110
74
|
|
|
@@ -131,15 +95,14 @@ const client = new Client(
|
|
|
131
95
|
```
|
|
132
96
|
|
|
133
97
|
Register a real human approval handler before using approval-dependent tools.
|
|
134
|
-
|
|
135
|
-
this does not constitute modern client acceptance.
|
|
98
|
+
Legacy protocol compatibility is enabled by default; the connected client must support the approval flow needed by the requested tool.
|
|
136
99
|
|
|
137
100
|
The full tool catalog remains the default and is capability-derived: wallet
|
|
138
101
|
mode, enabled modules, account context, and the selected profile determine what
|
|
139
102
|
`tools/list` returns. The checked-in manifest is a synthetic baseline for one
|
|
140
103
|
configured server, not a promise of a fixed default count. Set
|
|
141
104
|
`MCP_TOOL_CATALOG=compact` only to opt into bounded read families; compact mode
|
|
142
|
-
|
|
105
|
+
uses the same underlying handlers. Tool availability still
|
|
143
106
|
depends on wallet mode and enabled modules. Its baseline read families are
|
|
144
107
|
`bsv_read`, `ordinals_read`, `wallet_read`, and `utility`, each with a bounded
|
|
145
108
|
operation enum; unknown operations are rejected. Eligible sessions also expose
|
|
@@ -187,8 +150,7 @@ It defaults to disabled broadcasting; set `DISABLE_BROADCASTING=false` in its
|
|
|
187
150
|
runtime environment to enable transaction tools with the signer's approval.
|
|
188
151
|
|
|
189
152
|
Each mode has its own process environment and should be registered as a separate
|
|
190
|
-
server when you need to switch between them.
|
|
191
|
-
it does not read a wallet on your computer.
|
|
153
|
+
server when you need to switch between them. Use only the registrations needed by the project.
|
|
192
154
|
|
|
193
155
|
Embedded wallets can list pending PeerPay payments and receive a selected
|
|
194
156
|
payment with `wallet_peerPayments`. Receiving requires a message ID and
|
|
@@ -228,7 +190,7 @@ modules.
|
|
|
228
190
|
|
|
229
191
|
- [Wallet setup](https://bsvmcp.com/docs#wallets)
|
|
230
192
|
- [Backend configuration](https://bsvmcp.com/docs#backends)
|
|
231
|
-
- [Tools and workflows](https://bsvmcp.com/docs
|
|
193
|
+
- [Tools and workflows](https://bsvmcp.com/docs/tools)
|
|
232
194
|
- [Paid service requests](https://bsvmcp.com/docs#x402)
|
|
233
195
|
- [Sponsorship](https://bsvmcp.com/docs#sponsorship) and [agent delegation](https://bsvmcp.com/docs#delegation)
|
|
234
196
|
- [Troubleshooting and development](https://bsvmcp.com/docs#troubleshooting)
|
|
@@ -249,7 +211,7 @@ Experimental software; APIs may change. Keep a wallet backup. If a transaction r
|
|
|
249
211
|
## Preparing a release package
|
|
250
212
|
|
|
251
213
|
Run `bun run pack:release /tmp` to build and create the release tarball. Install
|
|
252
|
-
or publish that tarball, for example `bun publish /tmp/bsv-mcp-0.5.
|
|
214
|
+
or publish that tarball, for example `bun publish /tmp/bsv-mcp-0.5.1.tgz`,
|
|
253
215
|
after completing the release checks and selecting the release version.
|
|
254
216
|
Do not publish directly from the checkout: its manifest contains Bun patches
|
|
255
217
|
needed to build the wallet fixes, which fail to resolve in consumer projects.
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var __isStdio = process.argv.includes("--stdio") || (process.env.TRANSPORT
|
|
3
|
+
var __isStdio = process.argv.includes("--stdio") || (process.env.TRANSPORT ?? (process.argv.length <= 2 ? "stdio" : "")).toLowerCase() === "stdio";
|
|
4
4
|
if (__isStdio) {
|
|
5
5
|
var __err = console.error.bind(console);
|
|
6
6
|
console.log = function() { __err.apply(null, ["[log]"].concat([].slice.call(arguments))); };
|
|
@@ -71,7 +71,7 @@ var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
|
71
71
|
// utils/stdioGuard.ts
|
|
72
72
|
var isStdio2;
|
|
73
73
|
var init_stdioGuard = __esm(() => {
|
|
74
|
-
isStdio2 = process.argv.includes("--stdio") || process.env.TRANSPORT
|
|
74
|
+
isStdio2 = process.argv.includes("--stdio") || (process.env.TRANSPORT ?? (process.argv.length <= 2 ? "stdio" : "")).toLowerCase() === "stdio";
|
|
75
75
|
if (isStdio2) {
|
|
76
76
|
const err = console.error.bind(console);
|
|
77
77
|
console.log = (...args) => err("[log]", ...args);
|
|
@@ -25873,7 +25873,7 @@ var init_package = __esm(() => {
|
|
|
25873
25873
|
name: "bsv-mcp",
|
|
25874
25874
|
module: "dist/index.js",
|
|
25875
25875
|
type: "module",
|
|
25876
|
-
version: "0.5.
|
|
25876
|
+
version: "0.5.1",
|
|
25877
25877
|
license: "MIT",
|
|
25878
25878
|
author: "satchmo",
|
|
25879
25879
|
description: "A collection of Bitcoin SV (BSV) tools for the Model Context Protocol (MCP) framework",
|
|
@@ -260731,7 +260731,7 @@ var require_timestamp2 = __commonJS(function(exports, module) {
|
|
|
260731
260731
|
|
|
260732
260732
|
// node_modules/knex/lib/migrations/migrate/MigrationGenerator.js
|
|
260733
260733
|
var require_MigrationGenerator = __commonJS(function(exports, module) {
|
|
260734
|
-
var __dirname = "/Users/satchmo/
|
|
260734
|
+
var __dirname = "/Users/satchmo/.codex/worktrees/local-mcp-tool-reference/node_modules/knex/lib/migrations/migrate";
|
|
260735
260735
|
var path = __require("path");
|
|
260736
260736
|
var { writeJsFileUsingTemplate } = require_template2();
|
|
260737
260737
|
var { getMergedConfig } = require_migrator_configuration_merger();
|
|
@@ -261438,7 +261438,7 @@ var require_seeder_configuration_merger = __commonJS(function(exports, module) {
|
|
|
261438
261438
|
|
|
261439
261439
|
// node_modules/knex/lib/migrations/seed/Seeder.js
|
|
261440
261440
|
var require_Seeder = __commonJS(function(exports, module) {
|
|
261441
|
-
var __dirname = "/Users/satchmo/
|
|
261441
|
+
var __dirname = "/Users/satchmo/.codex/worktrees/local-mcp-tool-reference/node_modules/knex/lib/migrations/seed";
|
|
261442
261442
|
var path = __require("path");
|
|
261443
261443
|
var { ensureDirectoryExists } = require_fs();
|
|
261444
261444
|
var { writeJsFileUsingTemplate } = require_template2();
|
|
@@ -313109,15 +313109,16 @@ async function main() {
|
|
|
313109
313109
|
console.log(`
|
|
313110
313110
|
BSV MCP Server v${package_default.version}
|
|
313111
313111
|
|
|
313112
|
-
Usage:
|
|
313112
|
+
Usage: bsv-mcp [options]
|
|
313113
313113
|
|
|
313114
313114
|
Options:
|
|
313115
|
+
--stdio Use local stdio (the default; overrides TRANSPORT)
|
|
313115
313116
|
--help, -h Show this help message
|
|
313116
313117
|
--version, -v Show version information
|
|
313117
313118
|
vault-setup Open the local read-only Vault migration preview
|
|
313118
313119
|
|
|
313119
313120
|
Environment Variables:
|
|
313120
|
-
TRANSPORT Transport mode: 'stdio' or 'http' (default:
|
|
313121
|
+
TRANSPORT Transport mode: 'stdio' or 'http' (default: stdio; HTTP requires explicit opt-in)
|
|
313121
313122
|
PORT HTTP server port (default: 3000)
|
|
313122
313123
|
BRC100_WALLET_URL Existing SDK HTTPWalletJSON signer RPC URL
|
|
313123
313124
|
BRC100_WALLET_ORIGINATOR Signer permission origin (default: bsv-mcp.local)
|
|
@@ -313156,6 +313157,12 @@ Authentication:
|
|
|
313156
313157
|
console.log(`${package_default.name} v${package_default.version}`);
|
|
313157
313158
|
process.exit(0);
|
|
313158
313159
|
}
|
|
313160
|
+
if (CONFIG.transportMode !== "stdio" && CONFIG.transportMode !== "http") {
|
|
313161
|
+
throw new Error("TRANSPORT must be stdio or http; omit it to run locally over stdio");
|
|
313162
|
+
}
|
|
313163
|
+
if (args.some((arg) => arg !== "--stdio")) {
|
|
313164
|
+
throw new Error("Unknown server argument; use --help for supported commands");
|
|
313165
|
+
}
|
|
313159
313166
|
const projectConfig = readProjectWalletConfig();
|
|
313160
313167
|
const projectRuntime = projectConfig ? await createProjectWalletRuntime() : undefined;
|
|
313161
313168
|
const externalWallet = projectRuntime ? undefined : readExternalWalletConfig();
|
|
@@ -313842,7 +313849,7 @@ var init_server2 = __esm(() => {
|
|
|
313842
313849
|
loadBapTools: process.env.DISABLE_BAP_TOOLS !== "true",
|
|
313843
313850
|
loadBsocialTools: process.env.DISABLE_BSOCIAL_TOOLS !== "true",
|
|
313844
313851
|
disableBroadcasting: process.env.DISABLE_BROADCASTING === "true",
|
|
313845
|
-
transportMode: process.argv.includes("--stdio") ? "stdio" : process.env.TRANSPORT
|
|
313852
|
+
transportMode: process.argv.includes("--stdio") ? "stdio" : (process.env.TRANSPORT ?? "stdio").toLowerCase(),
|
|
313846
313853
|
port: Number.parseInt(process.env.PORT || "3000", 10),
|
|
313847
313854
|
useDroplitApi: process.env.USE_DROPLIT_API === "true",
|
|
313848
313855
|
droplitApiUrl: process.env.DROPLIT_API_URL || "http://127.0.0.1:4000",
|
|
@@ -313858,7 +313865,7 @@ var init_server2 = __esm(() => {
|
|
|
313858
313865
|
});
|
|
313859
313866
|
|
|
313860
313867
|
// utils/stdioGuard.ts
|
|
313861
|
-
var isStdio = process.argv.includes("--stdio") || process.env.TRANSPORT
|
|
313868
|
+
var isStdio = process.argv.includes("--stdio") || (process.env.TRANSPORT ?? (process.argv.length <= 2 ? "stdio" : "")).toLowerCase() === "stdio";
|
|
313862
313869
|
if (isStdio) {
|
|
313863
313870
|
const err = console.error.bind(console);
|
|
313864
313871
|
console.log = (...args) => err("[log]", ...args);
|
package/package.json
CHANGED