@codespar/mcp-rd-station 0.2.0 → 0.2.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 +13 -3
- package/dist/index.js +2 -2
- package/package.json +2 -2
- package/server.json +2 -2
- package/src/index.ts +2 -2
package/README.md
CHANGED
|
@@ -49,18 +49,28 @@ Add to `.cursor/mcp.json` or `.vscode/mcp.json`:
|
|
|
49
49
|
}
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
## Tools
|
|
52
|
+
## Tools (18)
|
|
53
53
|
|
|
54
|
-
| Tool |
|
|
55
|
-
|
|
54
|
+
| Tool | Purpose |
|
|
55
|
+
|---|---|
|
|
56
56
|
| `create_contact` | Create a contact in RD Station CRM |
|
|
57
57
|
| `update_contact` | Update a contact by UUID |
|
|
58
|
+
| `upsert_contact` | Upsert (create or update) a contact identified by email (Marketing API) |
|
|
58
59
|
| `get_contact` | Get contact details by UUID or email |
|
|
59
60
|
| `list_contacts` | List contacts with pagination |
|
|
61
|
+
| `delete_contact` | Delete a contact by UUID |
|
|
60
62
|
| `create_event` | Create a conversion event for a contact |
|
|
61
63
|
| `list_funnels` | List all sales funnels |
|
|
62
64
|
| `get_funnel` | Get funnel details with stages |
|
|
65
|
+
| `list_deal_stages` | List deal stages of a pipeline (funnel) |
|
|
63
66
|
| `create_opportunity` | Create a sales opportunity in a funnel |
|
|
67
|
+
| `update_deal` | Update a deal/opportunity by ID |
|
|
68
|
+
| `get_deal` | Get a deal/opportunity by ID |
|
|
69
|
+
| `list_deals` | List deals with optional filters and pagination |
|
|
70
|
+
| `list_segmentations` | List contact segmentations |
|
|
71
|
+
| `get_segmentation_contacts` | List contacts inside a given segmentation |
|
|
72
|
+
| `update_lead_scoring` | Mark a contact as lead, qualified lead, or opportunity (lead scoring) |
|
|
73
|
+
| `create_webhook` | Subscribe a webhook to RD Station events (WEBHOOK.CONVERTED / WEBHOOK.MARKED_OPPORTUNITY) |
|
|
64
74
|
|
|
65
75
|
## Authentication
|
|
66
76
|
|
package/dist/index.js
CHANGED
|
@@ -58,7 +58,7 @@ async function rdStationRequest(method, path, body) {
|
|
|
58
58
|
return { raw: text };
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
const server = new Server({ name: "mcp-rd-station", version: "0.2.
|
|
61
|
+
const server = new Server({ name: "mcp-rd-station", version: "0.2.1" }, { capabilities: { tools: {} } });
|
|
62
62
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
63
63
|
tools: [
|
|
64
64
|
{
|
|
@@ -453,7 +453,7 @@ async function main() {
|
|
|
453
453
|
const t = new StreamableHTTPServerTransport({ sessionIdGenerator: () => randomUUID(), onsessioninitialized: (id) => { transports.set(id, t); } });
|
|
454
454
|
t.onclose = () => { if (t.sessionId)
|
|
455
455
|
transports.delete(t.sessionId); };
|
|
456
|
-
const s = new Server({ name: "mcp-rd-station", version: "0.2.
|
|
456
|
+
const s = new Server({ name: "mcp-rd-station", version: "0.2.1" }, { capabilities: { tools: {} } });
|
|
457
457
|
server._requestHandlers.forEach((v, k) => s._requestHandlers.set(k, v));
|
|
458
458
|
server._notificationHandlers?.forEach((v, k) => s._notificationHandlers.set(k, v));
|
|
459
459
|
await s.connect(t);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codespar/mcp-rd-station",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "MCP server for RD Station
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "MCP server for RD Station \u2014 contacts, events, funnels, deals, segmentations, lead scoring, webhooks",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"bin": {
|
package/server.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"source": "github",
|
|
8
8
|
"subfolder": "packages/communication/rd-station"
|
|
9
9
|
},
|
|
10
|
-
"version": "0.2.
|
|
10
|
+
"version": "0.2.1",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "@codespar/mcp-rd-station",
|
|
15
|
-
"version": "0.2.
|
|
15
|
+
"version": "0.2.1",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
18
18
|
},
|
package/src/index.ts
CHANGED
|
@@ -60,7 +60,7 @@ async function rdStationRequest(method: string, path: string, body?: unknown): P
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
const server = new Server(
|
|
63
|
-
{ name: "mcp-rd-station", version: "0.2.
|
|
63
|
+
{ name: "mcp-rd-station", version: "0.2.1" },
|
|
64
64
|
{ capabilities: { tools: {} } }
|
|
65
65
|
);
|
|
66
66
|
|
|
@@ -442,7 +442,7 @@ async function main() {
|
|
|
442
442
|
if (!sid && isInitializeRequest(req.body)) {
|
|
443
443
|
const t = new StreamableHTTPServerTransport({ sessionIdGenerator: () => randomUUID(), onsessioninitialized: (id) => { transports.set(id, t); } });
|
|
444
444
|
t.onclose = () => { if (t.sessionId) transports.delete(t.sessionId); };
|
|
445
|
-
const s = new Server({ name: "mcp-rd-station", version: "0.2.
|
|
445
|
+
const s = new Server({ name: "mcp-rd-station", version: "0.2.1" }, { capabilities: { tools: {} } }); (server as any)._requestHandlers.forEach((v: any, k: any) => (s as any)._requestHandlers.set(k, v)); (server as any)._notificationHandlers?.forEach((v: any, k: any) => (s as any)._notificationHandlers.set(k, v)); await s.connect(t);
|
|
446
446
|
await t.handleRequest(req, res, req.body); return;
|
|
447
447
|
}
|
|
448
448
|
res.status(400).json({ jsonrpc: "2.0", error: { code: -32000, message: "Bad Request" }, id: null });
|