hashlock-mcp-server 1.0.2 → 1.0.4
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/dist/index.js +234 -216
- package/dist/index.js.map +1 -1
- package/package.json +43 -8
package/dist/index.js
CHANGED
|
@@ -33,7 +33,11 @@ class HashlockClient {
|
|
|
33
33
|
return (await res.json());
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
const server = new McpServer({
|
|
36
|
+
const server = new McpServer({
|
|
37
|
+
name: "hashlock-protocol",
|
|
38
|
+
version: "1.0.4",
|
|
39
|
+
description: "Hashlock (hashlock.ai) is a trading protocol by Hashlock-Tech \u2014 not the cryptographic hashlock primitive. Swap, buy, sell, or exchange any crypto asset \u2014 tokens, stablecoins, RWAs, NFTs \u2014 peer-to-peer on any EVM blockchain. Agent-to-agent OTC settlement with sealed bids, zero slippage, and verified counterparties.",
|
|
40
|
+
});
|
|
37
41
|
function getClient() {
|
|
38
42
|
const url = process.env.HASHLOCK_API_URL;
|
|
39
43
|
const key = process.env.HASHLOCK_API_KEY;
|
|
@@ -42,265 +46,279 @@ function getClient() {
|
|
|
42
46
|
}
|
|
43
47
|
return new HashlockClient(url, key);
|
|
44
48
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 create_intent \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
50
|
+
server.tool("create_intent", "[Hashlock protocol \u2014 hashlock.ai] Create a trading intent to swap, buy, sell, exchange, or convert any asset \u2014 crypto tokens (ETH, USDC, USDT, DAI, any ERC20), real-world assets (RWA), stablecoins, or NFTs \u2014 across any EVM blockchain (Ethereum, Polygon, Arbitrum, Base). Specify what you give, what you want, privacy level, KYC tier, and settlement terms. Works for human traders, autonomous AI agents, and institutional counterparties. Use this whenever a user wants to trade, swap, buy, sell, convert, or exchange any digital asset with a verified counterparty.", {
|
|
51
|
+
giveAsset: z
|
|
52
|
+
.enum(ASSETS)
|
|
53
|
+
.describe("Asset type you are offering (ETH, ERC20 token, or ERC721 NFT)"),
|
|
54
|
+
giveAmount: z
|
|
55
|
+
.string()
|
|
56
|
+
.describe("Amount to give in smallest unit (wei for ETH, base units for tokens)"),
|
|
57
|
+
giveChain: z
|
|
58
|
+
.number()
|
|
59
|
+
.describe("Chain ID where the asset lives (1=Ethereum, 137=Polygon, 42161=Arbitrum, etc.)"),
|
|
60
|
+
giveToken: z
|
|
61
|
+
.string()
|
|
62
|
+
.optional()
|
|
63
|
+
.describe("Token contract address \u2014 required for ERC20 and ERC721"),
|
|
50
64
|
receiveAsset: z.enum(ASSETS).describe("Asset type you want in return"),
|
|
51
|
-
receiveMinAmount: z
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
65
|
+
receiveMinAmount: z
|
|
66
|
+
.string()
|
|
67
|
+
.describe("Minimum acceptable amount in smallest unit"),
|
|
68
|
+
receiveChain: z
|
|
69
|
+
.number()
|
|
70
|
+
.describe("Chain ID where you want to receive"),
|
|
71
|
+
receiveToken: z
|
|
72
|
+
.string()
|
|
73
|
+
.optional()
|
|
74
|
+
.describe("Token contract address for the asset you want"),
|
|
75
|
+
receiveMaxAmount: z
|
|
76
|
+
.string()
|
|
77
|
+
.optional()
|
|
78
|
+
.describe("Maximum amount \u2014 set this for range orders"),
|
|
79
|
+
deadlineSeconds: z
|
|
80
|
+
.number()
|
|
81
|
+
.describe("How many seconds this intent stays valid"),
|
|
82
|
+
maxSlippage: z
|
|
83
|
+
.number()
|
|
84
|
+
.min(0)
|
|
85
|
+
.max(1)
|
|
86
|
+
.optional()
|
|
87
|
+
.describe("Max price slippage tolerance (0.005 = 0.5%)"),
|
|
88
|
+
partialFill: z
|
|
89
|
+
.boolean()
|
|
90
|
+
.optional()
|
|
91
|
+
.describe("Allow partial fills if full amount unavailable"),
|
|
92
|
+
atomicity: z
|
|
93
|
+
.enum(ATOMICITY_TYPES)
|
|
94
|
+
.default("full")
|
|
95
|
+
.describe("full = all-or-nothing, partial = allow incremental settlement"),
|
|
96
|
+
settlementType: z
|
|
97
|
+
.enum(SETTLEMENT_TYPES)
|
|
98
|
+
.default("bilateral")
|
|
99
|
+
.describe("bilateral = direct swap, ring = multi-party, batch = aggregated"),
|
|
100
|
+
ringParties: z
|
|
101
|
+
.array(z.string())
|
|
102
|
+
.optional()
|
|
103
|
+
.describe("Addresses of ring settlement participants"),
|
|
104
|
+
solverType: z
|
|
105
|
+
.enum(SOLVER_TYPES)
|
|
106
|
+
.default("open")
|
|
107
|
+
.describe("Who can solve: open = anyone, preferred = listed solvers first, exclusive = only listed"),
|
|
108
|
+
solverStrategy: z
|
|
109
|
+
.enum(SOLVER_STRATEGIES)
|
|
110
|
+
.default("best_price")
|
|
111
|
+
.describe("Optimization goal for solver execution"),
|
|
112
|
+
solverPreferred: z
|
|
113
|
+
.array(z.string())
|
|
114
|
+
.optional()
|
|
115
|
+
.describe("Preferred solver addresses"),
|
|
116
|
+
solverMaxFee: z
|
|
117
|
+
.string()
|
|
118
|
+
.optional()
|
|
119
|
+
.describe("Maximum fee payable to solver in wei"),
|
|
120
|
+
triggerType: z
|
|
121
|
+
.enum(TRIGGER_TYPES)
|
|
122
|
+
.optional()
|
|
123
|
+
.describe("immediate = execute now, conditional = wait for condition"),
|
|
124
|
+
triggerDescription: z
|
|
125
|
+
.string()
|
|
126
|
+
.optional()
|
|
127
|
+
.describe("Human-readable trigger condition (e.g. 'when ETH > 5000 USDC')"),
|
|
128
|
+
triggerAgentId: z
|
|
129
|
+
.string()
|
|
130
|
+
.optional()
|
|
131
|
+
.describe("Agent ID that monitors the trigger condition"),
|
|
132
|
+
triggerConfidence: z
|
|
133
|
+
.number()
|
|
134
|
+
.min(0)
|
|
135
|
+
.max(1)
|
|
136
|
+
.optional()
|
|
137
|
+
.describe("Agent confidence in the trigger signal (0-1)"),
|
|
138
|
+
attestationTier: z
|
|
139
|
+
.enum(TIERS)
|
|
140
|
+
.optional()
|
|
141
|
+
.describe("Your verified KYC tier (NONE through INSTITUTIONAL)"),
|
|
142
|
+
attestationPrincipalId: z
|
|
143
|
+
.string()
|
|
144
|
+
.optional()
|
|
145
|
+
.describe("Your principal identity hash"),
|
|
146
|
+
attestationPrincipalType: z
|
|
147
|
+
.enum(PRINCIPAL_TYPES)
|
|
148
|
+
.optional()
|
|
149
|
+
.describe("HUMAN, INSTITUTION, or AGENT"),
|
|
150
|
+
attestationBlindId: z
|
|
151
|
+
.string()
|
|
152
|
+
.optional()
|
|
153
|
+
.describe("Rotating pseudonym visible to counterparty \u2014 preserves privacy"),
|
|
154
|
+
attestationIssuedAt: z
|
|
155
|
+
.number()
|
|
156
|
+
.optional()
|
|
157
|
+
.describe("When your KYC attestation was issued (unix seconds)"),
|
|
158
|
+
attestationExpiresAt: z
|
|
159
|
+
.number()
|
|
160
|
+
.optional()
|
|
161
|
+
.describe("When your KYC attestation expires (unix seconds)"),
|
|
162
|
+
attestationProof: z
|
|
163
|
+
.string()
|
|
164
|
+
.optional()
|
|
165
|
+
.describe("Cryptographic proof of your attestation \u2014 verified by gateway"),
|
|
166
|
+
minCounterpartyTier: z
|
|
167
|
+
.enum(TIERS)
|
|
168
|
+
.optional()
|
|
169
|
+
.describe("Minimum KYC tier required from the other side of the trade"),
|
|
170
|
+
agentInstanceId: z
|
|
171
|
+
.string()
|
|
172
|
+
.optional()
|
|
173
|
+
.describe("Your agent instance ID for tracking"),
|
|
174
|
+
agentInstanceVersion: z
|
|
175
|
+
.string()
|
|
176
|
+
.optional()
|
|
177
|
+
.describe("Agent software version"),
|
|
178
|
+
agentInstanceStrategy: z
|
|
179
|
+
.string()
|
|
180
|
+
.optional()
|
|
181
|
+
.describe("Strategy label (e.g. 'dca', 'arbitrage', 'rebalance')"),
|
|
80
182
|
}, async (params) => {
|
|
81
183
|
try {
|
|
82
184
|
const client = getClient();
|
|
83
|
-
const result = await client.request("/v1/intents", {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
catch (e) {
|
|
87
|
-
const msg = e instanceof Error ? e.message : String(e);
|
|
88
|
-
return { content: [{ type: "text", text: `Error creating intent: ${msg}` }], isError: true };
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
!/usr/bin / env;
|
|
92
|
-
node;
|
|
93
|
-
const TIERS = ["NONE", "BASIC", "STANDARD", "ENHANCED", "INSTITUTIONAL"];
|
|
94
|
-
const ASSETS = ["ETH", "ERC20", "ERC721"];
|
|
95
|
-
const SETTLEMENT_TYPES = ["bilateral", "ring", "batch"];
|
|
96
|
-
const SOLVER_TYPES = ["open", "preferred", "exclusive"];
|
|
97
|
-
const SOLVER_STRATEGIES = ["best_price", "fastest", "lowest_fee"];
|
|
98
|
-
const TRIGGER_TYPES = ["immediate", "conditional"];
|
|
99
|
-
const ATOMICITY_TYPES = ["full", "partial"];
|
|
100
|
-
const PRINCIPAL_TYPES = ["HUMAN", "INSTITUTION", "AGENT"];
|
|
101
|
-
class HashlockClient {
|
|
102
|
-
baseUrl;
|
|
103
|
-
apiKey;
|
|
104
|
-
constructor(baseUrl, apiKey) {
|
|
105
|
-
this.baseUrl = baseUrl.replace(/\/+$/, "");
|
|
106
|
-
this.apiKey = apiKey;
|
|
107
|
-
}
|
|
108
|
-
async request(path, init = {}) {
|
|
109
|
-
const res = await fetch(`${this.baseUrl}${path}`, {
|
|
110
|
-
...init,
|
|
111
|
-
headers: {
|
|
112
|
-
"content-type": "application/json",
|
|
113
|
-
authorization: `Bearer ${this.apiKey}`,
|
|
114
|
-
...(init.headers ?? {}),
|
|
115
|
-
},
|
|
185
|
+
const result = await client.request("/v1/intents", {
|
|
186
|
+
method: "POST",
|
|
187
|
+
body: JSON.stringify(params),
|
|
116
188
|
});
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
return (await res.json());
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
const server = new McpServer({ name: "hashlock", version: "1.0.0" });
|
|
125
|
-
function getClient() {
|
|
126
|
-
const url = process.env.HASHLOCK_API_URL;
|
|
127
|
-
const key = process.env.HASHLOCK_API_KEY;
|
|
128
|
-
if (!url || !key) {
|
|
129
|
-
throw new Error("Missing HASHLOCK_API_URL or HASHLOCK_API_KEY environment variables.");
|
|
130
|
-
}
|
|
131
|
-
return new HashlockClient(url, key);
|
|
132
|
-
}
|
|
133
|
-
server.tool("create_intent", "Create a HashLockIntent via the fluent builder. Returns the validated intent JSON.", {
|
|
134
|
-
giveAsset: z.enum(ASSETS).describe("Asset type to give"),
|
|
135
|
-
giveAmount: z.string().describe("Amount in smallest unit (wei for ETH)"),
|
|
136
|
-
giveChain: z.number().describe("Source chain ID"),
|
|
137
|
-
giveToken: z.string().optional().describe("Token contract address (required for ERC20/ERC721)"),
|
|
138
|
-
receiveAsset: z.enum(ASSETS).describe("Asset type to receive"),
|
|
139
|
-
receiveMinAmount: z.string().describe("Minimum acceptable amount in smallest unit"),
|
|
140
|
-
receiveChain: z.number().describe("Destination chain ID"),
|
|
141
|
-
receiveToken: z.string().optional().describe("Token contract address"),
|
|
142
|
-
receiveMaxAmount: z.string().optional().describe("Maximum amount (optional upper bound)"),
|
|
143
|
-
deadlineSeconds: z.number().describe("Deadline in seconds from now"),
|
|
144
|
-
maxSlippage: z.number().min(0).max(1).optional().describe("Max slippage (0.005 = 0.5%)"),
|
|
145
|
-
partialFill: z.boolean().optional().describe("Allow partial fills"),
|
|
146
|
-
atomicity: z.enum(ATOMICITY_TYPES).default("full").describe("Atomicity guarantee"),
|
|
147
|
-
settlementType: z.enum(SETTLEMENT_TYPES).default("bilateral").describe("Settlement mechanism"),
|
|
148
|
-
ringParties: z.array(z.string()).optional().describe("Ring settlement participant addresses"),
|
|
149
|
-
solverType: z.enum(SOLVER_TYPES).default("open").describe("Solver access type"),
|
|
150
|
-
solverStrategy: z.enum(SOLVER_STRATEGIES).default("best_price").describe("Execution strategy"),
|
|
151
|
-
solverPreferred: z.array(z.string()).optional().describe("Preferred solver addresses"),
|
|
152
|
-
solverMaxFee: z.string().optional().describe("Max fee payable to solver"),
|
|
153
|
-
triggerType: z.enum(TRIGGER_TYPES).optional().describe("Trigger type"),
|
|
154
|
-
triggerDescription: z.string().optional().describe("Human-readable trigger condition"),
|
|
155
|
-
triggerAgentId: z.string().optional().describe("Producing agent ID"),
|
|
156
|
-
triggerConfidence: z.number().min(0).max(1).optional().describe("Agent confidence score"),
|
|
157
|
-
attestationTier: z.enum(TIERS).optional().describe("Signer's attested KYC tier"),
|
|
158
|
-
attestationPrincipalId: z.string().optional().describe("Principal ID hash"),
|
|
159
|
-
attestationPrincipalType: z.enum(PRINCIPAL_TYPES).optional().describe("Principal type"),
|
|
160
|
-
attestationBlindId: z.string().optional().describe("Rotating pseudonym the counterparty sees"),
|
|
161
|
-
attestationIssuedAt: z.number().optional().describe("Attestation issuedAt (unix seconds)"),
|
|
162
|
-
attestationExpiresAt: z.number().optional().describe("Attestation expiry (unix seconds)"),
|
|
163
|
-
attestationProof: z.string().optional().describe("Opaque attestation proof verified by gateway"),
|
|
164
|
-
minCounterpartyTier: z.enum(TIERS).optional().describe("Minimum KYC tier the counterparty must attest to"),
|
|
165
|
-
agentInstanceId: z.string().optional().describe("Agent instance ID"),
|
|
166
|
-
agentInstanceVersion: z.string().optional().describe("Agent software version"),
|
|
167
|
-
agentInstanceStrategy: z.string().optional().describe("Strategy label"),
|
|
168
|
-
}, async (params) => {
|
|
169
|
-
try {
|
|
170
|
-
const client = getClient();
|
|
171
|
-
const result = await client.request("/v1/intents", { method: "POST", body: JSON.stringify(params) });
|
|
172
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
173
|
-
}
|
|
174
|
-
catch (e) {
|
|
175
|
-
const msg = e instanceof Error ? e.message : String(e);
|
|
176
|
-
return { content: [{ type: "text", text: `Error creating intent: ${msg}` }], isError: true };
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
server.tool("commit_intent", "Create an off-chain commitment from an intent. Returns commitment hash and solver proof with selective disclosure.", {
|
|
180
|
-
intent: z.string().describe("Intent JSON string to commit"),
|
|
181
|
-
hideAmounts: z.boolean().default(false).describe("Hide amounts from solver proof"),
|
|
182
|
-
hideRingParties: z.boolean().default(false).describe("Strip ring settlement party list from solver proof"),
|
|
183
|
-
hideIdentity: z.boolean().default(false).describe("Strip principal blindId from solver proof"),
|
|
184
|
-
revealOnMatch: z.boolean().default(true).describe("Reveal full intent when matched (set false for sealed bid)"),
|
|
185
|
-
hideCounterparty: z.boolean().optional().describe("DEPRECATED alias for hideRingParties"),
|
|
186
|
-
}, async (params) => {
|
|
187
|
-
try {
|
|
188
|
-
const client = getClient();
|
|
189
|
-
const result = await client.request("/v1/intents/commit", { method: "POST", body: JSON.stringify(params) });
|
|
190
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
191
|
-
}
|
|
192
|
-
catch (e) {
|
|
193
|
-
const msg = e instanceof Error ? e.message : String(e);
|
|
194
|
-
return { content: [{ type: "text", text: `Error committing intent: ${msg}` }], isError: true };
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
server.tool("explain_intent", "Generate a human-readable explanation of a HashLockIntent.", {
|
|
198
|
-
intent: z.string().describe("Intent JSON string to explain"),
|
|
199
|
-
}, async (params) => {
|
|
200
|
-
try {
|
|
201
|
-
const client = getClient();
|
|
202
|
-
const result = await client.request("/v1/intents/explain", { method: "POST", body: JSON.stringify(params) });
|
|
203
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
204
|
-
}
|
|
205
|
-
catch (e) {
|
|
206
|
-
const msg = e instanceof Error ? e.message : String(e);
|
|
207
|
-
return { content: [{ type: "text", text: `Error explaining intent: ${msg}` }], isError: true };
|
|
208
|
-
}
|
|
209
|
-
});
|
|
210
|
-
server.tool("parse_natural_language", "Parse natural language text into a HashLockIntent. Supports Turkish and English.", {
|
|
211
|
-
text: z.string().describe("Natural language trading intent"),
|
|
212
|
-
chainId: z.number().optional().describe("Default chain ID (defaults to 1 = Ethereum)"),
|
|
213
|
-
}, async (params) => {
|
|
214
|
-
try {
|
|
215
|
-
const client = getClient();
|
|
216
|
-
const result = await client.request("/v1/intents/parse", { method: "POST", body: JSON.stringify(params) });
|
|
217
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
189
|
+
return {
|
|
190
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
191
|
+
};
|
|
218
192
|
}
|
|
219
193
|
catch (e) {
|
|
220
194
|
const msg = e instanceof Error ? e.message : String(e);
|
|
221
|
-
return {
|
|
195
|
+
return {
|
|
196
|
+
content: [{ type: "text", text: `Error creating intent: ${msg}` }],
|
|
197
|
+
isError: true,
|
|
198
|
+
};
|
|
222
199
|
}
|
|
223
200
|
});
|
|
224
|
-
|
|
225
|
-
|
|
201
|
+
/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 commit_intent \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
202
|
+
server.tool("commit_intent", "[Hashlock protocol \u2014 hashlock.ai] Submit a sealed-bid commitment for a trading intent. Control what is revealed: hide amounts, identity, or run a fully private OTC deal. Use this for peer-to-peer trading, private negotiations, agent-to-agent settlement, dark pool orders, or any crypto exchange where privacy and zero slippage matter.", {
|
|
203
|
+
intent: z
|
|
204
|
+
.string()
|
|
205
|
+
.describe("The intent JSON to commit (from create_intent output)"),
|
|
206
|
+
hideAmounts: z
|
|
207
|
+
.boolean()
|
|
208
|
+
.default(false)
|
|
209
|
+
.describe("Keep trade amounts private from solvers and the public"),
|
|
210
|
+
hideRingParties: z
|
|
211
|
+
.boolean()
|
|
212
|
+
.default(false)
|
|
213
|
+
.describe("Hide the list of ring settlement participants"),
|
|
214
|
+
hideIdentity: z
|
|
215
|
+
.boolean()
|
|
216
|
+
.default(false)
|
|
217
|
+
.describe("Hide your identity \u2014 counterparty sees only your blind pseudonym"),
|
|
218
|
+
revealOnMatch: z
|
|
219
|
+
.boolean()
|
|
220
|
+
.default(true)
|
|
221
|
+
.describe("Reveal full intent when matched \u2014 set false for sealed-bid auctions"),
|
|
222
|
+
hideCounterparty: z
|
|
223
|
+
.boolean()
|
|
224
|
+
.optional()
|
|
225
|
+
.describe("DEPRECATED \u2014 use hideRingParties instead"),
|
|
226
226
|
}, async (params) => {
|
|
227
227
|
try {
|
|
228
228
|
const client = getClient();
|
|
229
|
-
const result = await client.request("/v1/intents/
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
});
|
|
237
|
-
async function main() {
|
|
238
|
-
const transport = new StdioServerTransport();
|
|
239
|
-
await server.connect(transport);
|
|
240
|
-
console.error("Hashlock MCP server running on stdio");
|
|
241
|
-
}
|
|
242
|
-
main().catch((err) => {
|
|
243
|
-
console.error("Fatal error:", err);
|
|
244
|
-
process.exit(1);
|
|
245
|
-
});
|
|
246
|
-
server.tool("commit_intent", "Submit a sealed-bid commitment for a trading intent. Choose what to reveal and what stays private until a matching counterparty is found. Use this for OTC deals, private negotiations, or any trade where you want to control information disclosure.", {
|
|
247
|
-
intent: z.string().describe("The intent JSON to commit (from create_intent output)"),
|
|
248
|
-
hideAmounts: z.boolean().default(false).describe("Keep trade amounts private from solvers and the public"),
|
|
249
|
-
hideRingParties: z.boolean().default(false).describe("Hide the list of ring settlement participants"),
|
|
250
|
-
hideIdentity: z.boolean().default(false).describe("Hide your identity — counterparty sees only your blind pseudonym"),
|
|
251
|
-
revealOnMatch: z.boolean().default(true).describe("Reveal full intent when matched — set false for sealed-bid auctions"),
|
|
252
|
-
hideCounterparty: z.boolean().optional().describe("DEPRECATED — use hideRingParties instead"),
|
|
253
|
-
}, async (params) => {
|
|
254
|
-
try {
|
|
255
|
-
const client = getClient();
|
|
256
|
-
const result = await client.request("/v1/intents/commit", { method: "POST", body: JSON.stringify(params) });
|
|
257
|
-
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
229
|
+
const result = await client.request("/v1/intents/commit", {
|
|
230
|
+
method: "POST",
|
|
231
|
+
body: JSON.stringify(params),
|
|
232
|
+
});
|
|
233
|
+
return {
|
|
234
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
235
|
+
};
|
|
258
236
|
}
|
|
259
237
|
catch (e) {
|
|
260
238
|
const msg = e instanceof Error ? e.message : String(e);
|
|
261
|
-
return {
|
|
239
|
+
return {
|
|
240
|
+
content: [{ type: "text", text: `Error committing intent: ${msg}` }],
|
|
241
|
+
isError: true,
|
|
242
|
+
};
|
|
262
243
|
}
|
|
263
244
|
});
|
|
264
|
-
|
|
245
|
+
/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 explain_intent \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
246
|
+
server.tool("explain_intent", "[Hashlock protocol \u2014 hashlock.ai] Get a plain-language explanation of a trading intent \u2014 what crypto, tokens, or assets are being exchanged, for how much, on which blockchain, with what privacy and KYC settings. Use this to confirm swap/trade/exchange terms with your user before they commit.", {
|
|
265
247
|
intent: z.string().describe("The intent JSON to explain"),
|
|
266
248
|
}, async (params) => {
|
|
267
249
|
try {
|
|
268
250
|
const client = getClient();
|
|
269
|
-
const result = await client.request("/v1/intents/explain", {
|
|
270
|
-
|
|
251
|
+
const result = await client.request("/v1/intents/explain", {
|
|
252
|
+
method: "POST",
|
|
253
|
+
body: JSON.stringify(params),
|
|
254
|
+
});
|
|
255
|
+
return {
|
|
256
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
257
|
+
};
|
|
271
258
|
}
|
|
272
259
|
catch (e) {
|
|
273
260
|
const msg = e instanceof Error ? e.message : String(e);
|
|
274
|
-
return {
|
|
261
|
+
return {
|
|
262
|
+
content: [{ type: "text", text: `Error explaining intent: ${msg}` }],
|
|
263
|
+
isError: true,
|
|
264
|
+
};
|
|
275
265
|
}
|
|
276
266
|
});
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
267
|
+
/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 parse_natural_language \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
268
|
+
server.tool("parse_natural_language", "[Hashlock protocol \u2014 hashlock.ai] Convert everyday language into a structured trading intent. Understands requests like 'sell 10 ETH for USDC above 4000', 'buy tokenized real estate with 50k DAI', 'swap my NFT for 2 ETH on Arbitrum', 'exchange 1000 USDT for BTC', 'convert my stablecoins to ETH', 'send a peer-to-peer OTC offer for 100k USDC'. Supports English and Turkish. Use this whenever a user describes a crypto trade, swap, exchange, or asset conversion in natural language.", {
|
|
269
|
+
text: z
|
|
270
|
+
.string()
|
|
271
|
+
.describe("Natural language description of the trade (e.g. 'I want to sell 10 ETH for at least 40000 USDC')"),
|
|
272
|
+
chainId: z
|
|
273
|
+
.number()
|
|
274
|
+
.optional()
|
|
275
|
+
.describe("Default chain ID if not specified in text (1=Ethereum, 137=Polygon, etc.)"),
|
|
280
276
|
}, async (params) => {
|
|
281
277
|
try {
|
|
282
278
|
const client = getClient();
|
|
283
|
-
const result = await client.request("/v1/intents/parse", {
|
|
284
|
-
|
|
279
|
+
const result = await client.request("/v1/intents/parse", {
|
|
280
|
+
method: "POST",
|
|
281
|
+
body: JSON.stringify(params),
|
|
282
|
+
});
|
|
283
|
+
return {
|
|
284
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
285
|
+
};
|
|
285
286
|
}
|
|
286
287
|
catch (e) {
|
|
287
288
|
const msg = e instanceof Error ? e.message : String(e);
|
|
288
|
-
return {
|
|
289
|
+
return {
|
|
290
|
+
content: [
|
|
291
|
+
{ type: "text", text: `Error parsing natural language: ${msg}` },
|
|
292
|
+
],
|
|
293
|
+
isError: true,
|
|
294
|
+
};
|
|
289
295
|
}
|
|
290
296
|
});
|
|
291
|
-
|
|
297
|
+
/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 validate_intent \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
298
|
+
server.tool("validate_intent", "[Hashlock protocol \u2014 hashlock.ai] Validate a crypto trading intent before submitting \u2014 catches missing fields, invalid token amounts, chain mismatches, and business rule violations. Always validate before committing a swap, trade, or exchange.", {
|
|
292
299
|
intent: z.string().describe("The intent JSON to validate"),
|
|
293
300
|
}, async (params) => {
|
|
294
301
|
try {
|
|
295
302
|
const client = getClient();
|
|
296
|
-
const result = await client.request("/v1/intents/validate", {
|
|
297
|
-
|
|
303
|
+
const result = await client.request("/v1/intents/validate", {
|
|
304
|
+
method: "POST",
|
|
305
|
+
body: JSON.stringify(params),
|
|
306
|
+
});
|
|
307
|
+
return {
|
|
308
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
309
|
+
};
|
|
298
310
|
}
|
|
299
311
|
catch (e) {
|
|
300
312
|
const msg = e instanceof Error ? e.message : String(e);
|
|
301
|
-
return {
|
|
313
|
+
return {
|
|
314
|
+
content: [
|
|
315
|
+
{ type: "text", text: `Error validating intent: ${msg}` },
|
|
316
|
+
],
|
|
317
|
+
isError: true,
|
|
318
|
+
};
|
|
302
319
|
}
|
|
303
320
|
});
|
|
321
|
+
/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 main \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
304
322
|
async function main() {
|
|
305
323
|
const transport = new StdioServerTransport();
|
|
306
324
|
await server.connect(transport);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hashlock-mcp-server",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.0.4",
|
|
4
|
+
"description": "Hashlock protocol (hashlock.ai) — universal crypto exchange and trading platform by Hashlock-Tech. Not the cryptographic hashlock primitive. Swap, buy, sell, convert any token, stablecoin, RWA, or NFT peer-to-peer on any blockchain. Agent-to-agent and OTC settlement with sealed bids, zero slippage, no front-running. Supports Ethereum, Polygon, Arbitrum, Base, and all EVM chains.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Hashlock Technologies",
|
|
7
7
|
"mcpName": "io.github.Hashlock-Tech/hashlock",
|
|
@@ -34,17 +34,52 @@
|
|
|
34
34
|
},
|
|
35
35
|
"keywords": [
|
|
36
36
|
"mcp",
|
|
37
|
+
"mcp-server",
|
|
37
38
|
"hashlock",
|
|
38
|
-
"
|
|
39
|
-
"
|
|
39
|
+
"hashlock-protocol",
|
|
40
|
+
"hashlock-ai",
|
|
41
|
+
"hashlock-tech",
|
|
42
|
+
"crypto",
|
|
43
|
+
"exchange",
|
|
44
|
+
"swap",
|
|
45
|
+
"trade",
|
|
40
46
|
"trading",
|
|
41
|
-
"
|
|
42
|
-
"
|
|
47
|
+
"buy",
|
|
48
|
+
"sell",
|
|
49
|
+
"convert",
|
|
50
|
+
"transfer",
|
|
51
|
+
"token",
|
|
52
|
+
"defi",
|
|
53
|
+
"blockchain",
|
|
43
54
|
"ethereum",
|
|
55
|
+
"polygon",
|
|
56
|
+
"arbitrum",
|
|
57
|
+
"base",
|
|
58
|
+
"evm",
|
|
59
|
+
"stablecoin",
|
|
60
|
+
"usdc",
|
|
61
|
+
"usdt",
|
|
62
|
+
"dai",
|
|
44
63
|
"rwa",
|
|
45
|
-
"
|
|
64
|
+
"real-world-assets",
|
|
65
|
+
"tokenized-assets",
|
|
66
|
+
"nft",
|
|
46
67
|
"otc",
|
|
68
|
+
"peer-to-peer",
|
|
69
|
+
"p2p",
|
|
70
|
+
"decentralized-exchange",
|
|
71
|
+
"dex",
|
|
72
|
+
"settlement",
|
|
73
|
+
"agent-to-agent",
|
|
74
|
+
"autonomous-trading",
|
|
75
|
+
"intent",
|
|
47
76
|
"sealed-bid",
|
|
48
|
-
"
|
|
77
|
+
"zero-slippage",
|
|
78
|
+
"cross-chain",
|
|
79
|
+
"payment",
|
|
80
|
+
"wallet",
|
|
81
|
+
"web3",
|
|
82
|
+
"attestation",
|
|
83
|
+
"kyc"
|
|
49
84
|
]
|
|
50
85
|
}
|