You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .cursor-plugin/plugin.json
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
1
{
2
2
"name": "leadmagic",
3
3
"displayName": "LeadMagic",
4
-
"version": "0.1.3",
5
-
"description": "Official LeadMagic plugin for Cursor with hosted MCP: emails, mobile, LinkedIn-to-email, job changes, company research, competitors, technographics, and credits.",
4
+
"version": "0.1.4",
5
+
"description": "Official LeadMagic plugin for Cursor with hosted MCP (OAuth by default): emails, mobile, LinkedIn-to-email, job changes, company research, competitors, technographics, and credits.",
throw new Error('mcp.json must point to the hosted LeadMagic MCP endpoint with explicit HTTP transport');
53
-
}
54
-
55
-
if (!server.headers || server.headers['x-leadmagic-key'] !== '${LEADMAGIC_API_KEY}') {
56
-
throw new Error('mcp.json must use LEADMAGIC_API_KEY interpolation');
57
-
}
58
-
EOF
42
+
- name: Validate plugin and hosted health
43
+
run: npm run check
59
44
60
45
- name: Check README references
61
46
run: |
62
-
node -e "const fs=require('node:fs');const text=fs.readFileSync('README.md','utf8');for(const value of ['https://mcp.leadmagic.io/mcp','leadmagic://docs','LeadMagic MCP Tools']){if(!text.includes(value)){throw new Error('README.md is missing required reference: '+value)}}"
47
+
node -e "const fs=require('node:fs');const text=fs.readFileSync('README.md','utf8');for(const value of ['https://mcp.leadmagic.io/mcp','leadmagic://docs','LeadMagic MCP Tools','OAuth']){if(!text.includes(value)){throw new Error('README.md is missing required reference: '+value)}}"
Copy file name to clipboardExpand all lines: CHANGELOG.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,11 @@
2
2
3
3
All notable changes to the LeadMagic Cursor plugin package are documented here.
4
4
5
+
## 0.1.4
6
+
7
+
-**Auth:** Default `mcp.json` uses OAuth only (no headers); Cursor signs in with LeadMagic. README documents optional `x-leadmagic-key` + `${LEADMAGIC_API_KEY}` for API-key mode.
8
+
-**CI:**`npm run check` runs validate plus `verify:health` against `https://mcp.leadmagic.io/health`; redundant `mcp.json` inline checks removed (covered by validate).
9
+
5
10
## 0.1.3
6
11
7
12
-**MCP:** Hosted server at `https://mcp.leadmagic.io/mcp` — 10 tools, shared docs resource `leadmagic://docs`, prompts `account_research` and `contact_lookup`.
Copy file name to clipboardExpand all lines: README.md
+46-22Lines changed: 46 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,17 +31,31 @@ Use this plugin when you want Cursor to help with:
31
31
32
32
## Data and privacy
33
33
34
-
MCP tool calls send the parameters you or the agent provide (for example emails, names, company names or domains, profile URLs) to LeadMagic's hosted serviceusing your `LEADMAGIC_API_KEY`. See [Privacy](https://leadmagic.io/privacy) and [Terms](https://leadmagic.io/legal/terms). Support: [leadmagic.io/docs/support](https://leadmagic.io/docs/support).
34
+
MCP tool calls send the parameters you or the agent provide (for example emails, names, company names or domains, profile URLs) to LeadMagic's hosted service. By default Cursor authenticates with LeadMagic using **OAuth** (browser sign-in) tied to your account. If you use the optional API-key setup, requests include your key from`LEADMAGIC_API_KEY`. See [Privacy](https://leadmagic.io/privacy) and [Terms](https://leadmagic.io/legal/terms). Support: [leadmagic.io/docs/support](https://leadmagic.io/docs/support).
35
35
36
36
## Hosted MCP Configuration
37
37
38
38
The plugin points Cursor at LeadMagic's hosted MCP endpoint:
39
39
40
40
- MCP endpoint: `https://mcp.leadmagic.io/mcp`
41
41
- MCP transport: `http`
42
-
- Auth header: `x-leadmagic-key`
43
-
44
-
Users provide their API key through the `LEADMAGIC_API_KEY` environment variable. The plugin forwards that key to the hosted MCP server at runtime.
42
+
-**Default auth:** OAuth sign-in in Cursor when you enable or first use the LeadMagic MCP server (no API key in `mcp.json`)
43
+
44
+
**Optional API-key auth:** Advanced setups can add a static header so Cursor sends your key instead of OAuth. Merge or replace the server entry like this (environment variable must be visible to Cursor):
45
+
46
+
```json
47
+
{
48
+
"mcpServers": {
49
+
"leadmagic": {
50
+
"type": "http",
51
+
"url": "https://mcp.leadmagic.io/mcp",
52
+
"headers": {
53
+
"x-leadmagic-key": "${LEADMAGIC_API_KEY}"
54
+
}
55
+
}
56
+
}
57
+
}
58
+
```
45
59
46
60
## What The MCP Supports Today
47
61
@@ -76,13 +90,7 @@ For private team distribution in Cursor:
76
90
77
91
### Install locally for testing
78
92
79
-
#### 1. Set your API key
80
-
81
-
```bash
82
-
export LEADMAGIC_API_KEY="your_api_key_here"
83
-
```
84
-
85
-
#### 2. Link the repository into Cursor
93
+
#### 1. Link the repository into Cursor
86
94
87
95
If you are using this repository locally:
88
96
@@ -95,7 +103,15 @@ This creates a symlink at `~/.cursor/plugins/local/leadmagic` pointing to this r
95
103
96
104
Then reload Cursor with `Developer: Reload Window`.
97
105
98
-
#### 3. Verify the connection
106
+
#### 2. Sign in with LeadMagic (OAuth)
107
+
108
+
When Cursor connects to the LeadMagic MCP server, complete the browser OAuth flow if prompted. You do not need `LEADMAGIC_API_KEY` for the default configuration.
109
+
110
+
#### 3. Optional: use an API key instead of OAuth
111
+
112
+
If you cannot use OAuth, set `LEADMAGIC_API_KEY` in an environment Cursor inherits and add the `headers` block shown under [Hosted MCP Configuration](#hosted-mcp-configuration).
113
+
114
+
#### 4. Verify the connection
99
115
100
116
Ask Cursor one of these:
101
117
@@ -105,13 +121,15 @@ Ask Cursor one of these:
105
121
106
122
## Local Development
107
123
108
-
From the repository root, install dependencies and validate the package:
124
+
From the repository root, install dependencies and run the full check:
109
125
110
126
```bash
111
127
npm ci
112
-
npm run validate
128
+
npm run check
113
129
```
114
130
131
+
If you cannot reach the network, use `npm run validate` instead of `check`.
132
+
115
133
To link the plugin into Cursor locally:
116
134
117
135
```bash
@@ -126,21 +144,25 @@ npm run uninstall:local
126
144
127
145
## Troubleshooting
128
146
129
-
### Cursor cannot see `LEADMAGIC_API_KEY`
147
+
### OAuth or MCP sign-in fails
130
148
131
-
On macOS, if Cursor was launched from the dock or Finder, it may not inherit your shell environment. If `LEADMAGIC_API_KEY` is set in your terminal but LeadMagic still fails inside Cursor, launch Cursor from the same shell session or reload it after exporting the variable in an environment Cursor can see.
149
+
Retry the LeadMagic sign-in flow from Cursor's MCP settings. Confirm the server URL is `https://mcp.leadmagic.io/mcp` and that no stale custom `mcp.json` override is forcing invalid headers. If OAuth is blocked in your environment, switch to the API-key configuration in [Hosted MCP Configuration](#hosted-mcp-configuration).
132
150
133
-
### Authentication fails
151
+
### Cursor cannot see `LEADMAGIC_API_KEY` (API-key mode only)
152
+
153
+
On macOS, if Cursor was launched from the dock or Finder, it may not inherit your shell environment. If you use the API-key header and `LEADMAGIC_API_KEY` is set in your terminal but LeadMagic still fails inside Cursor, launch Cursor from the same shell session or reload it after exporting the variable in an environment Cursor can see.
154
+
155
+
### Authentication fails (API-key mode)
134
156
135
157
Confirm that:
136
158
137
159
-`LEADMAGIC_API_KEY` is set in the environment visible to Cursor
160
+
- your merged MCP config includes `x-leadmagic-key` with `${LEADMAGIC_API_KEY}`
138
161
- the plugin is using `https://mcp.leadmagic.io/mcp`
139
-
- the request header is `x-leadmagic-key`
140
162
141
163
### Hosted MCP reachability
142
164
143
-
`GET https://mcp.leadmagic.io/health` should return **200** when the service is up. Unauthenticated requests to `/mcp` may return **401** until a valid API key is sent—that is expected.
165
+
`GET https://mcp.leadmagic.io/health` should return **200** when the service is up. Unauthenticated requests to `/mcp` may return **401** until OAuth completes or a valid API key is sent—that is expected.
144
166
145
167
### You need exact tool details
146
168
@@ -173,6 +195,7 @@ rules/leadmagic-usage.mdc
173
195
skills/*/SKILL.md
174
196
scripts/install-local-plugin.mjs
175
197
scripts/validate-plugin.mjs
198
+
scripts/verify-mcp-health.mjs
176
199
README.md
177
200
SUBMISSION.md
178
201
CHANGELOG.md
@@ -181,13 +204,14 @@ CHANGELOG.md
181
204
## Validation
182
205
183
206
```bash
184
-
npm run validate
207
+
npm run check
185
208
```
186
209
210
+
That runs `npm run validate` plus `npm run verify:health` (hosted `/health` smoke check—same idea as CI). Use `npm run validate` alone when you are offline.
211
+
187
212
The validator checks this package against a vendored snapshot of Cursor's official `plugin.schema.json` and then applies LeadMagic-specific assertions for:
188
213
189
-
- the hosted MCP endpoint
190
-
-`LEADMAGIC_API_KEY` interpolation
214
+
- the hosted MCP endpoint and OAuth-default `mcp.json` (no auth headers)
191
215
- the canonical logo asset and submission logo URL
Official LeadMagic plugin for Cursor. Gives agents direct access to LeadMagic's hosted MCP surface for work email validation and discovery, mobile lookup, LinkedIn profile to work email, job-change detection, account research, competitor and technographics lists, people-by-role search, and credit balance—all using your API key with credit-aware usage.
23
+
Official LeadMagic plugin for Cursor. Gives agents direct access to LeadMagic's hosted MCP surface for work email validation and discovery, mobile lookup, LinkedIn profile to work email, job-change detection, account research, competitor and technographics lists, people-by-role search, and credit balance—authenticated by default with OAuth in Cursor, with an optional API-key path for advanced setups.
5. Run `npm run check` (or `npm run validate` if you are offline).
41
41
6. If you want to test the package in Cursor first, run `npm run install:local` and reload Cursor with `Developer: Reload Window`.
42
42
43
43
## Suggested reviewer note
44
44
45
-
LeadMagic is an API-first B2B enrichment platform for AI agents and GTM engineers. This plugin packages our hosted MCP integration (10 tools, `leadmagic://docs`, two prompts) into a Cursor-native repo with focused skills, safe default guidance, and `LEADMAGIC_API_KEY` for auth. Tool calls are processed per LeadMagic privacy and terms at leadmagic.io.
45
+
LeadMagic is an API-first B2B enrichment platform for AI agents and GTM engineers. This plugin packages our hosted MCP integration (10 tools, `leadmagic://docs`, two prompts) into a Cursor-native repo with focused skills, safe default guidance, and OAuth-first MCP auth (optional `LEADMAGIC_API_KEY`header for environments that need it). Tool calls are processed per LeadMagic privacy and terms at leadmagic.io.
46
46
47
47
## Short marketplace blurb alternatives
48
48
@@ -53,4 +53,4 @@ Official LeadMagic plugin for Cursor. Validate and find work emails, look up mob
53
53
B2B enrichment for Cursor agents via LeadMagic's hosted MCP: emails, mobile, profiles, job changes, account intel, competitors, technographics, role search, and credit-aware usage.
54
54
55
55
### Option C
56
-
Connect Cursor to LeadMagic for agent-native contact and account workflows backed by LeadMagic's hosted MCP and your own API key.
56
+
Connect Cursor to LeadMagic for agent-native contact and account workflows backed by LeadMagic's hosted MCP and OAuth sign-in (API key optional).
Copy file name to clipboardExpand all lines: rules/leadmagic-usage.mdc
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -24,4 +24,4 @@ When this plugin is available:
24
24
- and any obvious next best step.
25
25
6. For email validation, summarize only what appears in the tool output (including the stated result line). Do not speculate about “missing” deliverability details, catch-all behavior, or fields the response does not include.
26
26
7. If parameter requirements, supported inputs, or pricing are unclear, consult the shared MCP docs resource `leadmagic://docs` before guessing.
27
-
8. If the API key is missing or authentication fails, tell the user they need to set `LEADMAGIC_API_KEY`.
27
+
8. If authentication fails, tell the user to finish LeadMagic sign-in for MCP in Cursor (OAuth), or use the API-key fallback in the plugin README (`LEADMAGIC_API_KEY` + `x-leadmagic-key` header) if OAuth is not available.
0 commit comments