meshsig 0.6.0 → 0.7.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/README.md +103 -4
- package/dist/mcp-server.d.ts +2 -0
- package/dist/mcp-server.js +311 -0
- package/dist/mcp-server.js.map +1 -0
- package/package.json +8 -5
package/README.md
CHANGED
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
<a href="https://meshsig.ai">meshsig.ai</a> ·
|
|
21
21
|
<a href="#cli">CLI</a> ·
|
|
22
22
|
<a href="#dashboard">Dashboard</a> ·
|
|
23
|
-
<a href="#
|
|
23
|
+
<a href="#mcp-server">MCP</a> ·
|
|
24
|
+
<a href="#integrations">Integrations</a> ·
|
|
24
25
|
<a href="#api-reference">API</a> ·
|
|
25
26
|
<a href="#audit--compliance">Audit</a>
|
|
26
27
|
</p>
|
|
@@ -204,9 +205,39 @@ meshsig revoked
|
|
|
204
205
|
|
|
205
206
|
Built-in protection against abuse. 60 requests per minute per IP address. Exceeding the limit returns `429 Too Many Requests` with retry information.
|
|
206
207
|
|
|
207
|
-
##
|
|
208
|
+
## Integrations
|
|
208
209
|
|
|
209
|
-
MeshSig
|
|
210
|
+
MeshSig is **framework-agnostic** — it works with any AI agent framework via the HTTP API, CLI, or MCP protocol.
|
|
211
|
+
|
|
212
|
+
### Any Framework (HTTP API)
|
|
213
|
+
|
|
214
|
+
Use the REST API to sign and verify messages from any language or framework:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Register an agent
|
|
218
|
+
curl -X POST http://localhost:4888/agents/register \
|
|
219
|
+
-H 'Content-Type: application/json' \
|
|
220
|
+
-d '{"name":"my-agent","capabilities":[{"type":"analysis"}]}'
|
|
221
|
+
|
|
222
|
+
# Send a signed message
|
|
223
|
+
curl -X POST http://localhost:4888/messages/send \
|
|
224
|
+
-H 'Content-Type: application/json' \
|
|
225
|
+
-d '{"fromDid":"did:msig:...","toDid":"did:msig:...","message":"task","privateKey":"..."}'
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Works with **LangChain**, **CrewAI**, **AutoGen**, **LlamaIndex**, **Semantic Kernel**, **Haystack**, custom agents, and any system that can make HTTP requests.
|
|
229
|
+
|
|
230
|
+
### MCP (Claude, Cursor, Windsurf, Cline)
|
|
231
|
+
|
|
232
|
+
MeshSig ships as a native MCP server. See the [MCP Server](#mcp-server) section.
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
npx meshsig-mcp
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### OpenClaw (Native)
|
|
239
|
+
|
|
240
|
+
MeshSig includes built-in scripts for OpenClaw agent-to-agent delegation:
|
|
210
241
|
|
|
211
242
|
```bash
|
|
212
243
|
# With MeshSig running on the same server as OpenClaw:
|
|
@@ -224,7 +255,7 @@ Before: Agent A → invoke.sh → Agent B (no proof)
|
|
|
224
255
|
After: Agent A → invoke.sh → [SIGN] → MeshSig → [VERIFY] → Agent B
|
|
225
256
|
```
|
|
226
257
|
|
|
227
|
-
### Auto-register
|
|
258
|
+
### Auto-register agents
|
|
228
259
|
|
|
229
260
|
```bash
|
|
230
261
|
# When a new agent is provisioned:
|
|
@@ -234,6 +265,34 @@ bash scripts/register-agent.sh agent-name-here
|
|
|
234
265
|
bash scripts/unregister-agent.sh agent-name-here
|
|
235
266
|
```
|
|
236
267
|
|
|
268
|
+
### Python / JavaScript SDK
|
|
269
|
+
|
|
270
|
+
Use MeshSig programmatically:
|
|
271
|
+
|
|
272
|
+
```javascript
|
|
273
|
+
// JavaScript / TypeScript
|
|
274
|
+
import { generateIdentity, sign, verify } from 'meshsig';
|
|
275
|
+
|
|
276
|
+
const agent = await generateIdentity();
|
|
277
|
+
const signature = await sign('hello', agent.privateKey);
|
|
278
|
+
const valid = await verify('hello', signature, agent.publicKey); // true
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
```python
|
|
282
|
+
# Python — use the HTTP API
|
|
283
|
+
import requests
|
|
284
|
+
|
|
285
|
+
# Register
|
|
286
|
+
r = requests.post('http://localhost:4888/agents/register',
|
|
287
|
+
json={'name': 'my-agent', 'capabilities': [{'type': 'analysis'}]})
|
|
288
|
+
agent = r.json()
|
|
289
|
+
|
|
290
|
+
# Verify
|
|
291
|
+
r = requests.post('http://localhost:4888/verify',
|
|
292
|
+
json={'message': 'hello', 'signature': sig, 'did': agent['record']['did']})
|
|
293
|
+
print(r.json()['valid']) # True
|
|
294
|
+
```
|
|
295
|
+
|
|
237
296
|
## How It Works
|
|
238
297
|
|
|
239
298
|
### Identity
|
|
@@ -336,6 +395,46 @@ See [docs/SECURITY.md](docs/SECURITY.md) for the full security whitepaper.
|
|
|
336
395
|
|
|
337
396
|
No database to configure. No cloud services. No API keys. Install, start, secure.
|
|
338
397
|
|
|
398
|
+
## MCP Server
|
|
399
|
+
|
|
400
|
+
MeshSig works as a Model Context Protocol (MCP) server — any AI tool can use it directly.
|
|
401
|
+
|
|
402
|
+
**9 tools available:** `meshsig_init`, `meshsig_sign`, `meshsig_verify`, `meshsig_identity`, `meshsig_agents`, `meshsig_stats`, `meshsig_audit`, `meshsig_revoke`, `meshsig_revoked`
|
|
403
|
+
|
|
404
|
+
### Claude Desktop
|
|
405
|
+
|
|
406
|
+
Add to `~/.claude/claude_desktop_config.json`:
|
|
407
|
+
|
|
408
|
+
```json
|
|
409
|
+
{
|
|
410
|
+
"mcpServers": {
|
|
411
|
+
"meshsig": {
|
|
412
|
+
"command": "npx",
|
|
413
|
+
"args": ["meshsig-mcp"]
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
### Cursor / Windsurf / Cline
|
|
420
|
+
|
|
421
|
+
Add to your MCP config:
|
|
422
|
+
|
|
423
|
+
```json
|
|
424
|
+
{
|
|
425
|
+
"meshsig": {
|
|
426
|
+
"command": "npx",
|
|
427
|
+
"args": ["meshsig-mcp"]
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
Then ask your AI: *"Sign this message with MeshSig"* or *"Verify this agent's signature"* — it works directly.
|
|
433
|
+
|
|
434
|
+
### Environment Variables
|
|
435
|
+
|
|
436
|
+
- `MESHSIG_SERVER` — MeshSig server URL (default: `http://localhost:4888`)
|
|
437
|
+
|
|
339
438
|
## License
|
|
340
439
|
|
|
341
440
|
MIT
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// ============================================================================
|
|
3
|
+
// MeshSig MCP Server — Model Context Protocol integration
|
|
4
|
+
//
|
|
5
|
+
// Exposes MeshSig cryptographic operations as MCP tools that any
|
|
6
|
+
// AI application (Claude, Cursor, Windsurf, Cline) can use directly.
|
|
7
|
+
//
|
|
8
|
+
// Usage:
|
|
9
|
+
// npx meshsig-mcp # Start as stdio MCP server
|
|
10
|
+
// node dist/mcp-server.js # Direct execution
|
|
11
|
+
//
|
|
12
|
+
// Claude Desktop config (~/.claude/claude_desktop_config.json):
|
|
13
|
+
// {
|
|
14
|
+
// "mcpServers": {
|
|
15
|
+
// "meshsig": {
|
|
16
|
+
// "command": "npx",
|
|
17
|
+
// "args": ["meshsig-mcp"]
|
|
18
|
+
// }
|
|
19
|
+
// }
|
|
20
|
+
// }
|
|
21
|
+
// ============================================================================
|
|
22
|
+
import { generateIdentity, sign, verify, verifyWithDid, isValidDid, hashPayload } from './crypto.js';
|
|
23
|
+
import { resolve } from 'node:path';
|
|
24
|
+
import { homedir } from 'node:os';
|
|
25
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
26
|
+
const MESHSIG_DIR = resolve(homedir(), '.meshsig');
|
|
27
|
+
const IDENTITY_FILE = resolve(MESHSIG_DIR, 'identity.json');
|
|
28
|
+
const DEFAULT_SERVER = process.env.MESHSIG_SERVER || 'http://localhost:4888';
|
|
29
|
+
function ensureDir() {
|
|
30
|
+
if (!existsSync(MESHSIG_DIR))
|
|
31
|
+
mkdirSync(MESHSIG_DIR, { recursive: true });
|
|
32
|
+
}
|
|
33
|
+
function loadIdentity() {
|
|
34
|
+
if (!existsSync(IDENTITY_FILE))
|
|
35
|
+
return null;
|
|
36
|
+
return JSON.parse(readFileSync(IDENTITY_FILE, 'utf-8'));
|
|
37
|
+
}
|
|
38
|
+
function sendResponse(id, result) {
|
|
39
|
+
const msg = JSON.stringify({ jsonrpc: '2.0', id, result });
|
|
40
|
+
process.stdout.write(`${msg}\n`);
|
|
41
|
+
}
|
|
42
|
+
function sendError(id, code, message) {
|
|
43
|
+
const msg = JSON.stringify({ jsonrpc: '2.0', id, error: { code, message } });
|
|
44
|
+
process.stdout.write(`${msg}\n`);
|
|
45
|
+
}
|
|
46
|
+
function sendNotification(method, params) {
|
|
47
|
+
const msg = JSON.stringify({ jsonrpc: '2.0', method, params });
|
|
48
|
+
process.stdout.write(`${msg}\n`);
|
|
49
|
+
}
|
|
50
|
+
// -- Tool Definitions --------------------------------------------------------
|
|
51
|
+
const TOOLS = [
|
|
52
|
+
{
|
|
53
|
+
name: 'meshsig_init',
|
|
54
|
+
description: 'Generate a new Ed25519 cryptographic identity (DID + keypair). The identity is stored locally at ~/.meshsig/identity.json. This is required before signing messages.',
|
|
55
|
+
inputSchema: {
|
|
56
|
+
type: 'object',
|
|
57
|
+
properties: {
|
|
58
|
+
force: { type: 'boolean', description: 'Overwrite existing identity if one exists', default: false },
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: 'meshsig_sign',
|
|
64
|
+
description: 'Sign a message with your Ed25519 private key. Returns the digital signature, hash, and your DID. Requires meshsig_init to have been run first.',
|
|
65
|
+
inputSchema: {
|
|
66
|
+
type: 'object',
|
|
67
|
+
properties: {
|
|
68
|
+
message: { type: 'string', description: 'The message to sign' },
|
|
69
|
+
},
|
|
70
|
+
required: ['message'],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: 'meshsig_verify',
|
|
75
|
+
description: 'Verify an Ed25519 signature against a message and public key or DID. Returns whether the signature is valid. Anyone can verify without needing a private key.',
|
|
76
|
+
inputSchema: {
|
|
77
|
+
type: 'object',
|
|
78
|
+
properties: {
|
|
79
|
+
message: { type: 'string', description: 'The original message that was signed' },
|
|
80
|
+
signature: { type: 'string', description: 'The Base64-encoded Ed25519 signature' },
|
|
81
|
+
signer: { type: 'string', description: 'The signer\'s public key (Base64) or DID (did:msig:...)' },
|
|
82
|
+
},
|
|
83
|
+
required: ['message', 'signature', 'signer'],
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: 'meshsig_identity',
|
|
88
|
+
description: 'Show your MeshSig identity — DID and public key. Returns null if no identity has been generated yet.',
|
|
89
|
+
inputSchema: { type: 'object', properties: {} },
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: 'meshsig_agents',
|
|
93
|
+
description: 'List all agents registered on the MeshSig server with their DIDs, trust scores, capabilities, and origin (local/remote).',
|
|
94
|
+
inputSchema: {
|
|
95
|
+
type: 'object',
|
|
96
|
+
properties: {
|
|
97
|
+
server: { type: 'string', description: 'MeshSig server URL', default: 'http://localhost:4888' },
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: 'meshsig_audit',
|
|
103
|
+
description: 'Export the complete audit report from the MeshSig server — all agents, connections, signed messages, and verification status. Useful for compliance and security reviews.',
|
|
104
|
+
inputSchema: {
|
|
105
|
+
type: 'object',
|
|
106
|
+
properties: {
|
|
107
|
+
server: { type: 'string', description: 'MeshSig server URL', default: 'http://localhost:4888' },
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: 'meshsig_stats',
|
|
113
|
+
description: 'Get MeshSig server statistics — number of agents, connections, messages, and uptime.',
|
|
114
|
+
inputSchema: {
|
|
115
|
+
type: 'object',
|
|
116
|
+
properties: {
|
|
117
|
+
server: { type: 'string', description: 'MeshSig server URL', default: 'http://localhost:4888' },
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: 'meshsig_revoke',
|
|
123
|
+
description: 'Revoke a compromised agent. This permanently blocks all future messages from this agent. Cannot be undone.',
|
|
124
|
+
inputSchema: {
|
|
125
|
+
type: 'object',
|
|
126
|
+
properties: {
|
|
127
|
+
did: { type: 'string', description: 'The DID of the agent to revoke (did:msig:...)' },
|
|
128
|
+
reason: { type: 'string', description: 'Reason for revocation', default: 'Compromised' },
|
|
129
|
+
server: { type: 'string', description: 'MeshSig server URL', default: 'http://localhost:4888' },
|
|
130
|
+
},
|
|
131
|
+
required: ['did'],
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
name: 'meshsig_revoked',
|
|
136
|
+
description: 'List all revoked (compromised) agents on the MeshSig server.',
|
|
137
|
+
inputSchema: {
|
|
138
|
+
type: 'object',
|
|
139
|
+
properties: {
|
|
140
|
+
server: { type: 'string', description: 'MeshSig server URL', default: 'http://localhost:4888' },
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
];
|
|
145
|
+
// -- Tool Handlers -----------------------------------------------------------
|
|
146
|
+
async function handleTool(name, args) {
|
|
147
|
+
switch (name) {
|
|
148
|
+
case 'meshsig_init': {
|
|
149
|
+
ensureDir();
|
|
150
|
+
if (existsSync(IDENTITY_FILE) && !args.force) {
|
|
151
|
+
const existing = loadIdentity();
|
|
152
|
+
return { content: [{ type: 'text', text: `Identity already exists.\nDID: ${existing.did}\nPublic Key: ${existing.publicKey}\nUse force=true to regenerate.` }] };
|
|
153
|
+
}
|
|
154
|
+
const identity = await generateIdentity();
|
|
155
|
+
writeFileSync(IDENTITY_FILE, JSON.stringify(identity, null, 2));
|
|
156
|
+
return { content: [{ type: 'text', text: `✓ Identity generated\nDID: ${identity.did}\nPublic Key: ${identity.publicKey}\nStored at: ${IDENTITY_FILE}\n\nYour private key is stored locally. Never share it.` }] };
|
|
157
|
+
}
|
|
158
|
+
case 'meshsig_sign': {
|
|
159
|
+
const identity = loadIdentity();
|
|
160
|
+
if (!identity)
|
|
161
|
+
return { content: [{ type: 'text', text: 'No identity found. Run meshsig_init first.' }], isError: true };
|
|
162
|
+
const signature = await sign(args.message, identity.privateKey);
|
|
163
|
+
const hash = hashPayload(args.message);
|
|
164
|
+
return { content: [{ type: 'text', text: JSON.stringify({
|
|
165
|
+
did: identity.did, message: args.message, signature, hash,
|
|
166
|
+
publicKey: identity.publicKey, timestamp: new Date().toISOString(),
|
|
167
|
+
}, null, 2) }] };
|
|
168
|
+
}
|
|
169
|
+
case 'meshsig_verify': {
|
|
170
|
+
let valid;
|
|
171
|
+
if (isValidDid(args.signer)) {
|
|
172
|
+
valid = await verifyWithDid(args.message, args.signature, args.signer);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
valid = await verify(args.message, args.signature, args.signer);
|
|
176
|
+
}
|
|
177
|
+
return { content: [{ type: 'text', text: valid
|
|
178
|
+
? `✓ SIGNATURE VALID\nSigner: ${args.signer}`
|
|
179
|
+
: `✗ SIGNATURE INVALID\nSigner: ${args.signer}\nThe signature does not match the message and key provided.`
|
|
180
|
+
}] };
|
|
181
|
+
}
|
|
182
|
+
case 'meshsig_identity': {
|
|
183
|
+
const identity = loadIdentity();
|
|
184
|
+
if (!identity)
|
|
185
|
+
return { content: [{ type: 'text', text: 'No identity found. Run meshsig_init first.' }] };
|
|
186
|
+
return { content: [{ type: 'text', text: JSON.stringify({
|
|
187
|
+
did: identity.did, publicKey: identity.publicKey, createdAt: identity.createdAt,
|
|
188
|
+
}, null, 2) }] };
|
|
189
|
+
}
|
|
190
|
+
case 'meshsig_agents': {
|
|
191
|
+
const server = args.server || DEFAULT_SERVER;
|
|
192
|
+
try {
|
|
193
|
+
const res = await fetch(`${server}/agents`);
|
|
194
|
+
const data = await res.json();
|
|
195
|
+
return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
return { content: [{ type: 'text', text: `Cannot connect to MeshSig server at ${server}` }], isError: true };
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
case 'meshsig_audit': {
|
|
202
|
+
const server = args.server || DEFAULT_SERVER;
|
|
203
|
+
try {
|
|
204
|
+
const res = await fetch(`${server}/audit/export`);
|
|
205
|
+
const data = await res.json();
|
|
206
|
+
return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
return { content: [{ type: 'text', text: `Cannot connect to MeshSig server at ${server}` }], isError: true };
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
case 'meshsig_stats': {
|
|
213
|
+
const server = args.server || DEFAULT_SERVER;
|
|
214
|
+
try {
|
|
215
|
+
const res = await fetch(`${server}/stats`);
|
|
216
|
+
const data = await res.json();
|
|
217
|
+
return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
return { content: [{ type: 'text', text: `Cannot connect to MeshSig server at ${server}` }], isError: true };
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
case 'meshsig_revoke': {
|
|
224
|
+
const server = args.server || DEFAULT_SERVER;
|
|
225
|
+
try {
|
|
226
|
+
const res = await fetch(`${server}/agents/revoke`, {
|
|
227
|
+
method: 'POST', headers: { 'Content-Type': 'application/json' },
|
|
228
|
+
body: JSON.stringify({ did: args.did, reason: args.reason || 'Compromised' }),
|
|
229
|
+
});
|
|
230
|
+
const data = await res.json();
|
|
231
|
+
return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
return { content: [{ type: 'text', text: `Cannot connect to MeshSig server at ${server}` }], isError: true };
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
case 'meshsig_revoked': {
|
|
238
|
+
const server = args.server || DEFAULT_SERVER;
|
|
239
|
+
try {
|
|
240
|
+
const res = await fetch(`${server}/revoked`);
|
|
241
|
+
const data = await res.json();
|
|
242
|
+
return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
return { content: [{ type: 'text', text: `Cannot connect to MeshSig server at ${server}` }], isError: true };
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
default:
|
|
249
|
+
return { content: [{ type: 'text', text: `Unknown tool: ${name}` }], isError: true };
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// -- MCP Message Handler -----------------------------------------------------
|
|
253
|
+
async function handleMessage(req) {
|
|
254
|
+
switch (req.method) {
|
|
255
|
+
case 'initialize':
|
|
256
|
+
sendResponse(req.id, {
|
|
257
|
+
protocolVersion: '2024-11-05',
|
|
258
|
+
capabilities: { tools: {} },
|
|
259
|
+
serverInfo: { name: 'meshsig', version: '0.7.0' },
|
|
260
|
+
});
|
|
261
|
+
break;
|
|
262
|
+
case 'notifications/initialized':
|
|
263
|
+
break;
|
|
264
|
+
case 'tools/list':
|
|
265
|
+
sendResponse(req.id, { tools: TOOLS });
|
|
266
|
+
break;
|
|
267
|
+
case 'tools/call': {
|
|
268
|
+
const { name, arguments: args } = req.params;
|
|
269
|
+
try {
|
|
270
|
+
const result = await handleTool(name, args || {});
|
|
271
|
+
sendResponse(req.id, result);
|
|
272
|
+
}
|
|
273
|
+
catch (err) {
|
|
274
|
+
sendResponse(req.id, {
|
|
275
|
+
content: [{ type: 'text', text: `Error: ${err.message}` }],
|
|
276
|
+
isError: true,
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
break;
|
|
280
|
+
}
|
|
281
|
+
default:
|
|
282
|
+
if (req.id !== undefined) {
|
|
283
|
+
sendError(req.id, -32601, `Method not found: ${req.method}`);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
// -- Stdio Transport ---------------------------------------------------------
|
|
288
|
+
let buffer = '';
|
|
289
|
+
process.stdin.setEncoding('utf-8');
|
|
290
|
+
process.stdin.on('data', (chunk) => {
|
|
291
|
+
buffer += chunk;
|
|
292
|
+
const lines = buffer.split('\n');
|
|
293
|
+
buffer = lines.pop() || '';
|
|
294
|
+
for (const line of lines) {
|
|
295
|
+
const trimmed = line.trim();
|
|
296
|
+
if (!trimmed)
|
|
297
|
+
continue;
|
|
298
|
+
try {
|
|
299
|
+
const msg = JSON.parse(trimmed);
|
|
300
|
+
handleMessage(msg).catch(err => {
|
|
301
|
+
console.error('MCP handler error:', err);
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
catch {
|
|
305
|
+
// skip non-JSON lines
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
process.stdin.on('end', () => process.exit(0));
|
|
310
|
+
console.error('MeshSig MCP Server started — waiting for JSON-RPC messages on stdin');
|
|
311
|
+
//# sourceMappingURL=mcp-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "meshsig",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Cryptographic security layer for AI agents. Ed25519 identity, signed messages, trust scoring.",
|
|
3
|
+
"version": "0.7.1",
|
|
4
|
+
"description": "Cryptographic security layer for AI agents. Ed25519 identity, signed messages, trust scoring. Works with LangChain, CrewAI, AutoGen, OpenClaw, or any agent framework.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
8
|
-
"meshsig": "dist/main.js"
|
|
8
|
+
"meshsig": "dist/main.js",
|
|
9
|
+
"meshsig-mcp": "dist/mcp-server.js"
|
|
9
10
|
},
|
|
10
11
|
"license": "MIT",
|
|
11
12
|
"keywords": [
|
|
12
13
|
"ai-agents", "cryptography", "ed25519", "digital-signatures",
|
|
13
|
-
"identity", "did", "security", "trust", "
|
|
14
|
-
"agent-security", "w3c-did", "audit", "compliance"
|
|
14
|
+
"identity", "did", "security", "trust", "mesh",
|
|
15
|
+
"agent-security", "w3c-did", "audit", "compliance", "mcp",
|
|
16
|
+
"model-context-protocol", "langchain", "crewai", "autogen",
|
|
17
|
+
"openclaw", "llm-agents", "agent-framework"
|
|
15
18
|
],
|
|
16
19
|
"repository": {
|
|
17
20
|
"type": "git",
|