tidee-mcp 1.0.0 → 1.0.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.
Files changed (2) hide show
  1. package/README.md +60 -0
  2. package/package.json +2 -6
package/README.md CHANGED
@@ -60,6 +60,66 @@ needs Node and a token you paste into a config file.
60
60
  `TIDEE_API_URL` exists for pointing at a local server during
61
61
  development. Leave it unset otherwise.
62
62
 
63
+ ## Releasing
64
+
65
+ ```sh
66
+ pnpm run mcp:release # from the repo root
67
+ cd packages/tidee-life-mcp && npm publish
68
+ ```
69
+
70
+ `mcp:release` bumps the patch version and records a fingerprint of
71
+ everything that determines what gets published — this package's source,
72
+ `tidee-life-core/mcp`, and the runtime dependencies. CI verifies that
73
+ record on every pipeline.
74
+
75
+ That check exists because there are two of these in the wild: the hosted
76
+ endpoint at `app.tidee.com/mcp`, which updates on every deploy, and this
77
+ package, which updates only when somebody remembers. Sharing the tool
78
+ definitions stops the source drifting; nothing stops the artefacts
79
+ drifting, and when they do it is silent — package users just get older
80
+ tools than URL users. Editing a tool description in
81
+ `tidee-life-core/mcp` is enough to cause it, and that file is nowhere
82
+ near this package.
83
+
84
+ Publishing stays manual: it needs credentials and a 2FA code, the
85
+ version is claimed forever, and unpublishing is heavily restricted after
86
+ 72 hours.
87
+
88
+ ## The MCP registry
89
+
90
+ `server.json` is the registry entry. It lists BOTH ways to connect —
91
+ the hosted endpoint under `remotes`, and this package under `packages` —
92
+ so a client can prefer whichever suits it. The hosted one needs no token;
93
+ this one does, which is why only the package entry declares
94
+ `TIDEE_API_TOKEN`.
95
+
96
+ Three things must agree, or publishing is rejected:
97
+
98
+ | | |
99
+ |---|---|
100
+ | `server.json` → `name` | `package.json` → `mcpName` |
101
+ | `server.json` → `version` | `package.json` → `version` |
102
+ | `server.json` → `packages[0].version` | `package.json` → `version` |
103
+
104
+ `mcpName` is how the registry verifies ownership: it checks that the npm
105
+ package claims the same name the registry entry does, which stops anyone
106
+ registering a server pointing at a package they do not own. It therefore
107
+ has to be inside the published tarball — bump and republish before
108
+ publishing to the registry, not after.
109
+
110
+ The `com.tidee/` namespace needs DNS authentication (a TXT record on
111
+ tidee.com) rather than the GitHub flow, so that a listing carries the
112
+ product's own name rather than a personal account's:
113
+
114
+ ```sh
115
+ brew install mcp-publisher
116
+ mcp-publisher login dns --domain tidee.com
117
+ mcp-publisher publish
118
+ ```
119
+
120
+ The registry is in preview and warns about breaking changes, so check
121
+ the current docs at modelcontextprotocol.io/registry before running it.
122
+
63
123
  ## Building
64
124
 
65
125
  ```sh
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "tidee-mcp",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
+ "mcpName": "com.tidee/tidee",
4
5
  "description": "MCP server for tidee — let an assistant add items to your workspace, read what is there, and mark things done.",
5
6
  "keywords": [
6
7
  "mcp",
@@ -13,11 +14,6 @@
13
14
  "license": "MIT",
14
15
  "author": "tidee Ltd",
15
16
  "homepage": "https://www.tidee.com",
16
- "repository": {
17
- "type": "git",
18
- "url": "git+https://gitlab.com/joetidee/tidee-life.git",
19
- "directory": "packages/tidee-life-mcp"
20
- },
21
17
  "bugs": {
22
18
  "url": "https://www.tidee.com/en/contact"
23
19
  },