@oobe-protocol-labs/sap-mcp-server 0.9.21 → 0.9.22
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/.env.example +1 -1
- package/CHANGELOG.md +133 -0
- package/config.example.json +1 -1
- package/config.secure-example.json +1 -1
- package/package.json +1 -1
package/.env.example
CHANGED
|
@@ -187,7 +187,7 @@ SAP_MCP_FACILITATOR_NETWORKS=devnet
|
|
|
187
187
|
SAP_MCP_PRICE_READ_PREMIUM_USD=0.001
|
|
188
188
|
SAP_MCP_PRICE_BUILDER_USD=0.008
|
|
189
189
|
SAP_MCP_PRICE_VALUE_FIXED_USD=0.09
|
|
190
|
-
SAP_MCP_PRICE_HEAVY_VALUE_USD=0.
|
|
190
|
+
SAP_MCP_PRICE_HEAVY_VALUE_USD=0.05
|
|
191
191
|
SAP_MCP_PRICE_VALUE_BPS=0
|
|
192
192
|
SAP_MCP_PRICE_MIN_USD=0.001
|
|
193
193
|
SAP_MCP_PRICE_MAX_USD=100
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,139 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented in this file.
|
|
4
4
|
|
|
5
|
+
## 0.9.22 - 2026-07-25
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **`signerProfile` per-call parameter** on `sap_payments_finalize_transaction`.
|
|
10
|
+
Agents can now sign with a specific profile without switching `.active-profile`
|
|
11
|
+
manually. Multiple profiles coexist in the same session. Eliminates the #1
|
|
12
|
+
source of agent friction: profile-switch juggling + stale signer cache.
|
|
13
|
+
- **`sap_build_sol_transfer`** — Hosted unsigned builder for native SOL transfers
|
|
14
|
+
using `SystemProgram.transfer`. Fills the gap left by `spl-token_transferSol`
|
|
15
|
+
(local-signer-only). Returns base64 unsigned transaction for local signing.
|
|
16
|
+
- **`sap_build_spl_transfer`** — Hosted unsigned builder for SPL token transfers
|
|
17
|
+
with idempotent ATA creation. Uses raw `@solana/web3.js` `TransactionInstruction`
|
|
18
|
+
(no `@solana/spl-token` dependency). Returns base64 unsigned transaction.
|
|
19
|
+
- **x402 idempotency cache** in `McpMonetizationGate` — prevents double-charge on
|
|
20
|
+
retry. Successful settlements are cached by `requestHash` for 5 minutes
|
|
21
|
+
(max 10,000 entries, LRU eviction, opportunistic pruning). If the same
|
|
22
|
+
request is retried after a network failure, the cached settlement is returned
|
|
23
|
+
without re-charging the payer's USDC.
|
|
24
|
+
- **x402 nonce + TTL strict validation** — `validatePaymentRequirementsForDecision`
|
|
25
|
+
now enforces `maxTimeoutSeconds ≤ 120` and rejects invalid/missing TTL values.
|
|
26
|
+
Prevents stale challenge replay attacks.
|
|
27
|
+
- **Challenge-signature parameter** on `sap_profile_switch` — optional Ed25519
|
|
28
|
+
signature proving ownership of the target profile keypair. Prevents
|
|
29
|
+
impersonation via manual `.active-profile` file edits.
|
|
30
|
+
- **`preloadPremiumProviders`** at server startup — providers are eagerly loaded
|
|
31
|
+
and connected when the server boots, not lazily on first request. The
|
|
32
|
+
`providerHealth` response now reflects real provider status immediately.
|
|
33
|
+
- **3 new free meme-radar providers** (DexScreener + Solana RPC, no API keys):
|
|
34
|
+
- `meme.newlisting.alert` — detects newly listed tokens via DexScreener
|
|
35
|
+
`pairCreatedAt` with honeypot/dev-wallet risk flags.
|
|
36
|
+
- `meme.rugpull.detector` — on-chain mint/freeze authority checks via Solana
|
|
37
|
+
RPC + DexScreener liquidity drain detection. Risk score 0-1 with
|
|
38
|
+
exit/monitor/caution actions.
|
|
39
|
+
- `meme.social.sentiment` — bull/bear scores from DexScreener price momentum
|
|
40
|
+
(1h/6h/24h weighted) with volume acceleration confidence.
|
|
41
|
+
- **Multi-feed Pyth** — `pyth.price.tick` and `pyth.volatility.watch` now poll
|
|
42
|
+
5 feeds by default (SOL/USD, WBTC/USD, WETH/USD, JUP/USD, USDC/USD) instead
|
|
43
|
+
of 1. All Pyth providers converted from WebSocket to HTTP polling
|
|
44
|
+
(`hermes.pyth.network/v2/updates/price/latest`).
|
|
45
|
+
- **`signalConfidence` field** on Pyth price tick events — normalized 0-1
|
|
46
|
+
confidence score derived from `1 - (confidenceInterval / price)`, separate
|
|
47
|
+
from the raw Pyth `confidenceIntervalUsd`.
|
|
48
|
+
- **ATR-based SL/TP** for volatility breakout signals — `stopLoss = entry ∓
|
|
49
|
+
2×ATR`, `takeProfit = entry ± 3×ATR`, with `minSpreadPct` filter (0.1%)
|
|
50
|
+
to discard signals too tight for on-chain execution. `action` changed from
|
|
51
|
+
`sell` to `swap` for spot-only agents.
|
|
52
|
+
- **Applied filters in webhook relay response** — `sap_premium_webhook_relay`
|
|
53
|
+
now returns `subscribedEvents` and `appliedFilters` in the subscription
|
|
54
|
+
response for agent verification.
|
|
55
|
+
- **`sap-mcp-optimization` skill** (devops category) — documents pre-estimate,
|
|
56
|
+
profile routing, build→sign→submit, x402 payment rules, readiness checks,
|
|
57
|
+
budget management, and premium stream consumption patterns.
|
|
58
|
+
- Tool count: 317 → 319. Test count: 603 (unchanged, all updated).
|
|
59
|
+
|
|
60
|
+
### Changed
|
|
61
|
+
|
|
62
|
+
- **Premium capability prices halved** — all 13 premium capabilities now cost
|
|
63
|
+
50% less per unit/event:
|
|
64
|
+
- `jupiter.quote.delta`: $0.02 → $0.01/min
|
|
65
|
+
- `pyth.price.tick`: $0.015 → $0.0075/min
|
|
66
|
+
- `price.threshold.crossed`: $0.001 → $0.0005/event
|
|
67
|
+
- `jupiter.arbitrage.scan`: $0.05 → $0.025/min
|
|
68
|
+
- `pyth.volatility.watch`: $0.03 → $0.015/min
|
|
69
|
+
- `jupiter.route.optimized`: $0.025 → $0.0125/min
|
|
70
|
+
- `meme.newlisting.alert`: $0.003 → $0.0015/event
|
|
71
|
+
- `meme.social.sentiment`: $0.02 → $0.01/min
|
|
72
|
+
- `meme.rugpull.detector`: $0.04 → $0.02/min
|
|
73
|
+
- `meme.volume.spike`: $0.025 → $0.0125/min
|
|
74
|
+
- `tech.github.activity`: $0.002 → $0.001/event
|
|
75
|
+
- `tech.tvl.change`: $0.02 → $0.01/min
|
|
76
|
+
- `tech.tokenomics.analysis`: $0.004 → $0.002/event
|
|
77
|
+
- **Heavy value-action price**: $0.15 → $0.05 (max accepted x402 for
|
|
78
|
+
value-action tier tools).
|
|
79
|
+
- **Auto-pay threshold**: $0.02 → $0.05 (`SAP_MCP_X402_AUTO_PAY_MAX_USD`).
|
|
80
|
+
Read-premium ($0.001) and builder ($0.008) calls now auto-pay without
|
|
81
|
+
confirmation.
|
|
82
|
+
- **Premium poll/flush/metrics FREE** — `sap_premium_stream_poll`,
|
|
83
|
+
`sap_premium_stream_flush`, `sap_premium_webhook_relay_status`,
|
|
84
|
+
`sap_premium_metrics`, `sap_premium_session_status`, `sap_premium_close_session`
|
|
85
|
+
moved to FREE_TOOLS + STRICT_FREE_TOOLS. No x402 charge for consumption
|
|
86
|
+
or diagnostics.
|
|
87
|
+
- **Birdeye dependency removed** — all meme-radar capabilities now use
|
|
88
|
+
DexScreener + Solana RPC (both free, no API key). `SAP_MCP_PREMIUM_BIRDEYE_API_URL`
|
|
89
|
+
removed from all capability definitions and test fixtures.
|
|
90
|
+
- **Builder tool descriptions** now mention `sap_payments_finalize_transaction`
|
|
91
|
+
as the 1-call alternative to the 3-step preview→sign→submit flow.
|
|
92
|
+
- **`sap_estimate_tool_cost`** description now explicitly says "dry-run — no
|
|
93
|
+
charge, no x402 challenge" and includes `maxPriceUsd = estimate × 1.25`
|
|
94
|
+
guidance.
|
|
95
|
+
- **`sap_quick_context` nextAction** now includes explicit routing guidance:
|
|
96
|
+
accountless hosted → use `sap_payments_profile_current`, `signerProfile`
|
|
97
|
+
per-call, `sap_build_sol_transfer`/`sap_build_spl_transfer`, no signing scripts.
|
|
98
|
+
|
|
99
|
+
### Fixed
|
|
100
|
+
|
|
101
|
+
- **Bridge cache coherence** — `sap_payments_profile_current` now re-reads
|
|
102
|
+
`.active-profile` and re-resolves the signer on every call. No more stale
|
|
103
|
+
signer after manual profile switch.
|
|
104
|
+
- **`sap_profile_switch` guidance** — when the hosted server is accountless,
|
|
105
|
+
the response now provides 3 concrete options (local bridge, manual edit,
|
|
106
|
+
CLI command) instead of a bare "Profile does not exist" error. Includes
|
|
107
|
+
stale cache warning.
|
|
108
|
+
- **Provider preload at startup** — providers are loaded and connected when
|
|
109
|
+
the server boots, not on first request. `providerHealth` is populated
|
|
110
|
+
immediately, not empty `{}`.
|
|
111
|
+
- **Provider delivery loop logging** — all `catch` blocks in provider-bridge,
|
|
112
|
+
webhook-engine, premium-tools, and premium-routes now log errors to stderr
|
|
113
|
+
instead of swallowing silently.
|
|
114
|
+
- **Meme volume spike provider** — replaced nonexistent DexScreener
|
|
115
|
+
`/v1/solana/volume` endpoint with real API (`/latest/dex/tokens/{mint}` and
|
|
116
|
+
`/latest/dex/search`). Added `activeMints` tracking, EMA baseline spike
|
|
117
|
+
detection, `MAX_MINTS_PER_POLL` limit.
|
|
118
|
+
- **Pyth providers** — converted from WebSocket (`wss://hermes.pyth.network/v2/ws`,
|
|
119
|
+
rejects bare connections) to HTTP polling (`/v2/updates/price/latest`).
|
|
120
|
+
- **All 12 provider import paths** — fixed `../../types.js` → `../types.js`.
|
|
121
|
+
- **`onchain.solana.ts`** — imported `ConfirmedSignatureInfo` from
|
|
122
|
+
`@solana/web3.js` to fix `blockTime: number | null | undefined` type mismatch.
|
|
123
|
+
- **Stale config references** — cleaned up all `0.02` auto-pay and `0.15`
|
|
124
|
+
heavy value refs in `.env.example`, `config.example.json`,
|
|
125
|
+
`config.secure-example.json`, `schema.json`, `mcp-client-injection.ts`, and
|
|
126
|
+
`explain-x402-settlement.prompt.ts`.
|
|
127
|
+
|
|
128
|
+
### Security
|
|
129
|
+
|
|
130
|
+
- x402 idempotency cache prevents double-charge on retry (point 2c).
|
|
131
|
+
- x402 nonce + TTL strict validation caps challenge lifetime at 120s (point 5b).
|
|
132
|
+
- Challenge-signature parameter on profile switch prevents impersonation (point 5a).
|
|
133
|
+
- `secretMaterial: keypair-bytes-never-returned` guarantee maintained across
|
|
134
|
+
all signing tools.
|
|
135
|
+
- No secrets, private keys, or keypair bytes in source code (security audit clean).
|
|
136
|
+
- 0 dependency vulnerabilities (`pnpm audit`).
|
|
137
|
+
|
|
5
138
|
## 0.9.21 - 2026-07-25
|
|
6
139
|
|
|
7
140
|
### Added
|
package/config.example.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oobe-protocol-labs/sap-mcp-server",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.22",
|
|
4
4
|
"mcpName": "ai.oobeprotocol.sap.mcp/sap-mcp",
|
|
5
5
|
"description": "Official MCP gateway for OOBE Protocol SAP — AI agents can interact with SAP identity, registry, reputation, tools, memory, payments, settlement, and proof-of-execution on Solana",
|
|
6
6
|
"type": "module",
|