phaedo-mcp 0.1.0 → 0.1.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 CHANGED
@@ -54,9 +54,24 @@ remote HTTP/SSE are out of this cut).
54
54
 
55
55
  ## Install & test
56
56
 
57
+ **From npm (published).** The server is on the registry as
58
+ [`phaedo-mcp`](https://www.npmjs.com/package/phaedo-mcp) — run it without cloning:
59
+
60
+ ```bash
61
+ npx phaedo-mcp # run the server directly over stdio
62
+ # or install the `phaedo-mcp` command globally:
63
+ npm install -g phaedo-mcp
64
+ ```
65
+
66
+ Most users never start the server by hand — point your MCP client at it with the
67
+ **one-click install** below, which wires `phaedo-mcp` into Claude Desktop / Cursor /
68
+ Claude Code for you. The `cd mcp` / `npm run …` commands in the rest of this README
69
+ are for working from a **clone of this repo** (development & the smoke suite):
70
+
57
71
  ```bash
58
72
  cd mcp
59
73
  npm install
74
+ npm test # full suite (smoke + phone + cache + pairing + consult + …)
60
75
  npm run smoke # 1a: unit + live stdio integration (23 checks)
61
76
  npm run smoke:phone # 1b-i: mock-phone authorize→pull→decrypt→project (12 checks)
62
77
  npm run smoke:cache # 1b-iii: encrypted at-rest cache + phone-absent fallback (11 checks)
@@ -28,11 +28,17 @@ function resolveSourcePath(baseDir) {
28
28
  // Throws on unreadable/invalid source — the tool layer maps that to
29
29
  // decryption_failed (the §9.5 "couldn't obtain plaintext fingerprint" case).
30
30
  export async function loadFingerprint(baseDir) {
31
- // Phase 1b: a configured pairing record means pull the live fingerprint from
32
- // the paired phone over the encrypted boundary (no plaintext at rest). On
33
- // success, refresh the encrypted at-rest cache; if the phone is unreachable,
34
- // serve the cache so the server still works phone-absent (frictionless default).
35
- if (hasPairingRecord(baseDir)) {
31
+ // Explicit local source wins over phone pairing: if PHAEDO_FINGERPRINT names a
32
+ // file, honor it and skip the phone entirely. Pointing at a concrete fingerprint
33
+ // is an unambiguous "use THIS" — it lets a user force a local file and makes the
34
+ // server hermetic for tests on a phone-paired dev machine (where pairing.json +
35
+ // an isolated state dir would otherwise pull from an unreachable phone with no
36
+ // cache to fall back to).
37
+ if (!process.env.PHAEDO_FINGERPRINT && hasPairingRecord(baseDir)) {
38
+ // Phase 1b: a configured pairing record means pull the live fingerprint from
39
+ // the paired phone over the encrypted boundary (no plaintext at rest). On
40
+ // success, refresh the encrypted at-rest cache; if the phone is unreachable,
41
+ // serve the cache so the server still works phone-absent (frictionless default).
36
42
  const rec = await loadPairingRecord(baseDir);
37
43
  const stateDir = defaultStateDir();
38
44
  try {
package/package.json CHANGED
@@ -1,22 +1,54 @@
1
1
  {
2
2
  "name": "phaedo-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "private": false,
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "description": "Phaedo MCP server — inject your cognitive fingerprint into any MCP client, and consult your decision pattern at agent decision points (docs/protocol/mcp-binding.md).",
8
- "mcpName": "io.github.galavoxx/phaedo",
8
+ "mcpName": "io.github.galavoxx/phaedo-mcp",
9
9
  "homepage": "https://getphaedo.com",
10
- "repository": { "type": "git", "url": "https://github.com/galavoxx/phaedo", "directory": "mcp" },
11
- "keywords": ["mcp", "model-context-protocol", "personalization", "fingerprint", "consultation", "agent"],
12
- "bin": { "phaedo-mcp": "server.js" },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/galavoxx/phaedo-mcp.git"
13
+ },
14
+ "keywords": [
15
+ "mcp",
16
+ "model-context-protocol",
17
+ "personalization",
18
+ "fingerprint",
19
+ "consultation",
20
+ "agent"
21
+ ],
22
+ "bin": {
23
+ "phaedo-mcp": "server.js"
24
+ },
13
25
  "files": [
14
- "server.js", "server.json", "fingerprint-source.js", "projection.js", "errors.js",
15
- "consult.js", "consult-core.js", "consult-policy.js", "receipts.js", "agreement.js", "phone-source.js",
16
- "cache.js", "pairing.js", "pair.js", "pull.js",
17
- "install.mjs", "build-package.mjs", "vendor/", "lib/", "hooks/", "installers/",
18
- "policy-editor.html", "sample-fingerprint.json", "pairing.sample.json",
19
- "consult-policies.sample.json", "README.md"
26
+ "server.js",
27
+ "server.json",
28
+ "fingerprint-source.js",
29
+ "projection.js",
30
+ "errors.js",
31
+ "consult.js",
32
+ "consult-core.js",
33
+ "consult-policy.js",
34
+ "receipts.js",
35
+ "agreement.js",
36
+ "phone-source.js",
37
+ "cache.js",
38
+ "pairing.js",
39
+ "pair.js",
40
+ "pull.js",
41
+ "install.mjs",
42
+ "build-package.mjs",
43
+ "vendor/",
44
+ "lib/",
45
+ "hooks/",
46
+ "installers/",
47
+ "policy-editor.html",
48
+ "sample-fingerprint.json",
49
+ "pairing.sample.json",
50
+ "consult-policies.sample.json",
51
+ "README.md"
20
52
  ],
21
53
  "scripts": {
22
54
  "start": "node server.js",
package/server.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
- "name": "io.github.galavoxx/phaedo",
3
+ "name": "io.github.galavoxx/phaedo-mcp",
4
4
  "description": "Carry your Phaedo cognitive fingerprint into any MCP client: inject your style at session start, and consult your decision pattern (proceed/clarify/escalate/decline) at agent decision points. Local, user-owned, privacy-preserving.",
5
- "version": "0.1.0",
5
+ "version": "0.1.1",
6
6
  "repository": {
7
- "url": "https://github.com/galavoxx/phaedo",
7
+ "url": "https://github.com/galavoxx/phaedo-mcp",
8
8
  "source": "github"
9
9
  },
10
10
  "packages": [
@@ -12,8 +12,10 @@
12
12
  "registryType": "npm",
13
13
  "registryBaseUrl": "https://registry.npmjs.org",
14
14
  "identifier": "phaedo-mcp",
15
- "version": "0.1.0",
16
- "transport": { "type": "stdio" }
15
+ "version": "0.1.1",
16
+ "transport": {
17
+ "type": "stdio"
18
+ }
17
19
  }
18
20
  ]
19
21
  }