@vantageconnections/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 +88 -0
- package/dist/credentials.d.ts +11 -0
- package/dist/credentials.js +20 -0
- package/dist/credentials.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +316 -0
- package/dist/index.js.map +1 -0
- package/package.json +26 -0
package/README.md
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# @vantageconnections/mcp
|
|
2
|
+
|
|
3
|
+
[Model Context Protocol](https://modelcontextprotocol.io) server for the
|
|
4
|
+
[VantageConnections](https://vantageconnections.dev) platform. Wire it into
|
|
5
|
+
Claude Code, Cursor, Claude Desktop, or any MCP-aware client, and Claude can
|
|
6
|
+
provision websites, change SEO tiers, edit content, run scans, and more —
|
|
7
|
+
without leaving the conversation.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
The server runs on demand via `npx`; no install needed.
|
|
12
|
+
|
|
13
|
+
Wire it up in your MCP client's config:
|
|
14
|
+
|
|
15
|
+
### Claude Code (`.claude/settings.json` in any project, or `~/.claude/settings.json` globally)
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"mcpServers": {
|
|
20
|
+
"vantage": {
|
|
21
|
+
"command": "npx",
|
|
22
|
+
"args": ["-y", "@vantageconnections/mcp"]
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Claude Desktop (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS)
|
|
29
|
+
|
|
30
|
+
Same shape — paste the snippet above under `mcpServers`.
|
|
31
|
+
|
|
32
|
+
### Cursor (Settings → MCP)
|
|
33
|
+
|
|
34
|
+
Add a new server with command `npx` and args `["-y", "@vantageconnections/mcp"]`.
|
|
35
|
+
|
|
36
|
+
## Auth
|
|
37
|
+
|
|
38
|
+
The MCP server reads the same credentials file the
|
|
39
|
+
[`@vantageconnections/cli`](https://www.npmjs.com/package/@vantageconnections/cli) writes. Log in
|
|
40
|
+
once:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install -g @vantageconnections/cli
|
|
44
|
+
vantage login # paste a vc_pat_* token from the portal
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
…or set the `VANTAGE_TOKEN` environment variable in your MCP client's
|
|
48
|
+
environment. The MCP server picks it up automatically.
|
|
49
|
+
|
|
50
|
+
Get a token at **portal → Settings → API keys**.
|
|
51
|
+
|
|
52
|
+
## Tools exposed
|
|
53
|
+
|
|
54
|
+
Each tool's description is written for an LLM to choose between; the AI can
|
|
55
|
+
call them autonomously. Highlights:
|
|
56
|
+
|
|
57
|
+
- `vantage_whoami` — confirm the connection is alive
|
|
58
|
+
- `vantage_websites_list` / `_get` / `_create` / `_delete`
|
|
59
|
+
- `vantage_content_get` / `_save`
|
|
60
|
+
- `vantage_blueprint_get`
|
|
61
|
+
- `vantage_bookings_enable` / `_disable`
|
|
62
|
+
- `vantage_seo_set_tier` / `_disable` / `_scan` / `_geo_probe` / `_get`
|
|
63
|
+
- `vantage_domains_list` / `_add`
|
|
64
|
+
|
|
65
|
+
Once configured, ask Claude things like:
|
|
66
|
+
|
|
67
|
+
> *"Provision a new site for my plumbing client in Irvine, slug
|
|
68
|
+
> `joes-plumbing-irvine`, then set SEO to Growth."*
|
|
69
|
+
|
|
70
|
+
> *"For website wb_abc, what are the top search queries this week?"*
|
|
71
|
+
|
|
72
|
+
> *"Add the FAQ section to wb_abc with 5 questions a local barber's
|
|
73
|
+
> customers would ask."*
|
|
74
|
+
|
|
75
|
+
## Verify the integration
|
|
76
|
+
|
|
77
|
+
After wiring up the MCP server, ask Claude:
|
|
78
|
+
|
|
79
|
+
> *"Run `vantage_whoami`."*
|
|
80
|
+
|
|
81
|
+
If that returns your role + email, the integration is live. If it fails,
|
|
82
|
+
run `vantage selftest` from the terminal to see exactly which step is
|
|
83
|
+
broken (missing token, wrong API host, etc.).
|
|
84
|
+
|
|
85
|
+
## See also
|
|
86
|
+
|
|
87
|
+
- [`@vantageconnections/cli`](https://www.npmjs.com/package/@vantageconnections/cli) — terminal interface to the same platform
|
|
88
|
+
- [`@vantageconnections/sdk`](https://www.npmjs.com/package/@vantageconnections/sdk) — direct TypeScript client
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared credentials loader. Reads `~/.vantage/credentials.json` —
|
|
3
|
+
* the same file the CLI writes via `vantage login`. Duplicated here
|
|
4
|
+
* (not imported from @vantageconnections/cli) so the MCP server doesn't reach
|
|
5
|
+
* into the CLI package's private internals.
|
|
6
|
+
*/
|
|
7
|
+
export interface StoredCredentials {
|
|
8
|
+
token: string;
|
|
9
|
+
baseUrl?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function loadCredentials(): Promise<StoredCredentials | null>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { promises as fs } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
export async function loadCredentials() {
|
|
5
|
+
if (process.env.VANTAGE_TOKEN) {
|
|
6
|
+
return {
|
|
7
|
+
token: process.env.VANTAGE_TOKEN,
|
|
8
|
+
baseUrl: process.env.VANTAGE_API_URL,
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
try {
|
|
12
|
+
const filePath = path.join(homedir(), ".vantage", "credentials.json");
|
|
13
|
+
const raw = await fs.readFile(filePath, "utf8");
|
|
14
|
+
return JSON.parse(raw);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAc7B,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC9B,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;YAChC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;SACrC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* VantageConnections MCP server.
|
|
4
|
+
*
|
|
5
|
+
* Exposes the platform's high-leverage actions (provision websites,
|
|
6
|
+
* change SEO tier, edit content, run scans, etc.) as MCP tools that
|
|
7
|
+
* Claude Code, Cursor, Claude Desktop, and other MCP clients can
|
|
8
|
+
* call autonomously.
|
|
9
|
+
*
|
|
10
|
+
* Auth: reuses the same `~/.vantage/credentials.json` file the CLI
|
|
11
|
+
* writes. Log in once with `vantage login`, both work.
|
|
12
|
+
*
|
|
13
|
+
* Wire-up in Claude Code (`.claude/settings.json`):
|
|
14
|
+
*
|
|
15
|
+
* {
|
|
16
|
+
* "mcpServers": {
|
|
17
|
+
* "vantage": { "command": "npx", "args": ["-y", "@vantageconnections/mcp"] }
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* The server speaks MCP over stdio — no port, no daemon, no setup.
|
|
22
|
+
* The MCP client manages its lifetime.
|
|
23
|
+
*/
|
|
24
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
25
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
26
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
27
|
+
import { loadCredentials } from "./credentials.js";
|
|
28
|
+
import { VantageClient, VantageApiError } from "@vantageconnections/sdk";
|
|
29
|
+
const server = new Server({ name: "vantage", version: "0.1.0" }, { capabilities: { tools: {} } });
|
|
30
|
+
/* ─── Tool catalog ─────────────────────────────────────────────── */
|
|
31
|
+
/**
|
|
32
|
+
* Each tool description is written so an LLM can pick the right one
|
|
33
|
+
* from the name + description alone. Schemas are deliberately strict
|
|
34
|
+
* — the AI will hand us bad inputs occasionally, and a schema
|
|
35
|
+
* rejection is friendlier than a 400 from the API.
|
|
36
|
+
*/
|
|
37
|
+
const tools = [
|
|
38
|
+
{
|
|
39
|
+
name: "vantage_whoami",
|
|
40
|
+
description: "Confirm authentication. Returns the email + role + websiteId scope of the currently active API key. Use this first if there's any doubt about credentials.",
|
|
41
|
+
inputSchema: { type: "object", properties: {} },
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: "vantage_websites_list",
|
|
45
|
+
description: "List every website on the platform you have access to. Returns id, name, slug, status, owner, and creation date for each.",
|
|
46
|
+
inputSchema: { type: "object", properties: {} },
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "vantage_websites_get",
|
|
50
|
+
description: "Get a single website by id with full record.",
|
|
51
|
+
inputSchema: {
|
|
52
|
+
type: "object",
|
|
53
|
+
properties: { websiteId: { type: "string" } },
|
|
54
|
+
required: ["websiteId"],
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: "vantage_websites_create",
|
|
59
|
+
description: "Provision a new website. Synchronously creates the record and enqueues the GitHub repo + Vercel project + CMS provisioning. Returns the new website id; jobs run in the background. Optional clientId attaches it to a specific client at creation; omit to leave unassigned.",
|
|
60
|
+
inputSchema: {
|
|
61
|
+
type: "object",
|
|
62
|
+
properties: {
|
|
63
|
+
name: { type: "string", description: "Display name (e.g. 'Joe's Plumbing')." },
|
|
64
|
+
slug: {
|
|
65
|
+
type: "string",
|
|
66
|
+
description: "Lowercase URL-safe slug (e.g. 'joes-plumbing'). Becomes the GitHub repo + Vercel project name.",
|
|
67
|
+
},
|
|
68
|
+
clientId: { type: "string" },
|
|
69
|
+
},
|
|
70
|
+
required: ["name", "slug"],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: "vantage_websites_delete",
|
|
75
|
+
description: "Tear down a website: cancel Stripe subscription, delete the GitHub repo + Vercel project, revoke per-site OpenRouter keys, drop all platform rows. Destructive and irreversible — only call after explicit confirmation.",
|
|
76
|
+
inputSchema: {
|
|
77
|
+
type: "object",
|
|
78
|
+
properties: { websiteId: { type: "string" } },
|
|
79
|
+
required: ["websiteId"],
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: "vantage_content_get",
|
|
84
|
+
description: "Read the website's CMS content document (the JSON that drives the live site's hero, services, FAQ, etc.).",
|
|
85
|
+
inputSchema: {
|
|
86
|
+
type: "object",
|
|
87
|
+
properties: { websiteId: { type: "string" } },
|
|
88
|
+
required: ["websiteId"],
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: "vantage_content_save",
|
|
93
|
+
description: "Replace the website's CMS content document. Pass the new content object as `content`; optional `sha` enables optimistic-concurrency (pass the sha from the most recent get).",
|
|
94
|
+
inputSchema: {
|
|
95
|
+
type: "object",
|
|
96
|
+
properties: {
|
|
97
|
+
websiteId: { type: "string" },
|
|
98
|
+
content: { type: "object" },
|
|
99
|
+
sha: { type: "string" },
|
|
100
|
+
},
|
|
101
|
+
required: ["websiteId", "content"],
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: "vantage_blueprint_get",
|
|
106
|
+
description: "Return the website's blueprint graph — the nodes (github/vercel/openrouter/etc.) + edges between them + their canvas positions.",
|
|
107
|
+
inputSchema: {
|
|
108
|
+
type: "object",
|
|
109
|
+
properties: { websiteId: { type: "string" } },
|
|
110
|
+
required: ["websiteId"],
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
name: "vantage_bookings_enable",
|
|
115
|
+
description: "Turn on Cal.com appointment bookings for a website. Pushes NEXT_PUBLIC_CAL_USERNAME to Vercel and redeploys.",
|
|
116
|
+
inputSchema: {
|
|
117
|
+
type: "object",
|
|
118
|
+
properties: {
|
|
119
|
+
websiteId: { type: "string" },
|
|
120
|
+
calUsername: { type: "string" },
|
|
121
|
+
brandColor: { type: "string", description: "Optional #RRGGBB." },
|
|
122
|
+
},
|
|
123
|
+
required: ["websiteId", "calUsername"],
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: "vantage_bookings_disable",
|
|
128
|
+
description: "Turn off Cal.com bookings. Removes env vars, deletes the service row, redeploys.",
|
|
129
|
+
inputSchema: {
|
|
130
|
+
type: "object",
|
|
131
|
+
properties: { websiteId: { type: "string" } },
|
|
132
|
+
required: ["websiteId"],
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
name: "vantage_seo_set_tier",
|
|
137
|
+
description: "Set or change the SEO/GEO automation tier. Pushes NEXT_PUBLIC_SEO_TIER to Vercel and redeploys.",
|
|
138
|
+
inputSchema: {
|
|
139
|
+
type: "object",
|
|
140
|
+
properties: {
|
|
141
|
+
websiteId: { type: "string" },
|
|
142
|
+
tier: {
|
|
143
|
+
type: "string",
|
|
144
|
+
enum: ["essentials", "growth", "premium", "premium_plus"],
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
required: ["websiteId", "tier"],
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: "vantage_seo_disable",
|
|
152
|
+
description: "Turn off SEO automation for a website.",
|
|
153
|
+
inputSchema: {
|
|
154
|
+
type: "object",
|
|
155
|
+
properties: { websiteId: { type: "string" } },
|
|
156
|
+
required: ["websiteId"],
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
name: "vantage_seo_scan",
|
|
161
|
+
description: "Run an immediate SEO health scan against the live site. Returns score 0-100 + the issue list (missing title, no JSON-LD, etc.).",
|
|
162
|
+
inputSchema: {
|
|
163
|
+
type: "object",
|
|
164
|
+
properties: { websiteId: { type: "string" } },
|
|
165
|
+
required: ["websiteId"],
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
name: "vantage_seo_geo_probe",
|
|
170
|
+
description: "Send a prompt to an AI search engine (Perplexity Sonar by default) and report whether the website's primary domain shows up in the citations.",
|
|
171
|
+
inputSchema: {
|
|
172
|
+
type: "object",
|
|
173
|
+
properties: {
|
|
174
|
+
websiteId: { type: "string" },
|
|
175
|
+
prompt: { type: "string" },
|
|
176
|
+
model: { type: "string" },
|
|
177
|
+
},
|
|
178
|
+
required: ["websiteId", "prompt"],
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
name: "vantage_seo_get",
|
|
183
|
+
description: "Read everything we know about the website's SEO state — current tier, capabilities, last scan, GEO probes, citations checklist, competitor URLs, Search Console metrics.",
|
|
184
|
+
inputSchema: {
|
|
185
|
+
type: "object",
|
|
186
|
+
properties: { websiteId: { type: "string" } },
|
|
187
|
+
required: ["websiteId"],
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
name: "vantage_domains_list",
|
|
192
|
+
description: "List domains attached to a website (site + email).",
|
|
193
|
+
inputSchema: {
|
|
194
|
+
type: "object",
|
|
195
|
+
properties: { websiteId: { type: "string" } },
|
|
196
|
+
required: ["websiteId"],
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
name: "vantage_domains_add",
|
|
201
|
+
description: "Attach a new domain to a website. Returns the DNS records the client needs to set at their registrar.",
|
|
202
|
+
inputSchema: {
|
|
203
|
+
type: "object",
|
|
204
|
+
properties: {
|
|
205
|
+
websiteId: { type: "string" },
|
|
206
|
+
domain: { type: "string" },
|
|
207
|
+
kind: { type: "string", enum: ["site", "email"] },
|
|
208
|
+
},
|
|
209
|
+
required: ["websiteId", "domain", "kind"],
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
];
|
|
213
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools }));
|
|
214
|
+
/* ─── Tool dispatch ────────────────────────────────────────────── */
|
|
215
|
+
async function buildClient() {
|
|
216
|
+
const creds = await loadCredentials();
|
|
217
|
+
if (!creds) {
|
|
218
|
+
throw new Error("Not logged in. Run `vantage login` in your terminal, or set the VANTAGE_TOKEN env var, then restart your MCP client.");
|
|
219
|
+
}
|
|
220
|
+
return new VantageClient({ token: creds.token, baseUrl: creds.baseUrl });
|
|
221
|
+
}
|
|
222
|
+
function asText(value) {
|
|
223
|
+
return typeof value === "string"
|
|
224
|
+
? value
|
|
225
|
+
: JSON.stringify(value, null, 2);
|
|
226
|
+
}
|
|
227
|
+
server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
228
|
+
const name = req.params.name;
|
|
229
|
+
const args = (req.params.arguments ?? {});
|
|
230
|
+
try {
|
|
231
|
+
const vc = await buildClient();
|
|
232
|
+
const result = await dispatch(vc, name, args);
|
|
233
|
+
return {
|
|
234
|
+
content: [{ type: "text", text: asText(result) }],
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
catch (err) {
|
|
238
|
+
const message = err instanceof VantageApiError
|
|
239
|
+
? `HTTP ${err.status}: ${err.message}`
|
|
240
|
+
: err instanceof Error
|
|
241
|
+
? err.message
|
|
242
|
+
: String(err);
|
|
243
|
+
return {
|
|
244
|
+
isError: true,
|
|
245
|
+
content: [{ type: "text", text: message }],
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
async function dispatch(vc, name, args) {
|
|
250
|
+
function str(key) {
|
|
251
|
+
const v = args[key];
|
|
252
|
+
if (typeof v !== "string" || !v) {
|
|
253
|
+
throw new Error(`Missing required arg: ${key}`);
|
|
254
|
+
}
|
|
255
|
+
return v;
|
|
256
|
+
}
|
|
257
|
+
function strOpt(key) {
|
|
258
|
+
const v = args[key];
|
|
259
|
+
return typeof v === "string" ? v : undefined;
|
|
260
|
+
}
|
|
261
|
+
switch (name) {
|
|
262
|
+
case "vantage_whoami":
|
|
263
|
+
return vc.whoami();
|
|
264
|
+
case "vantage_websites_list":
|
|
265
|
+
return vc.websites.list();
|
|
266
|
+
case "vantage_websites_get":
|
|
267
|
+
return vc.websites.get(str("websiteId"));
|
|
268
|
+
case "vantage_websites_create":
|
|
269
|
+
return vc.websites.create({
|
|
270
|
+
name: str("name"),
|
|
271
|
+
slug: str("slug"),
|
|
272
|
+
clientId: strOpt("clientId"),
|
|
273
|
+
features: { openrouter: false, resend: false, bookings: false, seo: false },
|
|
274
|
+
});
|
|
275
|
+
case "vantage_websites_delete":
|
|
276
|
+
return vc.websites.delete(str("websiteId"));
|
|
277
|
+
case "vantage_content_get":
|
|
278
|
+
return vc.content.get(str("websiteId"));
|
|
279
|
+
case "vantage_content_save":
|
|
280
|
+
return vc.content.save(str("websiteId"), args.content, strOpt("sha") ?? null);
|
|
281
|
+
case "vantage_blueprint_get":
|
|
282
|
+
return vc.blueprint.get(str("websiteId"));
|
|
283
|
+
case "vantage_bookings_enable":
|
|
284
|
+
return vc.bookings.enable(str("websiteId"), {
|
|
285
|
+
calUsername: str("calUsername"),
|
|
286
|
+
brandColor: strOpt("brandColor"),
|
|
287
|
+
});
|
|
288
|
+
case "vantage_bookings_disable":
|
|
289
|
+
return vc.bookings.disable(str("websiteId"));
|
|
290
|
+
case "vantage_seo_set_tier":
|
|
291
|
+
return vc.seo.setTier(str("websiteId"), str("tier"));
|
|
292
|
+
case "vantage_seo_disable":
|
|
293
|
+
return vc.seo.disable(str("websiteId"));
|
|
294
|
+
case "vantage_seo_scan":
|
|
295
|
+
return vc.seo.scan(str("websiteId"));
|
|
296
|
+
case "vantage_seo_geo_probe":
|
|
297
|
+
return vc.seo.geoProbe(str("websiteId"), {
|
|
298
|
+
prompt: str("prompt"),
|
|
299
|
+
model: strOpt("model"),
|
|
300
|
+
});
|
|
301
|
+
case "vantage_seo_get":
|
|
302
|
+
return vc.seo.get(str("websiteId"));
|
|
303
|
+
case "vantage_domains_list":
|
|
304
|
+
return vc.domains.list(str("websiteId"));
|
|
305
|
+
case "vantage_domains_add":
|
|
306
|
+
return vc.domains.add(str("websiteId"), {
|
|
307
|
+
domain: str("domain"),
|
|
308
|
+
kind: str("kind"),
|
|
309
|
+
});
|
|
310
|
+
default:
|
|
311
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
const transport = new StdioServerTransport();
|
|
315
|
+
await server.connect(transport);
|
|
316
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vantageconnections/mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Model Context Protocol server for VantageConnections — exposes platform actions as tools for Claude Code, Cursor, and other AI coding assistants.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"bin": {
|
|
9
|
+
"vantage-mcp": "./dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc -p tsconfig.json",
|
|
13
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
14
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
18
|
+
"@vantageconnections/sdk": "0.1.0",
|
|
19
|
+
"@vantageconnections/shared": "0.1.0"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@types/node": "^20.14.0",
|
|
23
|
+
"typescript": "^5.5.0"
|
|
24
|
+
},
|
|
25
|
+
"files": ["dist", "README.md"]
|
|
26
|
+
}
|