granttap-mcp 0.8.15 → 0.8.17

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 CHANGED
@@ -1,86 +1,21 @@
1
- GrantTap Commercial Source License 1.0
2
-
3
- Copyright (c) 2026 Serhii Ziborov. All rights reserved.
4
-
5
- This license governs the source code and software distributed from the
6
- granttap-mcp repository and package (the "Software"), except for third-party
7
- components that identify their own license terms.
8
-
9
- 1. Definitions
10
-
11
- "GrantTap" means Serhii Ziborov doing business as GrantTap.
12
-
13
- "Authorized Access" means an active paid GrantTap subscription, an official
14
- GrantTap trial, or a separate written commercial agreement with GrantTap.
15
-
16
- "Authorized User" means a person or legal entity covered by Authorized Access.
17
-
18
- 2. Source inspection and contribution
19
-
20
- You may download, inspect, and make local modifications to the source solely to
21
- evaluate the Software, perform security review, or prepare a contribution to
22
- the official GrantTap repository. You may create a public fork solely for that
23
- contribution workflow if the fork retains this license and does not publish a
24
- release, binary, hosted service, or independently usable distribution.
25
-
26
- These rights do not permit production use, commercial use, or use to provide a
27
- service to another person.
28
-
29
- 3. Authorized product use
30
-
31
- During Authorized Access, GrantTap grants the Authorized User a limited,
32
- non-exclusive, non-transferable, non-sublicensable license to install, execute,
33
- and internally modify the Software on devices the Authorized User owns or
34
- controls, solely to use the official GrantTap product and services.
35
-
36
- When Authorized Access ends, the Authorized User must stop using the Software
37
- except where a separate written agreement says otherwise.
38
-
39
- 4. Restrictions
40
-
41
- Unless GrantTap gives prior written permission, you may not:
42
-
43
- - sell, sublicense, redistribute, or publish the Software or a derivative work;
44
- - offer the Software or a derivative work as a hosted or managed service;
45
- - use the Software to build or operate a competing product or service;
46
- - use the Software as a standalone general-purpose coding-agent runtime outside
47
- the official GrantTap product;
48
- - bypass subscription, license, access-control, or entitlement checks;
49
- - remove or alter copyright, license, attribution, or proprietary notices; or
50
- - use GrantTap names or marks to imply endorsement of a modified distribution.
51
-
52
- 5. Ownership
53
-
54
- The Software is licensed, not sold. GrantTap retains all right, title, and
55
- interest in the Software and its derivative works. No trademark, patent, or
56
- other rights are granted except the limited copyright rights stated here.
57
-
58
- 6. Third-party components
59
-
60
- Third-party components remain governed by their respective licenses. Those
61
- licenses and notices are not replaced by this license. See
62
- THIRD_PARTY_NOTICES.md where distributed.
63
-
64
- 7. Termination
65
-
66
- This license terminates automatically if you breach its terms. On termination,
67
- you must stop using and distributing the Software and delete copies that you
68
- are not legally required to retain. Sections 4 through 9 survive termination.
69
-
70
- 8. Disclaimer of warranty
71
-
72
- THE SOFTWARE IS PROVIDED "AS IS" AND "AS AVAILABLE", WITHOUT WARRANTIES OF
73
- ANY KIND, EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS
74
- FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.
75
-
76
- 9. Limitation of liability
77
-
78
- TO THE MAXIMUM EXTENT PERMITTED BY LAW, GRANTTAP AND ITS CONTRIBUTORS WILL NOT
79
- BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR
80
- PUNITIVE DAMAGES, OR FOR LOSS OF DATA, PROFITS, REVENUE, OR BUSINESS, ARISING
81
- FROM OR RELATED TO THE SOFTWARE OR THIS LICENSE.
82
-
83
- 10. Commercial terms
84
-
85
- Authorized Access, pricing, and separate commercial licenses are available
86
- through https://granttap.com.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Serhii Ziborov
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![npm](https://img.shields.io/npm/v/granttap-mcp)](https://www.npmjs.com/package/granttap-mcp)
4
4
  [![CI](https://github.com/sergii-ziborov/granttap-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/sergii-ziborov/granttap-mcp/actions/workflows/ci.yml)
5
- [![License](https://img.shields.io/badge/license-GrantTap%20Commercial-7c3aed.svg)](LICENSE)
5
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
6
 
7
7
  GrantTap is a Personal live control center for local coding agents.
8
8
 
@@ -13,9 +13,9 @@ hooks, local adapters, and TypeScript wire schemas. Agents and provider
13
13
  credentials stay on your computer. Native iPhone and Apple Watch traffic is
14
14
  end-to-end encrypted.
15
15
 
16
- The source is public for inspection and contribution, but GrantTap MCP is
17
- proprietary paid software rather than open source. Production use requires an
18
- active GrantTap subscription or a separate commercial agreement.
16
+ The MCP runtime, plugins, and CLI are open source under the MIT License. The
17
+ iPhone and Apple Watch app is a separate, proprietary product; use of GrantTap's
18
+ hosted service is governed by its own terms.
19
19
 
20
20
  [Website](https://granttap.com) · [npm](https://www.npmjs.com/package/granttap-mcp) ·
21
21
  [Security model](SECURITY.md) ·
@@ -204,8 +204,8 @@ history stays on the device.
204
204
 
205
205
  ## Install
206
206
 
207
- Installation and production use require Authorized Access under the
208
- [GrantTap Commercial Source License](LICENSE).
207
+ The local runtime and plugins are available under the [MIT License](LICENSE).
208
+ The iPhone and Apple Watch app and hosted service have separate terms.
209
209
 
210
210
  Install the GrantTap plugin directly from this repository's marketplace:
211
211
 
@@ -223,7 +223,8 @@ grok plugin marketplace add sergii-ziborov/granttap-mcp
223
223
  grok plugin install granttap --trust
224
224
  ```
225
225
 
226
- Install **GrantTap** from the Cursor plugin marketplace, then open
226
+ Import `sergii-ziborov/granttap-mcp` as a private Git plugin in Cursor. The
227
+ MIT-licensed plugin is ready for Cursor's public review. Reload Cursor, then open
227
228
  **Cursor Customize → MCPs → GrantTap → Authenticate**. Complete authorization
228
229
  and any one-time QR pairing on `https://granttap.com/connect`.
229
230
 
@@ -520,9 +521,8 @@ typecheck, and release checks pass.
520
521
 
521
522
  ## License
522
523
 
523
- GrantTap MCP is distributed under the proprietary
524
- [GrantTap Commercial Source License 1.0](LICENSE). Public source access does not
525
- grant open-source, redistribution, hosted-service, or competing-product rights.
524
+ GrantTap MCP, its CLI, and bundled plugins are distributed under the
525
+ [MIT License](LICENSE). The iPhone and Apple Watch app is licensed separately.
526
526
  Third-party dependencies retain their own terms; see
527
527
  [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
528
528
 
@@ -1,8 +1,8 @@
1
1
  # Third-party notices
2
2
 
3
- GrantTap MCP is proprietary software distributed under the GrantTap Commercial
4
- Source License. Third-party components retain their own licenses; the GrantTap
5
- license does not replace or restrict those terms.
3
+ GrantTap MCP is distributed under the MIT License. Third-party components
4
+ retain their own licenses; the GrantTap license does not replace or restrict
5
+ those terms.
6
6
 
7
7
  The npm package declares, rather than vendors, these direct runtime
8
8
  dependencies. Their packages carry the applicable license texts:
@@ -2,4 +2,4 @@
2
2
 
3
3
  This module discovers provider-configured MCP servers and available skills. Metadata probing is isolated because it may start an MCP transport; local descriptors and skill discovery remain read-only.
4
4
 
5
- License: this module is distributed under the GrantTap Commercial Source License in the repository-root `LICENSE` file.
5
+ License: this module is distributed under the MIT License in the repository-root `LICENSE` file.
@@ -6,5 +6,5 @@ and device pairing serialization. `../config.ts` is its public entry point.
6
6
  Behavior is covered by `tests/config.test.ts`, `tests/capabilities.test.ts`, and
7
7
  `tests/core.test.ts`.
8
8
 
9
- License: this module is distributed under the GrantTap Commercial Source License
9
+ License: this module is distributed under the MIT License
10
10
  in the repository-root `LICENSE` file.
@@ -21,5 +21,5 @@ its 50 ms policy budget.
21
21
 
22
22
  The proprietary engine source and Project database do not live in this package.
23
23
 
24
- License: this module is distributed under the GrantTap Commercial Source License
24
+ License: this module is distributed under the MIT License
25
25
  in the repository-root `LICENSE` file.
@@ -6,5 +6,5 @@ catalogs. `index.ts` assembles and publishes the bounded wire payload,
6
6
  the latest provider discovery cost, and `loop.ts` runs the independent adaptive
7
7
  five-second active / thirty-second idle cadence from cached session status.
8
8
 
9
- License: this module is distributed under the GrantTap Commercial Source License
9
+ License: this module is distributed under the MIT License
10
10
  in the repository-root `LICENSE` file.
@@ -62,5 +62,5 @@ installed provider, and periodically projects the canonical policy plus current
62
62
  coverage back to the phone. Engine or feature unavailability leaves existing
63
63
  GrantTap behavior intact; strict fail-closed decisions remain on the hook path.
64
64
 
65
- License: this module is distributed under the GrantTap Commercial Source License
65
+ License: this module is distributed under the MIT License
66
66
  in the repository-root `LICENSE` file.
@@ -19,5 +19,5 @@ forces the existing GrantTap approval path. Cursor evaluates Project policy
19
19
  directly in its shell and MCP hooks; MCP evidence contains only bounded names,
20
20
  transport, and a configuration SHA-256, never the descriptor or call arguments.
21
21
 
22
- License: this module is distributed under the GrantTap Commercial Source License
22
+ License: this module is distributed under the MIT License
23
23
  in the repository-root `LICENSE` file.
@@ -6,5 +6,5 @@ This module prepares phone attachments, routes selected MCP/skill intent, and ru
6
6
  handoff resumes the same Task on another agent or computer. Providers without an
7
7
  implemented remote-start path fail closed instead of reporting parity.
8
8
 
9
- License: this module is distributed under the GrantTap Commercial Source License
9
+ License: this module is distributed under the MIT License
10
10
  in the repository-root `LICENSE` file.
@@ -5,5 +5,5 @@ summaries, visible activity, and capability observations. `../cursor.ts` is the
5
5
  public entry point. Characterization coverage lives in `tests/sessions.test.ts`,
6
6
  `tests/agentic-sessions.test.ts`, and the provider capability suites.
7
7
 
8
- License: this module is distributed under the GrantTap Commercial Source License
8
+ License: this module is distributed under the MIT License
9
9
  in the repository-root `LICENSE` file.
@@ -5,5 +5,5 @@ bounded context cost; and limits encrypted usage payloads. `../telemetry.ts` is
5
5
  the public entry point. Tests live in `tests/provider-capability-telemetry.test.ts`
6
6
  and `tests/provider-capability-bounds.test.ts`.
7
7
 
8
- License: this module is distributed under the GrantTap Commercial Source License
8
+ License: this module is distributed under the MIT License
9
9
  in the repository-root `LICENSE` file.
@@ -1,6 +1,6 @@
1
1
  /** Per-user Windows Task Scheduler jobs for the loopback MCP and phone monitor. */
2
2
  import { spawnSync } from "node:child_process";
3
- import { existsSync, mkdirSync, unlinkSync, writeFileSync } from "node:fs";
3
+ import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
4
4
  import { dirname, join } from "node:path";
5
5
  import { configDir } from "./config";
6
6
  import type { InstallResult } from "./install";
@@ -18,7 +18,7 @@ function xml(value: string): string {
18
18
  .replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
19
19
  }
20
20
 
21
- export function windowsTaskDefinition(job: WindowsJob, node: string, launcher: string, owner = "TestUser"): string {
21
+ export function windowsTaskDefinition(job: WindowsJob, node: string, launcher: string, owner = "TestUser", version = "0.0.0"): string {
22
22
  const date = new Date(Date.now() - 60_000);
23
23
  const local = new Date(date.getTime() - date.getTimezoneOffset() * 60_000);
24
24
  const start = local.toISOString().slice(0, 19);
@@ -26,6 +26,7 @@ export function windowsTaskDefinition(job: WindowsJob, node: string, launcher: s
26
26
  return [
27
27
  '<?xml version="1.0" encoding="UTF-16"?>',
28
28
  '<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">',
29
+ `<RegistrationInfo><Description>GrantTap ${xml(version)} ${job}</Description></RegistrationInfo>`,
29
30
  "<Triggers><TimeTrigger>", `<StartBoundary>${start}</StartBoundary>`,
30
31
  "<Enabled>true</Enabled><Repetition><Interval>PT1M</Interval></Repetition>",
31
32
  "</TimeTrigger></Triggers>",
@@ -85,14 +86,22 @@ export function installWindowsTask(job: WindowsJob, node: string, launcher: stri
85
86
  }
86
87
  const owner = identity();
87
88
  if (!owner) return { status: "manual", detail: "Could not identify the current Windows user." };
89
+ let version: string;
90
+ try {
91
+ version = (JSON.parse(readFileSync(join(dirname(launcher), "..", "package.json"), "utf8")) as { version: string }).version;
92
+ if (!/^\d+\.\d+\.\d+$/.test(version)) throw new Error("invalid version");
93
+ } catch {
94
+ return { status: "manual", detail: "Installed GrantTap package version could not be read." };
95
+ }
88
96
  const path = taskFile(job);
89
- const definition = windowsTaskDefinition(job, node, launcher, owner);
97
+ const definition = windowsTaskDefinition(job, node, launcher, owner, version);
90
98
  const previousCommand = previous?.match(/<Command>([^<]*)<\/Command>/)?.[1];
91
99
  const previousArgs = previous?.match(/<Arguments>([^<]*)<\/Arguments>/)?.[1];
92
100
  const normalizedArgs = previousArgs?.replaceAll("&quot;", '"').replaceAll("&amp;", "&");
93
101
  const already = previousCommand === xml(node)
94
102
  && normalizedArgs === `"${launcher}" internal ${job === "http" ? "serve" : "monitor"}`
95
- && previous?.includes("<Interval>PT1M</Interval>") === true;
103
+ && previous?.includes("<Interval>PT1M</Interval>") === true
104
+ && previous.includes(`<Description>GrantTap ${version} ${job}</Description>`);
96
105
  if (already && !forceReload && inspectWindowsTask(job).running) return { status: "already", detail: names[job] };
97
106
  mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
98
107
  // Task Scheduler reads an XML file; keep it private to this user's config directory.
@@ -102,7 +111,9 @@ export function installWindowsTask(job: WindowsJob, node: string, launcher: stri
102
111
  });
103
112
  unlinkSync(path);
104
113
  if (created.status !== 0) return { status: "manual", detail: `${names[job]} could not be registered for this Windows user.` };
105
- if (forceReload && previous) spawnSync("schtasks.exe", ["/End", "/TN", names[job]], { windowsHide: true });
114
+ if (previous && (forceReload || !already)) {
115
+ spawnSync("schtasks.exe", ["/End", "/TN", names[job]], { windowsHide: true });
116
+ }
106
117
  const started = spawnSync("schtasks.exe", ["/Run", "/TN", names[job]], { encoding: "utf8", windowsHide: true });
107
118
  return started.status === 0
108
119
  ? { status: already ? "already" : "installed", detail: names[job] }
@@ -30,5 +30,5 @@ or replace the local provider runtime.
30
30
  Tests in `tests/` exercise isolated keys, a loopback encrypted phone connection,
31
31
  expiry, non-mutating status, and actual DOM button/host-message behavior.
32
32
 
33
- License: this module is distributed under the GrantTap Commercial Source License
33
+ License: this module is distributed under the MIT License
34
34
  in the repository-root `LICENSE` file.
@@ -2,4 +2,4 @@
2
2
 
3
3
  This module installs and verifies the optional macOS LaunchAgent that keeps Cursor's loopback OAuth MCP endpoint available. The installer validates every executable and restores the exact prior owned plist after a failed repair.
4
4
 
5
- License: this module is distributed under the GrantTap Commercial Source License in the repository-root `LICENSE` file.
5
+ License: this module is distributed under the MIT License in the repository-root `LICENSE` file.
@@ -24,7 +24,7 @@ credential, policy revision, expiry, actor, Project scope, and operation on ever
24
24
  call, and can never create invites, expand scope, change the relay, or reach
25
25
  `setup`.
26
26
 
27
- License: this module is distributed under the GrantTap Commercial Source License
27
+ License: this module is distributed under the MIT License
28
28
  in the repository-root `LICENSE` file.
29
29
 
30
30
  The connection center lives in `../connection-center`. Status requests are
@@ -2,4 +2,4 @@
2
2
 
3
3
  This module owns local MCP OAuth client persistence and token issuance. The OAuth authorization endpoint immediately redirects to `https://granttap.com/connect`; the website reads a short-lived request through the loopback helper, while pairing keys remain on the computer and phone. The local service never renders a user-facing consent page.
4
4
 
5
- License: this module is distributed under the GrantTap Commercial Source License in the repository-root `LICENSE` file.
5
+ License: this module is distributed under the MIT License in the repository-root `LICENSE` file.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "granttap",
3
3
  "displayName": "GrantTap",
4
- "version": "0.1.6",
4
+ "version": "0.1.8",
5
5
  "description": "Connect Cursor to GrantTap through granttap.com/connect, pair your phone with a one-time QR, and keep approvals in the originating chat.",
6
6
  "author": {
7
7
  "name": "GrantTap",
@@ -11,7 +11,7 @@
11
11
  "publisher": "GrantTap",
12
12
  "homepage": "https://granttap.com",
13
13
  "repository": "https://github.com/sergii-ziborov/granttap-mcp",
14
- "license": "SEE LICENSE IN LICENSE",
14
+ "license": "MIT",
15
15
  "category": "integrations",
16
16
  "keywords": [
17
17
  "granttap",
@@ -1,86 +1,21 @@
1
- GrantTap Commercial Source License 1.0
2
-
3
- Copyright (c) 2026 Serhii Ziborov. All rights reserved.
4
-
5
- This license governs the source code and software distributed from the
6
- granttap-mcp repository and package (the "Software"), except for third-party
7
- components that identify their own license terms.
8
-
9
- 1. Definitions
10
-
11
- "GrantTap" means Serhii Ziborov doing business as GrantTap.
12
-
13
- "Authorized Access" means an active paid GrantTap subscription, an official
14
- GrantTap trial, or a separate written commercial agreement with GrantTap.
15
-
16
- "Authorized User" means a person or legal entity covered by Authorized Access.
17
-
18
- 2. Source inspection and contribution
19
-
20
- You may download, inspect, and make local modifications to the source solely to
21
- evaluate the Software, perform security review, or prepare a contribution to
22
- the official GrantTap repository. You may create a public fork solely for that
23
- contribution workflow if the fork retains this license and does not publish a
24
- release, binary, hosted service, or independently usable distribution.
25
-
26
- These rights do not permit production use, commercial use, or use to provide a
27
- service to another person.
28
-
29
- 3. Authorized product use
30
-
31
- During Authorized Access, GrantTap grants the Authorized User a limited,
32
- non-exclusive, non-transferable, non-sublicensable license to install, execute,
33
- and internally modify the Software on devices the Authorized User owns or
34
- controls, solely to use the official GrantTap product and services.
35
-
36
- When Authorized Access ends, the Authorized User must stop using the Software
37
- except where a separate written agreement says otherwise.
38
-
39
- 4. Restrictions
40
-
41
- Unless GrantTap gives prior written permission, you may not:
42
-
43
- - sell, sublicense, redistribute, or publish the Software or a derivative work;
44
- - offer the Software or a derivative work as a hosted or managed service;
45
- - use the Software to build or operate a competing product or service;
46
- - use the Software as a standalone general-purpose coding-agent runtime outside
47
- the official GrantTap product;
48
- - bypass subscription, license, access-control, or entitlement checks;
49
- - remove or alter copyright, license, attribution, or proprietary notices; or
50
- - use GrantTap names or marks to imply endorsement of a modified distribution.
51
-
52
- 5. Ownership
53
-
54
- The Software is licensed, not sold. GrantTap retains all right, title, and
55
- interest in the Software and its derivative works. No trademark, patent, or
56
- other rights are granted except the limited copyright rights stated here.
57
-
58
- 6. Third-party components
59
-
60
- Third-party components remain governed by their respective licenses. Those
61
- licenses and notices are not replaced by this license. See
62
- THIRD_PARTY_NOTICES.md where distributed.
63
-
64
- 7. Termination
65
-
66
- This license terminates automatically if you breach its terms. On termination,
67
- you must stop using and distributing the Software and delete copies that you
68
- are not legally required to retain. Sections 4 through 9 survive termination.
69
-
70
- 8. Disclaimer of warranty
71
-
72
- THE SOFTWARE IS PROVIDED "AS IS" AND "AS AVAILABLE", WITHOUT WARRANTIES OF
73
- ANY KIND, EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS
74
- FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.
75
-
76
- 9. Limitation of liability
77
-
78
- TO THE MAXIMUM EXTENT PERMITTED BY LAW, GRANTTAP AND ITS CONTRIBUTORS WILL NOT
79
- BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR
80
- PUNITIVE DAMAGES, OR FOR LOSS OF DATA, PROFITS, REVENUE, OR BUSINESS, ARISING
81
- FROM OR RELATED TO THE SOFTWARE OR THIS LICENSE.
82
-
83
- 10. Commercial terms
84
-
85
- Authorized Access, pricing, and separate commercial licenses are available
86
- through https://granttap.com.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Serhii Ziborov
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -6,8 +6,7 @@ each phone response tied to the exact originating chat and prompt.
6
6
 
7
7
  ## Connect Cursor
8
8
 
9
- Install the supported CLI and the GrantTap plugin from Cursor's marketplace,
10
- then run:
9
+ Install the supported CLI on this computer, then run:
11
10
 
12
11
  ```bash
13
12
  npm install -g granttap-mcp
@@ -39,12 +38,26 @@ The OAuth service listens only at `http://127.0.0.1:17342/mcp`. Cursor cannot
39
38
  show **Authenticate** for a stdio (`command`/`args`) MCP entry, so do not replace the
40
39
  plugin's HTTP configuration with stdio.
41
40
 
42
- ## Install from the Cursor marketplace
43
-
44
- Install **GrantTap** from Cursor's plugin marketplace, then reload Cursor.
45
- The plugin adds the `/connect` command, a connect skill, and the
46
- exact-correlation rule; `granttap setup` still configures the MCP endpoint
47
- itself.
41
+ ## Install the Cursor plugin
42
+
43
+ The plugin is MIT-licensed and available as a private Git import:
44
+ `sergii-ziborov/granttap-mcp`. A public Cursor Marketplace listing requires
45
+ manual review. Reload Cursor after import.
46
+ The private listing is tied to the version imported on that computer; re-import
47
+ it to pick up the current orange icon and plugin changes. If a public listing
48
+ is later approved, install **GrantTap** from Cursor's marketplace to receive
49
+ its reviewed updates. The plugin adds the `/connect` command, a connect
50
+ skill, and the exact-correlation rule; `granttap setup` configures the local
51
+ MCP endpoint separately.
52
+
53
+ If Customize shows both a lowercase **granttap** entry with a generic cube and
54
+ an older green **GrantTap** entry, those are saved imports from earlier versions.
55
+ Remove both old imports in Cursor, import `sergii-ziborov/granttap-mcp` once at
56
+ the user scope, and reload Cursor. Keep the single **GrantTap** entry with the
57
+ orange check-and-wave icon. On the same computer, rerun `granttap setup` and
58
+ `granttap status` so the MCP service and hooks point to the permanent npm install
59
+ instead of an old temporary path. A workspace-scoped import is not needed when
60
+ the user-scoped plugin is already installed.
48
61
 
49
62
  ## Exact dual-channel behavior
50
63
 
@@ -58,7 +71,6 @@ prompt must never resolve the current request.
58
71
  | Path | Purpose |
59
72
  | --- | --- |
60
73
  | `.cursor-plugin/plugin.json` | Cursor plugin manifest |
61
- | `.cursor-plugin/marketplace.json` | Plugin-local marketplace metadata |
62
74
  | `../.cursor-plugin/marketplace.json` | Repository marketplace index Cursor publishes |
63
75
  | `mcp.json` | Loopback Streamable HTTP MCP endpoint |
64
76
  | `assets/logo.svg` | Plugin logo |
@@ -71,5 +83,5 @@ Troubleshooting details live in
71
83
 
72
84
  ## License
73
85
 
74
- The plugin is distributed under the GrantTap Commercial Source License included
75
- in this directory. Production use requires Authorized Access to GrantTap.
86
+ The plugin is distributed under the [MIT License](LICENSE). The GrantTap iPhone
87
+ and Apple Watch app and hosted service have separate terms.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "granttap-mcp",
3
- "version": "0.8.15",
3
+ "version": "0.8.17",
4
4
  "description": "Personal live control center runtime for local coding agents on iPhone and Apple Watch.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -73,7 +73,7 @@
73
73
  "e2ee",
74
74
  "approvals"
75
75
  ],
76
- "license": "SEE LICENSE IN LICENSE",
76
+ "license": "MIT",
77
77
  "publishConfig": {
78
78
  "access": "public"
79
79
  },
@@ -22,4 +22,4 @@ claim a provider can block an action when it cannot.
22
22
 
23
23
  Tests are discoverable in `tests/core.test.ts` and the feature-level bridge and MCP suites.
24
24
 
25
- License: this module is distributed under the GrantTap Commercial Source License in the repository-root `LICENSE` file.
25
+ License: this module is distributed under the MIT License in the repository-root `LICENSE` file.
@@ -1,18 +0,0 @@
1
- {
2
- "name": "granttap",
3
- "owner": {
4
- "name": "GrantTap",
5
- "email": "support@granttap.com"
6
- },
7
- "metadata": {
8
- "description": "GrantTap for Cursor — authorize on granttap.com/connect and approve local tasks from your phone",
9
- "version": "0.1.6"
10
- },
11
- "plugins": [
12
- {
13
- "name": "granttap",
14
- "source": "./",
15
- "description": "Authorize Cursor on granttap.com/connect, pair by QR, and keep each approval in its originating chat"
16
- }
17
- ]
18
- }