@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.
- package/README.md +214 -0
- package/package.json +30 -0
- 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
|
+
}
|