rankcontrol 0.7.0 → 0.8.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.
package/README.md CHANGED
@@ -29,7 +29,7 @@ The env var wins over the stored config when both exist. Scopes are set per key;
29
29
 
30
30
  ```bash
31
31
  # Visibility and citations
32
- npx rankcontrol funnel # AI crawls / AI visits / AI leads (30d)
32
+ npx rankcontrol funnel # AI crawls / AI visits (30d)
33
33
  npx rankcontrol score # composite visibility score + subscores (AI/Google/Bing)
34
34
  npx rankcontrol visibility --days 60 # daily AI visibility score trend
35
35
  npx rankcontrol sov --days 30 # share of voice vs competitors
@@ -68,7 +68,6 @@ npx rankcontrol detect-links https://example.com/sitemap.xml
68
68
  npx rankcontrol add-pages https://example.com/pricing
69
69
 
70
70
  # Leads and analytics
71
- npx rankcontrol leads --limit 100 # captured leads with AI source attribution
72
71
  npx rankcontrol traffic --days 30 # page views, visitors, bounce rate, time on page
73
72
  npx rankcontrol engagement # per-page views, citations, sparkline
74
73
  npx rankcontrol analytics-sources # which source writes traffic/crawler data
@@ -154,8 +153,8 @@ Or in `.mcp.json` / Cursor `mcp.json`:
154
153
 
155
154
  | Tool | What it does |
156
155
  |---|---|
157
- | `get_overview_funnel` | AI crawls / AI visits / AI leads, last 30 days |
158
- | `get_visibility_score` | Composite score (50% AI + 30% Google + 20% Bing) with subscores |
156
+ | `get_overview_funnel` | AI crawls / AI visits, last 30 days |
157
+ | `get_visibility_score` | Composite score blending AI citations with Google and Bing rank share, with subscores |
159
158
  | `get_visibility_trend` | Daily visibility score from stored weekly citation checks |
160
159
  | `get_share_of_voice` | Your citation rate vs competitor mention rates + your share |
161
160
  | `get_citation_sources` | Cited domains typed brand / competitive / UGC / editorial |
@@ -190,7 +189,6 @@ Or in `.mcp.json` / Cursor `mcp.json`:
190
189
 
191
190
  | Tool | What it does |
192
191
  |---|---|
193
- | `list_leads` | Captured leads with AI model / query / page attribution |
194
192
  | `get_traffic_overview` | Page views, visitors, sessions, bounce rate, time on page |
195
193
  | `get_page_engagement` | Per-page views, citations, and a view sparkline |
196
194
  | `get_analytics_sources` / `set_analytics_source` | Which source writes traffic and crawler data |
@@ -200,7 +198,7 @@ Or in `.mcp.json` / Cursor `mcp.json`:
200
198
 
201
199
  | Tool | What it does |
202
200
  |---|---|
203
- | `get_exec_summary` | Last 30 days vs the 30 before: cite rate, views, crawls, leads |
201
+ | `get_exec_summary` | Last 30 days vs the 30 before: cite rate, views, crawls |
204
202
  | `get_top_wins` | Most-cited page, best cite-rate jump, biggest ranking climb |
205
203
  | `get_agent_activity` | Recent pipeline runs per agent lane |
206
204
  | `list_jobs` | Async job status (agent runs) |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rankcontrol",
3
- "version": "0.7.0",
3
+ "version": "0.8.1",
4
4
  "description": "RankControl CLI + MCP server: drive your SEO/AI-visibility workspace from the terminal or any AI agent",
5
5
  "license": "MIT",
6
6
  "homepage": "https://rctrl.com",
package/src/cli.mjs CHANGED
@@ -49,15 +49,9 @@ export function runCli(argv) {
49
49
 
50
50
  program
51
51
  .command("funnel")
52
- .description("AI pipeline last 30 days: crawls, AI visits, AI leads")
52
+ .description("AI pipeline last 30 days: crawls, AI visits")
53
53
  .action(() => api.overviewFunnel().then(out).catch(fail));
54
54
 
55
- program
56
- .command("leads")
57
- .description("Captured leads with source attribution (AI model, query, page)")
58
- .option("--limit <n>", "Max rows, up to 500", "100")
59
- .action((opts) => api.leads(Number(opts.limit)).then(out).catch(fail));
60
-
61
55
  program
62
56
  .command("traffic")
63
57
  .description("Traffic overview: page views, visitors, sessions, bounce rate, time on page")
@@ -66,7 +60,7 @@ export function runCli(argv) {
66
60
 
67
61
  program
68
62
  .command("score")
69
- .description("Composite visibility score: 50% AI citation rate + 30% Google + 20% Bing rank share, with subscores")
63
+ .description("Composite visibility score blending AI citation rate with Google and Bing rank share, with subscores")
70
64
  .action(() => api.visibilityScore().then(out).catch(fail));
71
65
 
72
66
  program
package/src/client.mjs CHANGED
@@ -129,7 +129,6 @@ export const api = {
129
129
  detectSiteLinks: (source, url) =>
130
130
  request("POST", "/api/v1/links/detect", { source, url }),
131
131
  addSitePages: (urls) => request("POST", "/api/v1/links/pages", { urls }),
132
- leads: (limit = 100) => request("GET", `/api/v1/leads?limit=${limit}`),
133
132
  repurposeQueue: () => request("GET", "/api/v1/repurpose"),
134
133
  repurposeDrafts: (contentId) =>
135
134
  request(
package/src/login.mjs CHANGED
@@ -11,11 +11,9 @@ import {
11
11
  const DEFAULT_SCOPES = [
12
12
  "read:citations",
13
13
  "read:content",
14
- "read:leads",
15
14
  "read:analytics",
16
15
  "write:content",
17
16
  "write:queries",
18
- "write:leads",
19
17
  "write:backlinks",
20
18
  "write:social",
21
19
  "write:publish",
package/src/mcp.mjs CHANGED
@@ -29,11 +29,11 @@ const plannedTitle = z.object({
29
29
  });
30
30
 
31
31
  export async function startMcpServer() {
32
- const server = new McpServer({ name: "rankcontrol", version: "0.6.0" });
32
+ const server = new McpServer({ name: "rankcontrol", version: "0.8.1" });
33
33
 
34
34
  server.tool(
35
35
  "get_overview_funnel",
36
- "AI pipeline overview for the last 30 days: AI crawler hits, visits referred by AI engines, and leads that came from AI search.",
36
+ "AI pipeline overview for the last 30 days: AI crawler hits and visits referred by AI engines.",
37
37
  {},
38
38
  run(() => api.overviewFunnel())
39
39
  );
@@ -57,7 +57,7 @@ export async function startMcpServer() {
57
57
 
58
58
  server.tool(
59
59
  "get_visibility_score",
60
- "Composite visibility score for the workspace: 50% AI citation rate + 30% Google + 20% Bing position-weighted top-10 rank share (top 3 = full credit, 4-10 = half). Returns the composite, weights, and per-pillar subscores (the AI pillar includes a per-model breakdown).",
60
+ "Composite AI visibility score for the workspace, blending AI citation rate across the tracked models with Google and Bing rank share. Returns the composite and per-pillar subscores (the AI pillar includes a per-model breakdown).",
61
61
  {},
62
62
  run(() => api.visibilityScore())
63
63
  );
@@ -90,13 +90,6 @@ export async function startMcpServer() {
90
90
  run(({ days }) => api.shareOfVoice(days ?? 30))
91
91
  );
92
92
 
93
- server.tool(
94
- "list_leads",
95
- "Captured leads with source attribution: email, name, company, status, lead score, and the AI model / query / page that produced each lead.",
96
- { limit: z.number().max(500).optional().describe("Max rows, default 100") },
97
- run(({ limit }) => api.leads(limit ?? 100))
98
- );
99
-
100
93
  server.tool(
101
94
  "list_tracked_queries",
102
95
  "The workspace's tracked queries — the questions RankControl checks weekly across the 6 AI engines for brand citations — with their status and metadata.",