@link.me/mcp 0.1.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.
Files changed (3) hide show
  1. package/README.md +214 -0
  2. package/package.json +30 -0
  3. package/run.js +44 -0
package/README.md ADDED
@@ -0,0 +1,214 @@
1
+ # @link.me/mcp
2
+
3
+ [Model Context Protocol](https://modelcontextprotocol.io) server for the [Linkme](https://link.me) platform. Gives AI agents like Claude, Cursor, and Windsurf programmatic access to your Linkme account.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install -g @link.me/mcp
9
+ ```
10
+
11
+ Pre-compiled binaries are provided for macOS (arm64, x64), Linux (x64, arm64), and Windows (x64). No runtime dependencies required.
12
+
13
+ ## Setup
14
+
15
+ ### Claude Desktop
16
+
17
+ Add to your `claude_desktop_config.json`:
18
+
19
+ ```json
20
+ {
21
+ "mcpServers": {
22
+ "linkme": {
23
+ "command": "linkme-mcp",
24
+ "env": {
25
+ "LINKME_TOKEN": "your-api-token"
26
+ }
27
+ }
28
+ }
29
+ }
30
+ ```
31
+
32
+ ### Claude Code
33
+
34
+ ```bash
35
+ claude mcp add linkme linkme-mcp -e LINKME_TOKEN=your-api-token
36
+ ```
37
+
38
+ ### Cursor
39
+
40
+ Add to your Cursor MCP settings:
41
+
42
+ ```json
43
+ {
44
+ "mcpServers": {
45
+ "linkme": {
46
+ "command": "linkme-mcp",
47
+ "env": {
48
+ "LINKME_TOKEN": "your-api-token"
49
+ }
50
+ }
51
+ }
52
+ }
53
+ ```
54
+
55
+ ### Windsurf
56
+
57
+ Add to your Windsurf MCP configuration:
58
+
59
+ ```json
60
+ {
61
+ "mcpServers": {
62
+ "linkme": {
63
+ "command": "linkme-mcp",
64
+ "env": {
65
+ "LINKME_TOKEN": "your-api-token"
66
+ }
67
+ }
68
+ }
69
+ }
70
+ ```
71
+
72
+ ## Authentication
73
+
74
+ Set the `LINKME_TOKEN` environment variable with your API token. The MCP server uses this to authenticate all requests to the Linkme platform.
75
+
76
+ You can obtain a token by logging in with the CLI:
77
+
78
+ ```bash
79
+ npm install -g @link.me/cli
80
+ linkme auth login
81
+ linkme config show --json | jq -r '.token'
82
+ ```
83
+
84
+ ## Available Tools
85
+
86
+ The MCP server exposes 100+ tools covering the full Linkme platform. All tools return structured JSON. Destructive operations (delete, cancel, reset) auto-confirm without prompting.
87
+
88
+ ### Profile & Identity
89
+
90
+ | Tool | Description |
91
+ |------|-------------|
92
+ | `whoami` | Show current identity |
93
+ | `profile` | View profile details |
94
+ | `profile_edit` | Edit profile fields |
95
+ | `profile_theme` | Update theme colors |
96
+ | `profile_linkme-icon` | Toggle Linkme icon |
97
+ | `profile_pixels` | Manage tracking pixels |
98
+ | `profile_contact_list` | List contact info |
99
+ | `profile_contact_set` | Set contact info |
100
+ | `profile_contact_delete` | Delete contact info |
101
+ | `profile_sections_list` | List profile sections |
102
+ | `profile_sections_enable` | Enable a section |
103
+ | `profile_sections_disable` | Disable a section |
104
+ | `profile_sections_move` | Reorder a section |
105
+
106
+ ### Links
107
+
108
+ | Tool | Description |
109
+ |------|-------------|
110
+ | `links_list` | List profile links |
111
+ | `links_add` | Add a link |
112
+ | `links_edit` | Edit a link |
113
+ | `links_delete` | Delete a link |
114
+ | `featured_list` | List featured links |
115
+ | `featured_add` | Add a featured link |
116
+ | `featured_edit` | Edit a featured link |
117
+ | `featured_delete` | Delete a featured link |
118
+ | `social_list` | List social links |
119
+ | `social_set` | Set a social link |
120
+
121
+ ### AP (Post on All Platforms)
122
+
123
+ | Tool | Description |
124
+ |------|-------------|
125
+ | `ap_accounts` | List connected accounts |
126
+ | `ap_connect` | Connect a provider |
127
+ | `ap_disconnect` | Disconnect a provider |
128
+ | `ap_post_list` | List posts |
129
+ | `ap_post_create` | Create a post |
130
+ | `ap_post_status` | Check post status |
131
+ | `ap_post_publish` | Publish a draft |
132
+ | `ap_post_cancel` | Cancel a post |
133
+ | `ap_post_retry` | Retry a failed post |
134
+ | `ap_analytics` | Post analytics |
135
+ | `ap_analytics_accounts` | Account-wide analytics |
136
+
137
+ ### Analytics
138
+
139
+ | Tool | Description |
140
+ |------|-------------|
141
+ | `analytics_overview` | Aggregated analytics |
142
+ | `analytics_visits` | Visit breakdown |
143
+ | `analytics_links` | Per-link clicks |
144
+ | `analytics_geo` | Geographic breakdown |
145
+ | `analytics_realtime` | Real-time visitors |
146
+
147
+ ### Email
148
+
149
+ | Tool | Description |
150
+ |------|-------------|
151
+ | `email_send` | Send a campaign |
152
+ | `email_test` | Send a test email |
153
+ | `email_history` | Campaign history |
154
+ | `email_detail` | Campaign details |
155
+ | `email_cancel` | Cancel a campaign |
156
+ | `email_domains` | Sending domains |
157
+ | `email_upload-image` | Upload an image |
158
+ | `email_templates_list` | List templates |
159
+ | `email_templates_create` | Create a template |
160
+ | `email_templates_delete` | Delete a template |
161
+
162
+ ### Commerce & Shop
163
+
164
+ | Tool | Description |
165
+ |------|-------------|
166
+ | `commerce_products_list` | List digital products |
167
+ | `commerce_products_create` | Create a product |
168
+ | `commerce_products_delete` | Delete a product |
169
+ | `shop_products_list\|add\|edit\|delete` | Shop products |
170
+ | `shop_categories_list\|add\|edit\|reorder\|delete` | Shop categories |
171
+
172
+ ### Other Tools
173
+
174
+ | Tool | Description |
175
+ |------|-------------|
176
+ | `contacts_list` | List contacts |
177
+ | `contacts_stats` | Contact analytics |
178
+ | `gallery_list\|delete` | Gallery media |
179
+ | `auth_login\|logout\|sessions\|switch` | Authentication |
180
+ | `config_show\|set\|reset` | Configuration |
181
+ | `automations_*` | Instagram automations (20+ tools) |
182
+ | `courses_*` | Course management |
183
+ | `feeds_*` | Feed subscriptions |
184
+ | `reviews_*` | Review subscriptions |
185
+ | `agency_*` | Agency management |
186
+
187
+ ## Environment Variables
188
+
189
+ | Variable | Description |
190
+ |----------|-------------|
191
+ | `LINKME_TOKEN` | Auth token (required) |
192
+ | `LINKME_API_URL` | Override API base URL |
193
+ | `LINKME_AUTH_URL` | Override auth service URL |
194
+ | `LINKME_AP_URL` | Override AP service URL |
195
+
196
+ ## How It Works
197
+
198
+ The MCP server uses stdio transport and exposes each CLI command as an MCP tool. Tool inputs are derived from the same Zod schemas used by the CLI. All tools run in JSON mode with color disabled, returning structured responses suitable for LLM consumption.
199
+
200
+ Interactive commands (shell completion, video upload) are excluded from the MCP tool set.
201
+
202
+ ## CLI
203
+
204
+ A full command-line interface is available as a separate package:
205
+
206
+ ```bash
207
+ npm install -g @link.me/cli
208
+ ```
209
+
210
+ See [@link.me/cli](https://www.npmjs.com/package/@link.me/cli) for documentation.
211
+
212
+ ## License
213
+
214
+ UNLICENSED
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@link.me/mcp",
3
+ "version": "0.1.0",
4
+ "description": "Linkme platform MCP server for Claude, Cursor, and other AI agents",
5
+ "license": "UNLICENSED",
6
+ "bin": {
7
+ "linkme-mcp": "./run.js"
8
+ },
9
+ "files": [
10
+ "run.js"
11
+ ],
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/LinkMeGlobal/cli.git",
15
+ "directory": "bin/mcp"
16
+ },
17
+ "keywords": [
18
+ "linkme",
19
+ "mcp",
20
+ "model-context-protocol",
21
+ "ai"
22
+ ],
23
+ "optionalDependencies": {
24
+ "@link.me/mcp-darwin-arm64": "0.1.0",
25
+ "@link.me/mcp-darwin-x64": "0.1.0",
26
+ "@link.me/mcp-linux-x64": "0.1.0",
27
+ "@link.me/mcp-linux-arm64": "0.1.0",
28
+ "@link.me/mcp-windows-x64": "0.1.0"
29
+ }
30
+ }
package/run.js ADDED
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { execFileSync } = require("node:child_process");
4
+ const path = require("node:path");
5
+ const os = require("node:os");
6
+
7
+ const PLATFORMS = {
8
+ "darwin-arm64": "@link.me/mcp-darwin-arm64",
9
+ "darwin-x64": "@link.me/mcp-darwin-x64",
10
+ "linux-x64": "@link.me/mcp-linux-x64",
11
+ "linux-arm64": "@link.me/mcp-linux-arm64",
12
+ "win32-x64": "@link.me/mcp-windows-x64",
13
+ };
14
+
15
+ const key = `${os.platform()}-${os.arch()}`;
16
+ const pkg = PLATFORMS[key];
17
+
18
+ if (!pkg) {
19
+ console.error(
20
+ `@link.me/mcp: unsupported platform ${key}. Supported: ${Object.keys(PLATFORMS).join(", ")}`,
21
+ );
22
+ process.exit(1);
23
+ }
24
+
25
+ let binPath;
26
+ try {
27
+ const pkgDir = path.dirname(require.resolve(`${pkg}/package.json`));
28
+ binPath = path.join(
29
+ pkgDir,
30
+ os.platform() === "win32" ? "linkme-mcp.exe" : "linkme-mcp",
31
+ );
32
+ } catch {
33
+ console.error(
34
+ `@link.me/mcp: could not find ${pkg}. Try reinstalling with:\n npm install @link.me/mcp`,
35
+ );
36
+ process.exit(1);
37
+ }
38
+
39
+ try {
40
+ execFileSync(binPath, process.argv.slice(2), { stdio: "inherit" });
41
+ } catch (e) {
42
+ if (e.status !== undefined) process.exit(e.status);
43
+ throw e;
44
+ }