social-mcp 1.7.1 → 1.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 +120 -1
- package/dist/index.js +57 -32
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +23 -0
- package/dist/lib/config.js +23 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/services/email-service.d.ts +26 -0
- package/dist/services/email-service.js +158 -0
- package/dist/services/email-service.js.map +1 -0
- package/dist/services/pinterest-service.d.ts +49 -0
- package/dist/services/pinterest-service.js +84 -0
- package/dist/services/pinterest-service.js.map +1 -0
- package/dist/tools/email-tools/send-bulk-email.d.ts +58 -0
- package/dist/tools/email-tools/send-bulk-email.js +94 -0
- package/dist/tools/email-tools/send-bulk-email.js.map +1 -0
- package/dist/tools/email-tools/send-email.d.ts +58 -0
- package/dist/tools/email-tools/send-email.js +91 -0
- package/dist/tools/email-tools/send-email.js.map +1 -0
- package/dist/tools/mastodon-tools/create-post.d.ts +2 -2
- package/dist/tools/mastodon-tools/reply-to-post.d.ts +2 -2
- package/dist/tools/pinterest-tools/create-board.d.ts +16 -0
- package/dist/tools/pinterest-tools/create-board.js +24 -0
- package/dist/tools/pinterest-tools/create-board.js.map +1 -0
- package/dist/tools/pinterest-tools/create-pin.d.ts +22 -0
- package/dist/tools/pinterest-tools/create-pin.js +31 -0
- package/dist/tools/pinterest-tools/create-pin.js.map +1 -0
- package/dist/tools/pinterest-tools/delete-pin.d.ts +14 -0
- package/dist/tools/pinterest-tools/delete-pin.js +23 -0
- package/dist/tools/pinterest-tools/delete-pin.js.map +1 -0
- package/dist/tools/pinterest-tools/get-board-pins.d.ts +16 -0
- package/dist/tools/pinterest-tools/get-board-pins.js +34 -0
- package/dist/tools/pinterest-tools/get-board-pins.js.map +1 -0
- package/dist/tools/pinterest-tools/get-boards.d.ts +14 -0
- package/dist/tools/pinterest-tools/get-boards.js +33 -0
- package/dist/tools/pinterest-tools/get-boards.js.map +1 -0
- package/dist/tools/pinterest-tools/get-pin.d.ts +14 -0
- package/dist/tools/pinterest-tools/get-pin.js +31 -0
- package/dist/tools/pinterest-tools/get-pin.js.map +1 -0
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -20,6 +20,8 @@ An MCP (Model Context Protocol) server that lets AI assistants post and interact
|
|
|
20
20
|
| Mastodon | Get profile, create post, reply, search posts, boost post, favourite post, delete post |
|
|
21
21
|
| TikTok | Query creator info, get user info, post video, photo post, get post status |
|
|
22
22
|
| YouTube | Get channel info, search videos, get video info, list channel videos, get comments, post comment, update video |
|
|
23
|
+
| Pinterest | Get boards, create board, create pin, get pin, get board pins, delete pin |
|
|
24
|
+
| Email | Send email, send bulk email (drivers: SMTP, SendGrid, Mailgun) |
|
|
23
25
|
|
|
24
26
|
## Quick Start
|
|
25
27
|
|
|
@@ -72,7 +74,16 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
|
|
|
72
74
|
"MASTODON_ACCESS_TOKEN": "your_token",
|
|
73
75
|
"MASTODON_INSTANCE_URL": "https://mastodon.social",
|
|
74
76
|
"TIKTOK_ACCESS_TOKEN": "your_token",
|
|
75
|
-
"YOUTUBE_ACCESS_TOKEN": "your_token"
|
|
77
|
+
"YOUTUBE_ACCESS_TOKEN": "your_token",
|
|
78
|
+
"PINTEREST_ACCESS_TOKEN": "your_token",
|
|
79
|
+
"MAIL_MAILER": "smtp",
|
|
80
|
+
"MAIL_FROM_ADDRESS": "you@example.com",
|
|
81
|
+
"MAIL_FROM_NAME": "Your Name",
|
|
82
|
+
"MAIL_HOST": "smtp.gmail.com",
|
|
83
|
+
"MAIL_PORT": "587",
|
|
84
|
+
"MAIL_USERNAME": "you@gmail.com",
|
|
85
|
+
"MAIL_PASSWORD": "your_password",
|
|
86
|
+
"MAIL_ENCRYPTION": "tls"
|
|
76
87
|
}
|
|
77
88
|
}
|
|
78
89
|
}
|
|
@@ -196,6 +207,49 @@ Copy `example.env` to `.env` and fill in the credentials for the platforms you w
|
|
|
196
207
|
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
197
208
|
| `YOUTUBE_ACCESS_TOKEN` | OAuth 2.0 access token from the [Google Cloud Console](https://console.cloud.google.com) — requires `https://www.googleapis.com/auth/youtube` scope |
|
|
198
209
|
|
|
210
|
+
### Pinterest
|
|
211
|
+
|
|
212
|
+
| Variable | Description |
|
|
213
|
+
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
214
|
+
| `PINTEREST_ACCESS_TOKEN` | OAuth 2.0 Bearer token from the [Pinterest Developer Portal](https://developers.pinterest.com) — requires `boards:read boards:write pins:read pins:write` scopes |
|
|
215
|
+
|
|
216
|
+
### Email
|
|
217
|
+
|
|
218
|
+
Email uses a Laravel-style driver system. **Env vars are optional** — credentials can also be passed inline per tool call (see [Per-org / Multi-account Usage](#per-org--multi-account-usage)).
|
|
219
|
+
|
|
220
|
+
Set `MAIL_MAILER` to select your provider and only configure the variables for the driver you choose.
|
|
221
|
+
|
|
222
|
+
| Variable | Description |
|
|
223
|
+
| -------------------- | ---------------------------------------------------------------------- |
|
|
224
|
+
| `MAIL_MAILER` | Mail driver: `smtp`, `sendgrid`, or `mailgun` (default: `smtp`) |
|
|
225
|
+
| `MAIL_FROM_ADDRESS` | Sender email address (required for all drivers) |
|
|
226
|
+
| `MAIL_FROM_NAME` | Sender display name (optional) |
|
|
227
|
+
|
|
228
|
+
**SMTP** (`MAIL_MAILER=smtp`)
|
|
229
|
+
|
|
230
|
+
| Variable | Description |
|
|
231
|
+
| ----------------- | -------------------------------------------------------------------------- |
|
|
232
|
+
| `MAIL_HOST` | SMTP server hostname (e.g. `smtp.gmail.com`, `smtp.mailgun.org`) |
|
|
233
|
+
| `MAIL_PORT` | SMTP port (default: `587`) |
|
|
234
|
+
| `MAIL_USERNAME` | SMTP authentication username |
|
|
235
|
+
| `MAIL_PASSWORD` | SMTP authentication password |
|
|
236
|
+
| `MAIL_ENCRYPTION` | Connection security: `tls` (default), `ssl`, or `none` |
|
|
237
|
+
|
|
238
|
+
> **SMTP verification:** On startup, social-mcp calls `transporter.verify()` against your SMTP server. A misconfigured host or wrong password shows `[!!]` in the startup log rather than failing silently on the first send.
|
|
239
|
+
|
|
240
|
+
**SendGrid** (`MAIL_MAILER=sendgrid`)
|
|
241
|
+
|
|
242
|
+
| Variable | Description |
|
|
243
|
+
| ------------------ | -------------------------------------------------------------------------------------- |
|
|
244
|
+
| `SENDGRID_API_KEY` | API key from the [SendGrid dashboard](https://app.sendgrid.com/settings/api_keys) |
|
|
245
|
+
|
|
246
|
+
**Mailgun** (`MAIL_MAILER=mailgun`)
|
|
247
|
+
|
|
248
|
+
| Variable | Description |
|
|
249
|
+
| ----------------- | -------------------------------------------------------------------------------------------- |
|
|
250
|
+
| `MAILGUN_API_KEY` | API key from [Mailgun account settings](https://app.mailgun.com/app/account/security/api_keys) |
|
|
251
|
+
| `MAILGUN_DOMAIN` | Your Mailgun sending domain (e.g. `mg.yourdomain.com`) |
|
|
252
|
+
|
|
199
253
|
## Available Tools
|
|
200
254
|
|
|
201
255
|
### Telegram
|
|
@@ -317,6 +371,71 @@ Copy `example.env` to `.env` and fill in the credentials for the platforms you w
|
|
|
317
371
|
|
|
318
372
|
> **Note:** YouTube requires an OAuth 2.0 access token with the `https://www.googleapis.com/auth/youtube` scope. Enable the **YouTube Data API v3** in your [Google Cloud Console](https://console.cloud.google.com) project. Video uploads are not supported via this API — use the YouTube Studio or resumable upload flow directly.
|
|
319
373
|
|
|
374
|
+
### Pinterest
|
|
375
|
+
|
|
376
|
+
- **PINTEREST_GET_BOARDS** — List all boards on your Pinterest account (`pageSize`)
|
|
377
|
+
- **PINTEREST_CREATE_BOARD** — Create a new board (`name`, `description`)
|
|
378
|
+
- **PINTEREST_CREATE_PIN** — Create a pin on a board (`boardId`, `title`, `description`, `imageUrl`, `link`)
|
|
379
|
+
- **PINTEREST_GET_PIN** — Get details of a specific pin (`pinId`)
|
|
380
|
+
- **PINTEREST_GET_BOARD_PINS** — List all pins on a board (`boardId`, `pageSize`)
|
|
381
|
+
- **PINTEREST_DELETE_PIN** — Delete a pin by ID (`pinId`)
|
|
382
|
+
|
|
383
|
+
### Email
|
|
384
|
+
|
|
385
|
+
- **EMAIL_SEND** — Send an email to a single recipient (`to`, `subject`, `text`, `html`; plus optional inline credentials — see below)
|
|
386
|
+
- **EMAIL_SEND_BULK** — Send the same email to multiple recipients (`recipients`, `subject`, `text`, `html`; plus optional inline credentials)
|
|
387
|
+
|
|
388
|
+
> The active mail driver is selected by `MAIL_MAILER`. Switching providers requires only changing that one variable — no code changes needed. Credentials can also be passed inline per call for multi-account / per-org use cases.
|
|
389
|
+
|
|
390
|
+
## Per-org / Multi-account Usage
|
|
391
|
+
|
|
392
|
+
Both email tools accept **inline credentials** as optional parameters. When provided, they take full priority over env vars — a fresh, isolated `EmailService` is created for that call. This enables per-organization or per-user email accounts without any env var changes.
|
|
393
|
+
|
|
394
|
+
**Example — SMTP:**
|
|
395
|
+
```json
|
|
396
|
+
{
|
|
397
|
+
"mailer": "smtp",
|
|
398
|
+
"fromAddress": "team@acme.com",
|
|
399
|
+
"fromName": "Acme Corp",
|
|
400
|
+
"smtpHost": "smtp.gmail.com",
|
|
401
|
+
"smtpPort": 587,
|
|
402
|
+
"smtpUsername": "team@acme.com",
|
|
403
|
+
"smtpPassword": "app-password",
|
|
404
|
+
"smtpEncryption": "tls",
|
|
405
|
+
"to": "customer@example.com",
|
|
406
|
+
"subject": "Hello",
|
|
407
|
+
"text": "Hi there!"
|
|
408
|
+
}
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
**Example — SendGrid:**
|
|
412
|
+
```json
|
|
413
|
+
{
|
|
414
|
+
"mailer": "sendgrid",
|
|
415
|
+
"fromAddress": "team@acme.com",
|
|
416
|
+
"sendgridApiKey": "SG.xxxx",
|
|
417
|
+
"recipients": ["a@example.com", "b@example.com"],
|
|
418
|
+
"subject": "Newsletter",
|
|
419
|
+
"text": "Plain text body",
|
|
420
|
+
"html": "<p>HTML body</p>"
|
|
421
|
+
}
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
**Example — Mailgun:**
|
|
425
|
+
```json
|
|
426
|
+
{
|
|
427
|
+
"mailer": "mailgun",
|
|
428
|
+
"fromAddress": "team@acme.com",
|
|
429
|
+
"mailgunApiKey": "key-xxxx",
|
|
430
|
+
"mailgunDomain": "mg.acme.com",
|
|
431
|
+
"to": "customer@example.com",
|
|
432
|
+
"subject": "Hello",
|
|
433
|
+
"text": "Hi there!"
|
|
434
|
+
}
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
When `mailer` and `fromAddress` are omitted, the tool falls back to the env var configuration (`MAIL_MAILER`, `MAIL_FROM_ADDRESS`, etc.).
|
|
438
|
+
|
|
320
439
|
## Development
|
|
321
440
|
|
|
322
441
|
```bash
|
package/dist/index.js
CHANGED
|
@@ -2,10 +2,14 @@
|
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import { FastMCP } from "fastmcp";
|
|
4
4
|
import { CredentialsError } from "./lib/errors.js";
|
|
5
|
+
import { getBlueskyService } from "./services/bluesky-service.js";
|
|
5
6
|
import { getDiscordService } from "./services/discord-service.js";
|
|
7
|
+
import { getEmailService } from "./services/email-service.js";
|
|
6
8
|
import { getFacebookService } from "./services/facebook-service.js";
|
|
7
9
|
import { getInstagramService } from "./services/instagram-service.js";
|
|
8
10
|
import { getLinkedInService } from "./services/linkedin-service.js";
|
|
11
|
+
import { getMastodonService } from "./services/mastodon-service.js";
|
|
12
|
+
import { getPinterestService } from "./services/pinterest-service.js";
|
|
9
13
|
import { getRedditService } from "./services/reddit-service.js";
|
|
10
14
|
import { getSlackService } from "./services/slack-service.js";
|
|
11
15
|
import { getTelegramService } from "./services/telegram-service.js";
|
|
@@ -14,10 +18,16 @@ import { getTikTokService } from "./services/tiktok-service.js";
|
|
|
14
18
|
import { getTwitterService } from "./services/twitter-service.js";
|
|
15
19
|
import { getWhatsappService } from "./services/whatsapp-service.js";
|
|
16
20
|
import { getYouTubeService } from "./services/youtube-service.js";
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
21
|
+
import { createPostTool as blueskyCreatePostTool } from "./tools/bluesky-tools/create-post.js";
|
|
22
|
+
import { deletePostTool as blueskyDeletePostTool } from "./tools/bluesky-tools/delete-post.js";
|
|
23
|
+
import { getProfileTool as blueskyGetProfileTool } from "./tools/bluesky-tools/get-profile.js";
|
|
24
|
+
import { likePostTool as blueskyLikePostTool } from "./tools/bluesky-tools/like-post.js";
|
|
25
|
+
import { replyToPostTool as blueskyReplyToPostTool } from "./tools/bluesky-tools/reply-to-post.js";
|
|
26
|
+
import { searchPostsTool as blueskySearchPostsTool } from "./tools/bluesky-tools/search-posts.js";
|
|
19
27
|
import { getMessagesTool as discordGetMessagesTool } from "./tools/discord-tools/get-messages.js";
|
|
20
28
|
import { sendMessageTool as discordSendMessageTool } from "./tools/discord-tools/send-message.js";
|
|
29
|
+
import { sendBulkEmailTool } from "./tools/email-tools/send-bulk-email.js";
|
|
30
|
+
import { sendEmailTool } from "./tools/email-tools/send-email.js";
|
|
21
31
|
import { createPostTool as facebookCreatePostTool } from "./tools/facebook-tools/create-post.js";
|
|
22
32
|
import { getPostsTool as facebookGetPostsTool } from "./tools/facebook-tools/get-posts.js";
|
|
23
33
|
import { createPostTool as instagramCreatePostTool } from "./tools/instagram-tools/create-post.js";
|
|
@@ -29,9 +39,22 @@ import { getPostsTool as linkedInGetPostsTool } from "./tools/linkedin-tools/get
|
|
|
29
39
|
import { getProfileTool as linkedInGetProfileTool } from "./tools/linkedin-tools/get-profile.js";
|
|
30
40
|
import { likePostTool as linkedInLikePostTool } from "./tools/linkedin-tools/like-post.js";
|
|
31
41
|
import { searchPeopleTool as linkedInSearchPeopleTool } from "./tools/linkedin-tools/search-people.js";
|
|
42
|
+
import { boostPostTool as mastodonBoostPostTool } from "./tools/mastodon-tools/boost-post.js";
|
|
43
|
+
import { createPostTool as mastodonCreatePostTool } from "./tools/mastodon-tools/create-post.js";
|
|
44
|
+
import { deletePostTool as mastodonDeletePostTool } from "./tools/mastodon-tools/delete-post.js";
|
|
45
|
+
import { favouritePostTool as mastodonFavouritePostTool } from "./tools/mastodon-tools/favourite-post.js";
|
|
46
|
+
import { getProfileTool as mastodonGetProfileTool } from "./tools/mastodon-tools/get-profile.js";
|
|
47
|
+
import { replyToPostTool as mastodonReplyToPostTool } from "./tools/mastodon-tools/reply-to-post.js";
|
|
48
|
+
import { searchPostsTool as mastodonSearchPostsTool } from "./tools/mastodon-tools/search-posts.js";
|
|
49
|
+
import { createBoardTool as pinterestCreateBoardTool } from "./tools/pinterest-tools/create-board.js";
|
|
50
|
+
import { createPinTool as pinterestCreatePinTool } from "./tools/pinterest-tools/create-pin.js";
|
|
51
|
+
import { deletePinTool as pinterestDeletePinTool } from "./tools/pinterest-tools/delete-pin.js";
|
|
52
|
+
import { getBoardPinsTool as pinterestGetBoardPinsTool } from "./tools/pinterest-tools/get-board-pins.js";
|
|
53
|
+
import { getBoardsTool as pinterestGetBoardsTool } from "./tools/pinterest-tools/get-boards.js";
|
|
54
|
+
import { getPinTool as pinterestGetPinTool } from "./tools/pinterest-tools/get-pin.js";
|
|
32
55
|
import { commentTool as redditCommentTool } from "./tools/reddit-tools/comment.js";
|
|
33
|
-
import { getUserInfoTool as redditGetUserInfoTool } from "./tools/reddit-tools/get-user-info.js";
|
|
34
56
|
import { getPostsTool as redditGetPostsTool } from "./tools/reddit-tools/get-posts.js";
|
|
57
|
+
import { getUserInfoTool as redditGetUserInfoTool } from "./tools/reddit-tools/get-user-info.js";
|
|
35
58
|
import { searchTool as redditSearchTool } from "./tools/reddit-tools/search.js";
|
|
36
59
|
import { submitPostTool as redditSubmitPostTool } from "./tools/reddit-tools/submit-post.js";
|
|
37
60
|
import { voteTool as redditVoteTool } from "./tools/reddit-tools/vote.js";
|
|
@@ -69,24 +92,11 @@ import { listChannelVideosTool as youtubeListChannelVideosTool } from "./tools/y
|
|
|
69
92
|
import { postCommentTool as youtubePostCommentTool } from "./tools/youtube-tools/post-comment.js";
|
|
70
93
|
import { searchVideosTool as youtubeSearchVideosTool } from "./tools/youtube-tools/search-videos.js";
|
|
71
94
|
import { updateVideoTool as youtubeUpdateVideoTool } from "./tools/youtube-tools/update-video.js";
|
|
72
|
-
import { createPostTool as blueskyCreatePostTool } from "./tools/bluesky-tools/create-post.js";
|
|
73
|
-
import { deletePostTool as blueskyDeletePostTool } from "./tools/bluesky-tools/delete-post.js";
|
|
74
|
-
import { getProfileTool as blueskyGetProfileTool } from "./tools/bluesky-tools/get-profile.js";
|
|
75
|
-
import { likePostTool as blueskyLikePostTool } from "./tools/bluesky-tools/like-post.js";
|
|
76
|
-
import { replyToPostTool as blueskyReplyToPostTool } from "./tools/bluesky-tools/reply-to-post.js";
|
|
77
|
-
import { searchPostsTool as blueskySearchPostsTool } from "./tools/bluesky-tools/search-posts.js";
|
|
78
|
-
import { boostPostTool as mastodonBoostPostTool } from "./tools/mastodon-tools/boost-post.js";
|
|
79
|
-
import { createPostTool as mastodonCreatePostTool } from "./tools/mastodon-tools/create-post.js";
|
|
80
|
-
import { deletePostTool as mastodonDeletePostTool } from "./tools/mastodon-tools/delete-post.js";
|
|
81
|
-
import { favouritePostTool as mastodonFavouritePostTool } from "./tools/mastodon-tools/favourite-post.js";
|
|
82
|
-
import { getProfileTool as mastodonGetProfileTool } from "./tools/mastodon-tools/get-profile.js";
|
|
83
|
-
import { replyToPostTool as mastodonReplyToPostTool } from "./tools/mastodon-tools/reply-to-post.js";
|
|
84
|
-
import { searchPostsTool as mastodonSearchPostsTool } from "./tools/mastodon-tools/search-posts.js";
|
|
85
95
|
const require = createRequire(import.meta.url);
|
|
86
96
|
const { version } = require("../package.json");
|
|
87
|
-
function checkPlatform(name, init) {
|
|
97
|
+
async function checkPlatform(name, init) {
|
|
88
98
|
try {
|
|
89
|
-
init();
|
|
99
|
+
await init();
|
|
90
100
|
console.error(` [ok] ${name}`);
|
|
91
101
|
}
|
|
92
102
|
catch (err) {
|
|
@@ -100,20 +110,25 @@ function checkPlatform(name, init) {
|
|
|
100
110
|
}
|
|
101
111
|
async function main() {
|
|
102
112
|
console.error("Social MCP Server — platform availability:");
|
|
103
|
-
checkPlatform("Telegram", getTelegramService);
|
|
104
|
-
checkPlatform("Twitter/X", getTwitterService);
|
|
105
|
-
checkPlatform("Discord", getDiscordService);
|
|
106
|
-
checkPlatform("WhatsApp", getWhatsappService);
|
|
107
|
-
checkPlatform("Facebook", getFacebookService);
|
|
108
|
-
checkPlatform("Instagram", getInstagramService);
|
|
109
|
-
checkPlatform("Slack", getSlackService);
|
|
110
|
-
checkPlatform("LinkedIn", getLinkedInService);
|
|
111
|
-
checkPlatform("Reddit", getRedditService);
|
|
112
|
-
checkPlatform("Threads", getThreadsService);
|
|
113
|
-
checkPlatform("TikTok", getTikTokService);
|
|
114
|
-
checkPlatform("YouTube", getYouTubeService);
|
|
115
|
-
checkPlatform("Bluesky", getBlueskyService);
|
|
116
|
-
checkPlatform("Mastodon", getMastodonService);
|
|
113
|
+
await checkPlatform("Telegram", getTelegramService);
|
|
114
|
+
await checkPlatform("Twitter/X", getTwitterService);
|
|
115
|
+
await checkPlatform("Discord", getDiscordService);
|
|
116
|
+
await checkPlatform("WhatsApp", getWhatsappService);
|
|
117
|
+
await checkPlatform("Facebook", getFacebookService);
|
|
118
|
+
await checkPlatform("Instagram", getInstagramService);
|
|
119
|
+
await checkPlatform("Slack", getSlackService);
|
|
120
|
+
await checkPlatform("LinkedIn", getLinkedInService);
|
|
121
|
+
await checkPlatform("Reddit", getRedditService);
|
|
122
|
+
await checkPlatform("Threads", getThreadsService);
|
|
123
|
+
await checkPlatform("TikTok", getTikTokService);
|
|
124
|
+
await checkPlatform("YouTube", getYouTubeService);
|
|
125
|
+
await checkPlatform("Bluesky", getBlueskyService);
|
|
126
|
+
await checkPlatform("Mastodon", getMastodonService);
|
|
127
|
+
await checkPlatform("Pinterest", getPinterestService);
|
|
128
|
+
await checkPlatform("Email", async () => {
|
|
129
|
+
const service = getEmailService();
|
|
130
|
+
await service.verify();
|
|
131
|
+
});
|
|
117
132
|
console.error("");
|
|
118
133
|
const server = new FastMCP({ name: "Social MCP Server", version });
|
|
119
134
|
// Telegram
|
|
@@ -196,6 +211,16 @@ async function main() {
|
|
|
196
211
|
server.addTool(mastodonFavouritePostTool);
|
|
197
212
|
server.addTool(mastodonGetProfileTool);
|
|
198
213
|
server.addTool(mastodonSearchPostsTool);
|
|
214
|
+
// Pinterest
|
|
215
|
+
server.addTool(pinterestGetBoardsTool);
|
|
216
|
+
server.addTool(pinterestCreateBoardTool);
|
|
217
|
+
server.addTool(pinterestCreatePinTool);
|
|
218
|
+
server.addTool(pinterestGetPinTool);
|
|
219
|
+
server.addTool(pinterestGetBoardPinsTool);
|
|
220
|
+
server.addTool(pinterestDeletePinTool);
|
|
221
|
+
// Email
|
|
222
|
+
server.addTool(sendEmailTool);
|
|
223
|
+
server.addTool(sendBulkEmailTool);
|
|
199
224
|
try {
|
|
200
225
|
await server.start({ transportType: "stdio" });
|
|
201
226
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -51,4 +51,27 @@ export declare const config: {
|
|
|
51
51
|
instanceUrl: string;
|
|
52
52
|
accessToken: string;
|
|
53
53
|
};
|
|
54
|
+
pinterest: {
|
|
55
|
+
baseUrl: string;
|
|
56
|
+
accessToken: string;
|
|
57
|
+
};
|
|
58
|
+
email: {
|
|
59
|
+
mailer: string;
|
|
60
|
+
fromAddress: string;
|
|
61
|
+
fromName: string;
|
|
62
|
+
smtp: {
|
|
63
|
+
host: string;
|
|
64
|
+
port: number;
|
|
65
|
+
username: string;
|
|
66
|
+
password: string;
|
|
67
|
+
encryption: "tls" | "ssl" | "none";
|
|
68
|
+
};
|
|
69
|
+
sendgrid: {
|
|
70
|
+
apiKey: string;
|
|
71
|
+
};
|
|
72
|
+
mailgun: {
|
|
73
|
+
apiKey: string;
|
|
74
|
+
domain: string;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
54
77
|
};
|
package/dist/lib/config.js
CHANGED
|
@@ -52,5 +52,28 @@ export const config = {
|
|
|
52
52
|
instanceUrl: process.env.MASTODON_INSTANCE_URL || "https://mastodon.social",
|
|
53
53
|
accessToken: process.env.MASTODON_ACCESS_TOKEN || "",
|
|
54
54
|
},
|
|
55
|
+
pinterest: {
|
|
56
|
+
baseUrl: "https://api.pinterest.com/v5",
|
|
57
|
+
accessToken: process.env.PINTEREST_ACCESS_TOKEN || "",
|
|
58
|
+
},
|
|
59
|
+
email: {
|
|
60
|
+
mailer: process.env.MAIL_MAILER || "smtp",
|
|
61
|
+
fromAddress: process.env.MAIL_FROM_ADDRESS || "",
|
|
62
|
+
fromName: process.env.MAIL_FROM_NAME || "",
|
|
63
|
+
smtp: {
|
|
64
|
+
host: process.env.MAIL_HOST || "",
|
|
65
|
+
port: parseInt(process.env.MAIL_PORT || "587", 10),
|
|
66
|
+
username: process.env.MAIL_USERNAME || "",
|
|
67
|
+
password: process.env.MAIL_PASSWORD || "",
|
|
68
|
+
encryption: (process.env.MAIL_ENCRYPTION || "tls"),
|
|
69
|
+
},
|
|
70
|
+
sendgrid: {
|
|
71
|
+
apiKey: process.env.SENDGRID_API_KEY || "",
|
|
72
|
+
},
|
|
73
|
+
mailgun: {
|
|
74
|
+
apiKey: process.env.MAILGUN_API_KEY || "",
|
|
75
|
+
domain: process.env.MAILGUN_DOMAIN || "",
|
|
76
|
+
},
|
|
77
|
+
},
|
|
55
78
|
};
|
|
56
79
|
//# sourceMappingURL=config.js.map
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACxC,MAAM,SAAS,GAAG,8BAA8B,gBAAgB,EAAE,CAAC;AAEnE,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,OAAO,EAAE;QACR,OAAO,EAAE,6BAA6B;QACtC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;KAC7C;IACD,QAAQ,EAAE;QACT,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;QACpD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE;KACzD;IACD,QAAQ,EAAE;QACT,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;KACpD;IACD,SAAS,EAAE;QACV,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE;KACrD;IACD,QAAQ,EAAE;QACT,OAAO,EAAE,6BAA6B;QACtC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;KACpD;IACD,MAAM,EAAE;QACP,OAAO,EAAE,0BAA0B;QACnC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;QAC5C,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;QACpD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;QAC3C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;QAC3C,SAAS,EAAE,uCAAuC;KAClD;IACD,OAAO,EAAE;QACR,OAAO,EAAE,gCAAgC;QACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;QACnD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;KACzC;IACD,MAAM,EAAE;QACP,OAAO,EAAE,gCAAgC;QACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE;KAClD;IACD,OAAO,EAAE;QACR,OAAO,EAAE,uCAAuC;QAChD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;KACnD;IACD,OAAO,EAAE;QACR,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,qBAAqB;QAC7D,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;QAChD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;KACnD;IACD,QAAQ,EAAE;QACT,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,yBAAyB;QAC3E,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;KACpD;CACD,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface EmailCredentials {
|
|
2
|
+
mailer: "smtp" | "sendgrid" | "mailgun";
|
|
3
|
+
fromAddress: string;
|
|
4
|
+
fromName?: string;
|
|
5
|
+
smtpHost?: string;
|
|
6
|
+
smtpPort?: number;
|
|
7
|
+
smtpUsername?: string;
|
|
8
|
+
smtpPassword?: string;
|
|
9
|
+
smtpEncryption?: "tls" | "ssl" | "none";
|
|
10
|
+
sendgridApiKey?: string;
|
|
11
|
+
mailgunApiKey?: string;
|
|
12
|
+
mailgunDomain?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare class EmailService {
|
|
15
|
+
private creds;
|
|
16
|
+
constructor(credentials?: EmailCredentials);
|
|
17
|
+
private validateCredentials;
|
|
18
|
+
private fromHeader;
|
|
19
|
+
private createSMTPTransporter;
|
|
20
|
+
verify(): Promise<void>;
|
|
21
|
+
send(to: string | string[], subject: string, text: string, html?: string): Promise<void>;
|
|
22
|
+
private sendViaSMTP;
|
|
23
|
+
private sendViaSendGrid;
|
|
24
|
+
private sendViaMailgun;
|
|
25
|
+
}
|
|
26
|
+
export declare function getEmailService(): EmailService;
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import nodemailer from "nodemailer";
|
|
2
|
+
import { config } from "../lib/config.js";
|
|
3
|
+
import { CredentialsError } from "../lib/errors.js";
|
|
4
|
+
function credentialsFromConfig() {
|
|
5
|
+
const { mailer, fromAddress, fromName, smtp, sendgrid, mailgun } = config.email;
|
|
6
|
+
return {
|
|
7
|
+
mailer: mailer,
|
|
8
|
+
fromAddress,
|
|
9
|
+
fromName: fromName || undefined,
|
|
10
|
+
smtpHost: smtp.host,
|
|
11
|
+
smtpPort: smtp.port,
|
|
12
|
+
smtpUsername: smtp.username,
|
|
13
|
+
smtpPassword: smtp.password,
|
|
14
|
+
smtpEncryption: smtp.encryption,
|
|
15
|
+
sendgridApiKey: sendgrid.apiKey || undefined,
|
|
16
|
+
mailgunApiKey: mailgun.apiKey || undefined,
|
|
17
|
+
mailgunDomain: mailgun.domain || undefined,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export class EmailService {
|
|
21
|
+
creds;
|
|
22
|
+
constructor(credentials) {
|
|
23
|
+
this.creds = credentials ?? credentialsFromConfig();
|
|
24
|
+
this.validateCredentials();
|
|
25
|
+
}
|
|
26
|
+
validateCredentials() {
|
|
27
|
+
const { mailer, fromAddress, smtpHost, smtpUsername, smtpPassword, sendgridApiKey, mailgunApiKey, mailgunDomain, } = this.creds;
|
|
28
|
+
if (!fromAddress) {
|
|
29
|
+
throw new CredentialsError("Email", ["MAIL_FROM_ADDRESS"]);
|
|
30
|
+
}
|
|
31
|
+
if (mailer === "smtp") {
|
|
32
|
+
if (!smtpHost || !smtpUsername || !smtpPassword) {
|
|
33
|
+
throw new CredentialsError("Email (SMTP)", [
|
|
34
|
+
"MAIL_HOST",
|
|
35
|
+
"MAIL_USERNAME",
|
|
36
|
+
"MAIL_PASSWORD",
|
|
37
|
+
]);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else if (mailer === "sendgrid") {
|
|
41
|
+
if (!sendgridApiKey) {
|
|
42
|
+
throw new CredentialsError("Email (SendGrid)", ["SENDGRID_API_KEY"]);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else if (mailer === "mailgun") {
|
|
46
|
+
if (!mailgunApiKey || !mailgunDomain) {
|
|
47
|
+
throw new CredentialsError("Email (Mailgun)", [
|
|
48
|
+
"MAILGUN_API_KEY",
|
|
49
|
+
"MAILGUN_DOMAIN",
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
throw new Error(`Unsupported mailer: "${mailer}". Supported: smtp, sendgrid, mailgun`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
fromHeader() {
|
|
58
|
+
const { fromName, fromAddress } = this.creds;
|
|
59
|
+
return fromName ? `"${fromName}" <${fromAddress}>` : fromAddress;
|
|
60
|
+
}
|
|
61
|
+
createSMTPTransporter() {
|
|
62
|
+
const { smtpHost, smtpPort, smtpUsername, smtpPassword, smtpEncryption } = this.creds;
|
|
63
|
+
return nodemailer.createTransport({
|
|
64
|
+
host: smtpHost,
|
|
65
|
+
port: smtpPort ?? 587,
|
|
66
|
+
secure: smtpEncryption === "ssl",
|
|
67
|
+
requireTLS: smtpEncryption !== "ssl" && smtpEncryption !== "none",
|
|
68
|
+
auth: { user: smtpUsername, pass: smtpPassword },
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
// Verifies the SMTP connection. No-op for SendGrid/Mailgun (no free verify endpoint).
|
|
72
|
+
async verify() {
|
|
73
|
+
if (this.creds.mailer === "smtp") {
|
|
74
|
+
const transporter = this.createSMTPTransporter();
|
|
75
|
+
await transporter.verify();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async send(to, subject, text, html) {
|
|
79
|
+
switch (this.creds.mailer) {
|
|
80
|
+
case "smtp":
|
|
81
|
+
return this.sendViaSMTP(to, subject, text, html);
|
|
82
|
+
case "sendgrid":
|
|
83
|
+
return this.sendViaSendGrid(to, subject, text, html);
|
|
84
|
+
case "mailgun":
|
|
85
|
+
return this.sendViaMailgun(to, subject, text, html);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
async sendViaSMTP(to, subject, text, html) {
|
|
89
|
+
const transporter = this.createSMTPTransporter();
|
|
90
|
+
await transporter.sendMail({
|
|
91
|
+
from: this.fromHeader(),
|
|
92
|
+
to: Array.isArray(to) ? to.join(", ") : to,
|
|
93
|
+
subject,
|
|
94
|
+
text,
|
|
95
|
+
html,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
async sendViaSendGrid(to, subject, text, html) {
|
|
99
|
+
const recipients = Array.isArray(to) ? to : [to];
|
|
100
|
+
const personalizations = recipients.map((email) => ({
|
|
101
|
+
to: [{ email }],
|
|
102
|
+
}));
|
|
103
|
+
const body = {
|
|
104
|
+
personalizations,
|
|
105
|
+
from: {
|
|
106
|
+
email: this.creds.fromAddress,
|
|
107
|
+
...(this.creds.fromName ? { name: this.creds.fromName } : {}),
|
|
108
|
+
},
|
|
109
|
+
subject,
|
|
110
|
+
content: [
|
|
111
|
+
{ type: "text/plain", value: text },
|
|
112
|
+
...(html ? [{ type: "text/html", value: html }] : []),
|
|
113
|
+
],
|
|
114
|
+
};
|
|
115
|
+
const response = await fetch("https://api.sendgrid.com/v3/mail/send", {
|
|
116
|
+
method: "POST",
|
|
117
|
+
headers: {
|
|
118
|
+
Authorization: `Bearer ${this.creds.sendgridApiKey}`,
|
|
119
|
+
"Content-Type": "application/json",
|
|
120
|
+
},
|
|
121
|
+
body: JSON.stringify(body),
|
|
122
|
+
});
|
|
123
|
+
if (!response.ok) {
|
|
124
|
+
const error = await response.text();
|
|
125
|
+
throw new Error(`SendGrid error (${response.status}): ${error}`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
async sendViaMailgun(to, subject, text, html) {
|
|
129
|
+
const { mailgunApiKey, mailgunDomain } = this.creds;
|
|
130
|
+
const formData = new FormData();
|
|
131
|
+
formData.append("from", this.fromHeader());
|
|
132
|
+
formData.append("to", Array.isArray(to) ? to.join(",") : to);
|
|
133
|
+
formData.append("subject", subject);
|
|
134
|
+
formData.append("text", text);
|
|
135
|
+
if (html)
|
|
136
|
+
formData.append("html", html);
|
|
137
|
+
const credentials = Buffer.from(`api:${mailgunApiKey}`).toString("base64");
|
|
138
|
+
const response = await fetch(`https://api.mailgun.net/v3/${mailgunDomain}/messages`, {
|
|
139
|
+
method: "POST",
|
|
140
|
+
headers: { Authorization: `Basic ${credentials}` },
|
|
141
|
+
body: formData,
|
|
142
|
+
});
|
|
143
|
+
if (!response.ok) {
|
|
144
|
+
const error = await response.text();
|
|
145
|
+
throw new Error(`Mailgun error (${response.status}): ${error}`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Singleton for the env-var-based default configuration.
|
|
150
|
+
// When calling tools with per-org credentials, pass an EmailCredentials
|
|
151
|
+
// object directly to `new EmailService(credentials)` instead.
|
|
152
|
+
let _instance;
|
|
153
|
+
export function getEmailService() {
|
|
154
|
+
if (!_instance)
|
|
155
|
+
_instance = new EmailService();
|
|
156
|
+
return _instance;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=email-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-service.js","sourceRoot":"","sources":["../../src/services/email-service.ts"],"names":[],"mappings":"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"}
|