@chirpie/mcp 1.0.17 → 1.0.19
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/dist/index.js +31 -4
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -49,7 +49,7 @@ function registerChirpieTools(server2, resolveClient) {
|
|
|
49
49
|
account_id: z.string().describe("Account ID to post from (X, Bluesky, LinkedIn, Threads, Mastodon, Instagram, Facebook, Telegram, Reddit, Pinterest, TikTok, YouTube, Google Business Profile, or Snapchat)"),
|
|
50
50
|
text: z.string().max(63206).describe("Post text (max 280 chars for standard X, 25,000 for X Premium, 300 for Bluesky, 3,000 for LinkedIn, 500 for Threads, 500 for Mastodon, 2,200 for Instagram, 63,206 for Facebook, 4,096 for Telegram, 40,000 for Reddit, 500 for Pinterest, 2,200 for TikTok, 5,000 for YouTube, 1,500 for Google Business Profile, 160 for Snapchat)"),
|
|
51
51
|
media_urls: z.array(z.string()).max(10).optional().describe("Public image URLs. X supports images + video (max 4); Bluesky supports images only (~1MB each, max 4); LinkedIn supports images (JPEG, PNG, GIF up to 8MB each, max 4). Threads supports one image per post. Mastodon supports images + video (max 4). Instagram REQUIRES at least 1 image (max 10 for carousel). Facebook supports images (max 4). Telegram supports images + video. Reddit supports images (max 1). Pinterest REQUIRES 1 image. TikTok REQUIRES video or photo. YouTube REQUIRES video. Google Business Profile supports images (max 1). Snapchat REQUIRES media (image or video)."),
|
|
52
|
-
schedule_at: z.string().optional().describe("ISO 8601 datetime
|
|
52
|
+
schedule_at: z.string().optional().describe("ISO 8601 datetime to schedule the post. Must carry a timezone \u2014 '2026-04-01T14:00:00Z' or '2026-04-01T16:00:00+02:00' \u2014 and is normalized to UTC. Scheduled posts publish within ~5 minutes of this time.")
|
|
53
53
|
},
|
|
54
54
|
async ({ account_id, text, media_urls, schedule_at }) => run((c) => c.createPost({ account_id, text, media_urls, schedule_at }))
|
|
55
55
|
);
|
|
@@ -62,7 +62,7 @@ function registerChirpieTools(server2, resolveClient) {
|
|
|
62
62
|
text: z.string().max(63206).describe("Post text (max 280 chars for standard X, 25,000 for X Premium, 300 for Bluesky, 3,000 for LinkedIn, 500 for Threads, 500 for Mastodon, 2,200 for Instagram, 63,206 for Facebook, 4,096 for Telegram, 40,000 for Reddit, 500 for Pinterest, 2,200 for TikTok, 5,000 for YouTube, 1,500 for Google Business Profile, 160 for Snapchat)"),
|
|
63
63
|
media_urls: z.array(z.string()).max(10).optional().describe("Public image URLs (Bluesky: images only, ~1MB each, max 4; X: images + video, max 4; LinkedIn: images up to 8MB each, max 4; Threads: 1 image per post; Mastodon: images + video, max 4; Instagram: requires images, max 10; Facebook: images, max 4; Telegram: images + video; Reddit: 1 image; Pinterest: requires 1 image; TikTok: requires video/photo; YouTube: requires video; Google Business Profile: 1 image; Snapchat: requires media)")
|
|
64
64
|
})).min(2).max(25).describe("Array of posts in the thread"),
|
|
65
|
-
schedule_at: z.string().optional().describe("ISO 8601 datetime
|
|
65
|
+
schedule_at: z.string().optional().describe("ISO 8601 datetime to schedule the thread. Must carry a timezone \u2014 '2026-04-01T14:00:00Z' or '2026-04-01T16:00:00+02:00' \u2014 and is normalized to UTC. Scheduled threads publish within ~5 minutes of this time.")
|
|
66
66
|
},
|
|
67
67
|
async ({ account_id, posts, schedule_at }) => run((c) => c.createThread({ account_id, posts, schedule_at }))
|
|
68
68
|
);
|
|
@@ -162,6 +162,30 @@ function registerChirpieTools(server2, resolveClient) {
|
|
|
162
162
|
},
|
|
163
163
|
async ({ bot_token, chat_id }) => run((c) => c.connectTelegramAccount({ platform: "telegram", bot_token, chat_id }))
|
|
164
164
|
);
|
|
165
|
+
server2.tool(
|
|
166
|
+
"chirpie_set_x_keys",
|
|
167
|
+
"Register the user's OWN X developer app (from developer.x.com) so their X accounts connect through it and post against their X API credits instead of Chirpie's. Link posts from accounts connected this way are not surcharged. After setting keys, the user must add the returned redirect_uri as a callback URI on their X app and then reconnect each X account (chirpie_connect_x) to move it onto their app.",
|
|
168
|
+
{
|
|
169
|
+
client_id: z.string().describe("OAuth 2.0 Client ID from developer.x.com"),
|
|
170
|
+
client_secret: z.string().describe(
|
|
171
|
+
"OAuth 2.0 Client Secret from developer.x.com. Stored encrypted and never returned."
|
|
172
|
+
),
|
|
173
|
+
label: z.string().optional().describe("Optional human-readable name for the app")
|
|
174
|
+
},
|
|
175
|
+
async ({ client_id, client_secret, label }) => run((c) => c.setXKeys({ client_id, client_secret, ...label ? { label } : {} }))
|
|
176
|
+
);
|
|
177
|
+
server2.tool(
|
|
178
|
+
"chirpie_get_x_keys_status",
|
|
179
|
+
"Check whether the user has registered their own X developer app. Returns configuration status and the callback URI to register on the X app \u2014 never the client secret.",
|
|
180
|
+
{},
|
|
181
|
+
async () => run((c) => c.getXKeysStatus())
|
|
182
|
+
);
|
|
183
|
+
server2.tool(
|
|
184
|
+
"chirpie_remove_x_keys",
|
|
185
|
+
"Remove the user's own X developer app. X accounts connected through it stop refreshing until the keys are re-added or the accounts are reconnected through Chirpie's app.",
|
|
186
|
+
{},
|
|
187
|
+
async () => run((c) => c.removeXKeys())
|
|
188
|
+
);
|
|
165
189
|
}
|
|
166
190
|
var CHIRPIE_TOOL_NAMES = [
|
|
167
191
|
"chirpie_post",
|
|
@@ -177,7 +201,10 @@ var CHIRPIE_TOOL_NAMES = [
|
|
|
177
201
|
...oauthConnectTools.map((t) => t.name),
|
|
178
202
|
"chirpie_connect_bluesky",
|
|
179
203
|
"chirpie_connect_mastodon",
|
|
180
|
-
"chirpie_connect_telegram"
|
|
204
|
+
"chirpie_connect_telegram",
|
|
205
|
+
"chirpie_set_x_keys",
|
|
206
|
+
"chirpie_get_x_keys_status",
|
|
207
|
+
"chirpie_remove_x_keys"
|
|
181
208
|
];
|
|
182
209
|
|
|
183
210
|
// src/index.ts
|
|
@@ -191,7 +218,7 @@ function requireClient() {
|
|
|
191
218
|
}
|
|
192
219
|
return client;
|
|
193
220
|
}
|
|
194
|
-
var SERVER_VERSION = true ? "1.0.
|
|
221
|
+
var SERVER_VERSION = true ? "1.0.19" : "dev";
|
|
195
222
|
var server = new McpServer({
|
|
196
223
|
name: "chirpie",
|
|
197
224
|
version: SERVER_VERSION
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chirpie/mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.19",
|
|
4
4
|
"mcpName": "io.github.Firefloco/chirpie",
|
|
5
5
|
"description": "Chirpie MCP server — social media tools for AI agents",
|
|
6
6
|
"repository": {
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
],
|
|
51
51
|
"license": "MIT",
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@chirpie/sdk": "^1.0.
|
|
53
|
+
"@chirpie/sdk": "^1.0.14",
|
|
54
54
|
"@modelcontextprotocol/sdk": "^1",
|
|
55
55
|
"zod": "^4.3.6"
|
|
56
56
|
},
|