@fhestate/mcp-server 1.0.0
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/LICENSE +21 -0
- package/README.md +432 -0
- package/SECURITY.md +158 -0
- package/data/agents.json +81 -0
- package/dist/blind-step.d.ts +43 -0
- package/dist/blind-step.d.ts.map +1 -0
- package/dist/blind-step.js +59 -0
- package/dist/blind-step.js.map +1 -0
- package/dist/cli-bridge.d.ts +62 -0
- package/dist/cli-bridge.d.ts.map +1 -0
- package/dist/cli-bridge.js +224 -0
- package/dist/cli-bridge.js.map +1 -0
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +37 -0
- package/dist/config.js.map +1 -0
- package/dist/content/overview.d.ts +3 -0
- package/dist/content/overview.d.ts.map +1 -0
- package/dist/content/overview.js +30 -0
- package/dist/content/overview.js.map +1 -0
- package/dist/content/tweets.d.ts +3 -0
- package/dist/content/tweets.d.ts.map +1 -0
- package/dist/content/tweets.js +23 -0
- package/dist/content/tweets.js.map +1 -0
- package/dist/data/agents.json +81 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/redact.d.ts +23 -0
- package/dist/redact.d.ts.map +1 -0
- package/dist/redact.js +36 -0
- package/dist/redact.js.map +1 -0
- package/dist/resources.d.ts +6 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +12 -0
- package/dist/resources.js.map +1 -0
- package/dist/server.d.ts +15 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +124 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/agents.d.ts +44 -0
- package/dist/tools/agents.d.ts.map +1 -0
- package/dist/tools/agents.js +91 -0
- package/dist/tools/agents.js.map +1 -0
- package/dist/tools/devnet.d.ts +43 -0
- package/dist/tools/devnet.d.ts.map +1 -0
- package/dist/tools/devnet.js +119 -0
- package/dist/tools/devnet.js.map +1 -0
- package/dist/tools/fhe.d.ts +7 -0
- package/dist/tools/fhe.d.ts.map +1 -0
- package/dist/tools/fhe.js +22 -0
- package/dist/tools/fhe.js.map +1 -0
- package/dist/tools/knowledge.d.ts +19 -0
- package/dist/tools/knowledge.d.ts.map +1 -0
- package/dist/tools/knowledge.js +15 -0
- package/dist/tools/knowledge.js.map +1 -0
- package/dist/tools/social.d.ts +14 -0
- package/dist/tools/social.d.ts.map +1 -0
- package/dist/tools/social.js +10 -0
- package/dist/tools/social.js.map +1 -0
- package/dist/tools/verification.d.ts +7 -0
- package/dist/tools/verification.d.ts.map +1 -0
- package/dist/tools/verification.js +6 -0
- package/dist/tools/verification.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { Keypair } from "@solana/web3.js";
|
|
3
|
+
import { FhestateClient, keypairSigner } from "fhestate-sdk/solana";
|
|
4
|
+
import { encryptValueViaCli, runFheCli, sanitizeCliArgs } from "../cli-bridge.js";
|
|
5
|
+
import { getRpcUrl, getWalletPath, isReadOnly } from "../config.js";
|
|
6
|
+
import { textResult } from "../redact.js";
|
|
7
|
+
export async function fheCliRun(subcommand, args = []) {
|
|
8
|
+
const sanitized = sanitizeCliArgs(subcommand, args);
|
|
9
|
+
if (!sanitized.ok) {
|
|
10
|
+
return textResult({
|
|
11
|
+
ok: false,
|
|
12
|
+
exitCode: 1,
|
|
13
|
+
stderr: sanitized.error,
|
|
14
|
+
stdout: "",
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
const result = await runFheCli(subcommand, sanitized.args);
|
|
18
|
+
return textResult({
|
|
19
|
+
ok: result.ok,
|
|
20
|
+
exitCode: result.exitCode,
|
|
21
|
+
sha256: result.sha256,
|
|
22
|
+
parsed: result.parsed,
|
|
23
|
+
stdout: result.stdout,
|
|
24
|
+
stderr: result.stderr,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
export async function devnetWalletStatus() {
|
|
28
|
+
const doctor = await runFheCli("doctor", []);
|
|
29
|
+
const balance = await runFheCli("balance", []);
|
|
30
|
+
return textResult({
|
|
31
|
+
network: "solana-devnet",
|
|
32
|
+
rpc: getRpcUrl(),
|
|
33
|
+
walletConfigured: Boolean(getWalletPath()),
|
|
34
|
+
doctor: { ok: doctor.ok, stdout: doctor.stdout, stderr: doctor.stderr },
|
|
35
|
+
balance: { ok: balance.ok, stdout: balance.stdout, stderr: balance.stderr },
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
export async function devnetHistory(limit) {
|
|
39
|
+
const result = await runFheCli("history", ["--limit", String(limit)]);
|
|
40
|
+
const lines = result.stdout.split(/\r?\n/).filter((l) => l.length > 40);
|
|
41
|
+
const links = lines
|
|
42
|
+
.map((line) => {
|
|
43
|
+
const m = line.match(/([1-9A-HJ-NP-Za-km-z]{80,90})/);
|
|
44
|
+
return m ? { signature: m[1], explorerUrl: solscanUrl(m[1]) } : null;
|
|
45
|
+
})
|
|
46
|
+
.filter(Boolean);
|
|
47
|
+
return textResult({
|
|
48
|
+
ok: result.ok,
|
|
49
|
+
stdout: result.stdout,
|
|
50
|
+
stderr: result.stderr,
|
|
51
|
+
explorerLinks: links,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
export function solscanUrl(signature) {
|
|
55
|
+
return FhestateClient.devnetExplorerUrl(signature);
|
|
56
|
+
}
|
|
57
|
+
export function solscanLink(signature) {
|
|
58
|
+
return textResult({
|
|
59
|
+
signature,
|
|
60
|
+
network: "solana-devnet",
|
|
61
|
+
explorerUrl: solscanUrl(signature),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* On-Chain Public Settlement Anchoring.
|
|
66
|
+
* Triggers the FHE lattice encryption locally, extracts the resulting `SHA-256` commitment,
|
|
67
|
+
* and permanently anchors it to the Solana Devnet via an SPL Memo transaction.
|
|
68
|
+
*
|
|
69
|
+
* This effectively achieves public verification of a private off-chain computation.
|
|
70
|
+
* The blockchain records the state transition, but the plaintext remains strictly
|
|
71
|
+
* confined to the local Coprocessor environment.
|
|
72
|
+
*
|
|
73
|
+
* @param value The scalar numeric value to encrypt and anchor.
|
|
74
|
+
*/
|
|
75
|
+
export async function devnetSubmitMemo(value) {
|
|
76
|
+
if (isReadOnly()) {
|
|
77
|
+
return textResult({
|
|
78
|
+
ok: false,
|
|
79
|
+
error: "FHESTATE_MCP_READ_ONLY=1 — submit disabled.",
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
const walletPath = getWalletPath();
|
|
83
|
+
if (!walletPath) {
|
|
84
|
+
return textResult({
|
|
85
|
+
ok: false,
|
|
86
|
+
error: "Set FHESTATE_WALLET_PATH to a funded devnet keypair JSON file.",
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
const enc = await encryptValueViaCli(value);
|
|
90
|
+
if (!enc.ok || !enc.sha256) {
|
|
91
|
+
return textResult({ ok: false, error: enc.error, stderr: enc.stderr });
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
const secret = JSON.parse(readFileSync(walletPath, "utf8"));
|
|
95
|
+
if (!Array.isArray(secret) || secret.length !== 64) {
|
|
96
|
+
return textResult({
|
|
97
|
+
ok: false,
|
|
98
|
+
error: "Invalid keypair file: expected a JSON array of 64 bytes.",
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
const keypair = Keypair.fromSecretKey(Uint8Array.from(secret));
|
|
102
|
+
const client = new FhestateClient(getRpcUrl());
|
|
103
|
+
const tx = await client.submitCommitmentHash(keypairSigner(keypair), enc.sha256);
|
|
104
|
+
return textResult({
|
|
105
|
+
ok: true,
|
|
106
|
+
network: "solana-devnet",
|
|
107
|
+
value,
|
|
108
|
+
intentHash: enc.sha256,
|
|
109
|
+
commitment: `local://${enc.sha256}`,
|
|
110
|
+
signature: tx.signature,
|
|
111
|
+
explorerUrl: tx.explorerUrl,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
catch (e) {
|
|
115
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
116
|
+
return textResult({ ok: false, error: message });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=devnet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devnet.js","sourceRoot":"","sources":["../../src/tools/devnet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fhe.d.ts","sourceRoot":"","sources":["../../src/tools/fhe.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM;;;;;GAkB7C"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { encryptValueViaCli } from "../cli-bridge.js";
|
|
2
|
+
import { textResult } from "../redact.js";
|
|
3
|
+
export async function fheEncrypt(value) {
|
|
4
|
+
const result = await encryptValueViaCli(value);
|
|
5
|
+
if (!result.ok) {
|
|
6
|
+
return textResult({
|
|
7
|
+
ok: false,
|
|
8
|
+
error: result.error,
|
|
9
|
+
stderr: result.stderr,
|
|
10
|
+
hint: "Install fhe-cli and run fhe-cli config-init / keygen if needed.",
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
return textResult({
|
|
14
|
+
ok: true,
|
|
15
|
+
network: "solana-devnet",
|
|
16
|
+
value,
|
|
17
|
+
sha256: result.sha256,
|
|
18
|
+
commitment: result.commitmentUri,
|
|
19
|
+
note: "Ciphertext stays local. On-chain memo mode stores local://<hash> only.",
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=fhe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fhe.js","sourceRoot":"","sources":["../../src/tools/fhe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAa;IAC5C,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;YAChB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,iEAAiE;SACxE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;QAChB,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,eAAe;QACxB,KAAK;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,aAAa;QAChC,IAAI,EAAE,wEAAwE;KAC/E,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare function fhestateOverview(): {
|
|
2
|
+
content: {
|
|
3
|
+
type: "text";
|
|
4
|
+
text: string;
|
|
5
|
+
}[];
|
|
6
|
+
};
|
|
7
|
+
export declare function listAgentsAndMissions(): {
|
|
8
|
+
content: {
|
|
9
|
+
type: "text";
|
|
10
|
+
text: string;
|
|
11
|
+
}[];
|
|
12
|
+
};
|
|
13
|
+
export declare function phaseFacts(): {
|
|
14
|
+
content: {
|
|
15
|
+
type: "text";
|
|
16
|
+
text: string;
|
|
17
|
+
}[];
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=knowledge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/tools/knowledge.ts"],"names":[],"mappings":"AAKA,wBAAgB,gBAAgB;;;;;EAE/B;AAED,wBAAgB,qBAAqB;;;;;EAGpC;AAED,wBAAgB,UAAU;;;;;EAEzB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { getAgentsJsonPath } from "../config.js";
|
|
3
|
+
import { FHESTATE_OVERVIEW, PHASE_FACTS } from "../content/overview.js";
|
|
4
|
+
import { textResult } from "../redact.js";
|
|
5
|
+
export function fhestateOverview() {
|
|
6
|
+
return textResult(FHESTATE_OVERVIEW);
|
|
7
|
+
}
|
|
8
|
+
export function listAgentsAndMissions() {
|
|
9
|
+
const raw = readFileSync(getAgentsJsonPath(), "utf8");
|
|
10
|
+
return textResult(JSON.parse(raw));
|
|
11
|
+
}
|
|
12
|
+
export function phaseFacts() {
|
|
13
|
+
return textResult({ facts: PHASE_FACTS });
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=knowledge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/tools/knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,GAAG,GAAG,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type TweetKind } from "../content/tweets.js";
|
|
2
|
+
export declare function draftTweetTool(kind: TweetKind, mission?: string): {
|
|
3
|
+
content: {
|
|
4
|
+
type: "text";
|
|
5
|
+
text: string;
|
|
6
|
+
}[];
|
|
7
|
+
};
|
|
8
|
+
export declare function liveProofChecklist(): {
|
|
9
|
+
content: {
|
|
10
|
+
type: "text";
|
|
11
|
+
text: string;
|
|
12
|
+
}[];
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=social.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"social.d.ts","sourceRoot":"","sources":["../../src/tools/social.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIlE,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;;;;;EAE/D;AAED,wBAAgB,kBAAkB;;;;;EAEjC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { draftTweet } from "../content/tweets.js";
|
|
2
|
+
import { LIVE_PROOF_CHECKLIST } from "../content/overview.js";
|
|
3
|
+
import { textResult } from "../redact.js";
|
|
4
|
+
export function draftTweetTool(kind, mission) {
|
|
5
|
+
return textResult({ tweet: draftTweet(kind, mission) });
|
|
6
|
+
}
|
|
7
|
+
export function liveProofChecklist() {
|
|
8
|
+
return textResult(LIVE_PROOF_CHECKLIST);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=social.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/tools/social.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,UAAU,cAAc,CAAC,IAAe,EAAE,OAAgB;IAC9D,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../src/tools/verification.ts"],"names":[],"mappings":"AAGA,wBAAgB,2BAA2B;;;;;EAE1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/tools/verification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,UAAU,2BAA2B;IACzC,OAAO,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAC1C,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fhestate/mcp-server",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "FHESTATE MCP server — confidential agents, FHE encrypt, and Solana devnet tools for Cursor and Claude",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"fhestate-mcp": "./dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"data",
|
|
14
|
+
"README.md",
|
|
15
|
+
"SECURITY.md",
|
|
16
|
+
"LICENSE"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc && node scripts/copy-data.mjs",
|
|
20
|
+
"test": "node --import tsx --test tests/*.test.ts",
|
|
21
|
+
"smoke": "node scripts/smoke-list-tools.mjs",
|
|
22
|
+
"e2e:devnet": "node scripts/e2e-devnet-tx.mjs",
|
|
23
|
+
"prepublishOnly": "npm run build && npm test"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"mcp",
|
|
27
|
+
"fhe",
|
|
28
|
+
"fhestate",
|
|
29
|
+
"solana",
|
|
30
|
+
"privacy",
|
|
31
|
+
"agents"
|
|
32
|
+
],
|
|
33
|
+
"author": "FHESTATE Protocol",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "git+https://github.com/fhestate/fhestate.git",
|
|
38
|
+
"directory": "mcp/fhestate-mcp"
|
|
39
|
+
},
|
|
40
|
+
"homepage": "https://fhestate.org",
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"access": "public"
|
|
43
|
+
},
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": ">=18"
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
49
|
+
"@solana/web3.js": "^1.91.8",
|
|
50
|
+
"fhestate-sdk": "^0.2.0",
|
|
51
|
+
"zod": "^3.24.2"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@types/node": "^20.12.7",
|
|
55
|
+
"tsx": "^4.21.0",
|
|
56
|
+
"typescript": "^5.4.5"
|
|
57
|
+
}
|
|
58
|
+
}
|