@orchyn/mcp 1.17.8 → 1.18.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.
@@ -9,61 +9,61 @@ export const TOOL_DEFINITIONS = [
9
9
  {
10
10
  name: "get_social_media",
11
11
  title: "Get Social Media",
12
- description: "Fetch a social post's media from a TikTok, Instagram, YouTube, X/Twitter, Douyin, Xiaohongshu or Bilibili URL: contentType (video/image/carousel/slideshow), title, caption, author, stats and direct media URLs. Returns an inline thumbnail image. Consumes 1 orchyn credit. First use free per user.",
12
+ description: "Fetch a social post's media from a TikTok, Instagram, YouTube, X/Twitter, Douyin, Xiaohongshu or Bilibili URL: contentType (video/image/carousel/slideshow), title, caption, author, stats and direct media URLs. Returns an inline thumbnail image. (20 free credits for new users). Consumes 1 orchyn credit.",
13
13
  inputSchema: z.object({ url: z.string().describe("Full public post URL.") }).strict(),
14
14
  },
15
15
  {
16
16
  name: "discover_social_posts",
17
17
  title: "Discover Social Posts",
18
- description: "Discover recent posts (video, image, carousel, slideshow) for a niche on YouTube, TikTok, Instagram, Douyin, Xiaohongshu, X/Twitter or Bilibili. Each post includes title/caption, thumbnailUrl, externalUrl, views/likes/comments and inline thumbnails (up to 4) so they show in chat. Say \"next\" to paginate (offset), or \"analyze the 2nd one\" / \"analyze all\" for batch analysis. Consumes 2 orchyn credits. First use free per user.",
18
+ description: "Discover recent posts (video, image, carousel, slideshow) for a niche on YouTube, TikTok, Instagram, Douyin, Xiaohongshu, X/Twitter or Bilibili. Each post includes title/caption, thumbnailUrl, externalUrl, views/likes/comments and inline thumbnails (up to 4) so they show in chat. Say \"next\" to paginate (offset), or \"analyze the 2nd one\" / \"analyze all\" for batch analysis. (20 free credits for new users). Consumes 2 orchyn credits.",
19
19
  inputSchema: z.object({ niche: z.string().describe("Niche/topic, e.g. 'fitness'."), keywords: z.string().optional().describe("Optional extra keywords."), limit: z.number().int().optional().describe("Max results (default 6)."), offset: z.number().int().optional().describe("Skip first N results — for 'next' pagination."), platform: z.enum(["youtube", "tiktok", "instagram", "douyin", "xiaohongshu", "twitter", "bilibili", "any"]).optional().describe("Platform to search (default youtube).") }).strict(),
20
20
  },
21
21
  {
22
22
  name: "get_user_posts",
23
23
  title: "Get User Posts",
24
- description: "List recent posts by a creator handle (e.g. @zoundsapp) on TikTok, Instagram, YouTube, Douyin, Xiaohongshu, X/Twitter or Bilibili. Each post includes title/caption, thumbnailUrl, externalUrl, views/likes/comments and inline thumbnails (up to 4) so they show in chat. Use this when Claude needs to pull more posts from the same account to spot a pattern, or to scan a whole profile. Consumes 2 orchyn credits. First use free per user.",
24
+ description: "List recent posts by a creator handle (e.g. @zoundsapp) on TikTok, Instagram, YouTube, Douyin, Xiaohongshu, X/Twitter or Bilibili. Each post includes title/caption, thumbnailUrl, externalUrl, views/likes/comments and inline thumbnails (up to 4) so they show in chat. Use this when Claude needs to pull more posts from the same account to spot a pattern, or to scan a whole profile. (20 free credits for new users). Consumes 2 orchyn credits.",
25
25
  inputSchema: z.object({ username: z.string().describe("Creator handle, e.g. 'zoundsapp' or '@zoundsapp'."), platform: z.enum(["tiktok", "instagram", "youtube", "douyin", "xiaohongshu", "twitter", "bilibili"]).optional().describe("Which platform (default tiktok)."), limit: z.number().int().optional().describe("Max posts (default 6).") }).strict(),
26
26
  },
27
27
  {
28
28
  name: "analyze_creator_profile",
29
29
  title: "Analyze Creator Profile",
30
- description: "Deep-dive a whole creator profile on TikTok, Instagram, YouTube, Douyin, Xiaohongshu, X/Twitter or Bilibili: fetch recent posts, run multimodal AI on up to 3, then synthesize a profile report — creator summary, niche, content themes, hook styles, strengths/weaknesses, engagement patterns, audience insights, variation ideas, collaboration fit. Consumes 15 orchyn credits. First use free per user.",
30
+ description: "Deep-dive a whole creator profile on TikTok, Instagram, YouTube, Douyin, Xiaohongshu, X/Twitter or Bilibili: fetch recent posts, run multimodal AI on up to 3, then synthesize a profile report — creator summary, niche, content themes, hook styles, strengths/weaknesses, engagement patterns, audience insights, variation ideas, collaboration fit. AI analysis \u2014 1 free use, then 15 credits per use.",
31
31
  inputSchema: z.object({ username: z.string().describe("Creator handle, e.g. 'zoundsapp'."), platform: z.enum(["tiktok", "instagram", "youtube", "douyin", "xiaohongshu", "twitter", "bilibili"]).optional().describe("Which platform (default tiktok)."), limit: z.number().int().optional().describe("Posts to fetch (default 6; first 3 analyzed)."), focus: z.string().optional().describe("Extra instruction for the profile synthesis.") }).strict(),
32
32
  },
33
33
  {
34
34
  name: "get_post_comments",
35
35
  title: "Get Post Comments",
36
- description: "Fetch top comments for a post URL on TikTok, Instagram, YouTube, Douyin, X/Twitter or Bilibili (plus keyword clusters from TikTok Analytics when available) — audience sentiment/audience-signal analysis. Consumes 2 orchyn credits. First use free per user.",
36
+ description: "Fetch top comments for a post URL on TikTok, Instagram, YouTube, Douyin, X/Twitter or Bilibili (plus keyword clusters from TikTok Analytics when available) — audience sentiment/audience-signal analysis. (20 free credits for new users). Consumes 2 orchyn credits.",
37
37
  inputSchema: z.object({ url: z.string().describe("Full public post URL (TikTok/Instagram/YouTube/Douyin/X/Bilibili)."), limit: z.number().int().optional().describe("Max comments (default 20).") }).strict(),
38
38
  },
39
39
  {
40
40
  name: "search_creators",
41
41
  title: "Search Creators",
42
- description: "Search creators by niche/keyword on TikTok, Instagram, Xiaohongshu, YouTube or Douyin — username, nickname, follower count, signature, verified status. Use to find influencers to vet or analyze. Consumes 2 orchyn credits. First use free per user.",
42
+ description: "Search creators by niche/keyword on TikTok, Instagram, Xiaohongshu, YouTube or Douyin — username, nickname, follower count, signature, verified status. Use to find influencers to vet or analyze. (20 free credits for new users). Consumes 2 orchyn credits.",
43
43
  inputSchema: z.object({ keyword: z.string().describe("Niche/keyword, e.g. 'fitness' or a creator name."), platform: z.enum(["tiktok", "instagram", "xiaohongshu", "youtube", "douyin"]).optional().describe("Which platform (default tiktok)."), count: z.number().int().optional().describe("Max creators (default 8).") }).strict(),
44
44
  },
45
45
  {
46
46
  name: "get_similar_creators",
47
47
  title: "Get Similar Creators",
48
- description: "Find lookalike creators for a given handle — TikTok similar-user recommendations or Instagram similar users. Useful for scaling: 'if this creator works, here are more like them'. Consumes 2 orchyn credits. First use free per user.",
48
+ description: "Find lookalike creators for a given handle — TikTok similar-user recommendations or Instagram similar users. Useful for scaling: 'if this creator works, here are more like them'. (20 free credits for new users). Consumes 2 orchyn credits.",
49
49
  inputSchema: z.object({ username: z.string().describe("Seed creator handle, e.g. 'zoundsapp'."), platform: z.enum(["tiktok", "instagram"]).optional().describe("Which platform (default tiktok).") }).strict(),
50
50
  },
51
51
  {
52
52
  name: "discover_sounds",
53
53
  title: "Discover Sounds",
54
- description: "Discover trending sounds/music for a keyword on TikTok or Instagram — the sound is a huge ranking signal for TikTok virality. Returns title, artist, duration, play/cover URLs. Consumes 2 orchyn credits. First use free per user.",
54
+ description: "Discover trending sounds/music for a keyword on TikTok or Instagram — the sound is a huge ranking signal for TikTok virality. Returns title, artist, duration, play/cover URLs. (20 free credits for new users). Consumes 2 orchyn credits.",
55
55
  inputSchema: z.object({ keyword: z.string().describe("Niche/keyword, e.g. 'gym'."), platform: z.enum(["tiktok", "instagram"]).optional().describe("Which platform (default tiktok)."), count: z.number().int().optional().describe("Max sounds (default 6).") }).strict(),
56
56
  },
57
57
  {
58
58
  name: "understand_social_post",
59
59
  title: "Understand Social Post",
60
- description: "Import a social post URL AND understand it with multimodal AI over the actual video/images: summary, hook strength, viral triggers, format breakdown and variation ideas. Includes the thumbnail. Supports TikTok, Instagram, YouTube, X/Twitter, Douyin, Xiaohongshu and Bilibili. Consumes 6 orchyn credits. First use free per user.",
60
+ description: "Import a social post URL AND understand it with multimodal AI over the actual video/images: summary, hook strength, viral triggers, format breakdown and variation ideas. Includes the thumbnail. Supports TikTok, Instagram, YouTube, X/Twitter, Douyin, Xiaohongshu and Bilibili. AI analysis \u2014 1 free use, then 6 credits per use.",
61
61
  inputSchema: z.object({ url: z.string().describe("Full public post URL (TikTok/Instagram/YouTube/X/Douyin/Xiaohongshu/Bilibili)."), focus: z.string().optional().describe("Extra instruction, e.g. 'focus on the CTA'.") }).strict(),
62
62
  },
63
63
  {
64
64
  name: "check_orchyn_credits",
65
65
  title: "Check Orchyn Credits",
66
- description: "Check your MCP credit balance, billing URL and pack size. No cost — call anytime to see remaining credits before running other tools.",
66
+ description: "Check your MCP credit balance, billing URL and pack size. New users get 20 free credits. No cost — call anytime to see remaining credits before running other tools.",
67
67
  inputSchema: z.object({}).strict(),
68
68
  },
69
69
  {
@@ -315,7 +315,7 @@ export function createMcpServer(makeClient) {
315
315
  title: "Analyze Post",
316
316
  description: "Analyze a social post (video, image, carousel/slideshow) from its link — " +
317
317
  "imports the media and runs AI analysis over the actual content (video frames, carousel images, caption). " +
318
- "Supports TikTok, Instagram, YouTube, X/Twitter, Douyin, Xiaohongshu and Bilibili. Returns the full analysis once finished. First use free per user.",
318
+ "Supports TikTok, Instagram, YouTube, X/Twitter, Douyin, Xiaohongshu and Bilibili. Returns the full analysis once finished. AI analysis — 1 free use, then 6 credits per use.",
319
319
  _meta: { ui: { resourceUri: uiResource("analyze_post") }, "ui/resourceUri": uiResource("analyze_post") },
320
320
  inputSchema: z
321
321
  .object({
@@ -371,7 +371,7 @@ export function createMcpServer(makeClient) {
371
371
  title: "Get Social Media",
372
372
  description: "Fetch a social post's media from a TikTok, Instagram, YouTube, X/Twitter, Douyin, Xiaohongshu or Bilibili URL: " +
373
373
  "contentType (video/image/carousel/slideshow), title, caption, author, stats and direct media URLs. " +
374
- "Returns an inline thumbnail image. Consumes 1 orchyn credit. First use free per user.",
374
+ "Returns an inline thumbnail image. Consumes 1 orchyn credit (20 free credits included for new users).",
375
375
  _meta: { ui: { resourceUri: uiResource("get_social_media") }, "ui/resourceUri": uiResource("get_social_media") },
376
376
  inputSchema: z
377
377
  .object({
@@ -391,7 +391,7 @@ export function createMcpServer(makeClient) {
391
391
  title: "Discover Social Posts",
392
392
  description: "Discover recent posts (video, image, carousel, slideshow) for a niche on YouTube, TikTok, Instagram, Douyin, Xiaohongshu, X/Twitter or Bilibili. " +
393
393
  "Each post includes title/caption, thumbnailUrl, externalUrl, views/likes/comments and inline thumbnails (up to 4) so they show in chat. " +
394
- 'Say "next" to paginate (offset), or "analyze the 2nd one" / "analyze all" for batch analysis. Consumes 2 orchyn credits. First use free per user.',
394
+ 'Say "next" to paginate (offset), or "analyze the 2nd one" / "analyze all" for batch analysis. Consumes 2 orchyn credits (20 free credits included for new users).',
395
395
  _meta: { ui: { resourceUri: uiResource("discover_social_posts") }, "ui/resourceUri": uiResource("discover_social_posts") },
396
396
  inputSchema: z
397
397
  .object({
@@ -418,7 +418,7 @@ export function createMcpServer(makeClient) {
418
418
  title: "Get User Posts",
419
419
  description: "List recent posts by a creator handle (e.g. @zoundsapp) on TikTok, Instagram, YouTube, Douyin, Xiaohongshu, X/Twitter, Bilibili or LinkedIn (LinkedIn uses the profile public_id, e.g. 'billgates'). " +
420
420
  "Each post includes title/caption, thumbnailUrl, externalUrl, views/likes/comments and inline thumbnails (up to 4) so they show in chat. " +
421
- "Use this when Claude needs to pull more posts from the same account to spot a pattern, or to scan a whole profile. Consumes 2 orchyn credits. First use free per user.",
421
+ "Use this when Claude needs to pull more posts from the same account to spot a pattern, or to scan a whole profile. Consumes 2 orchyn credits (20 free credits included for new users).",
422
422
  _meta: { ui: { resourceUri: uiResource("get_user_posts") }, "ui/resourceUri": uiResource("get_user_posts") },
423
423
  inputSchema: z
424
424
  .object({
@@ -443,7 +443,7 @@ export function createMcpServer(makeClient) {
443
443
  title: "Analyze Creator Profile",
444
444
  description: "Deep-dive a whole creator profile on TikTok, Instagram, YouTube, Douyin, Xiaohongshu, X/Twitter, Bilibili or LinkedIn: fetch recent posts, run multimodal AI on up to 3, " +
445
445
  "then synthesize a profile report — creator summary, niche, content themes, hook styles, strengths/weaknesses, " +
446
- "engagement patterns, audience insights, variation ideas, collaboration fit. Consumes 15 orchyn credits. First use free per user.",
446
+ "engagement patterns, audience insights, variation ideas, collaboration fit. AI analysis \u2014 1 free use, then 15 credits per use.",
447
447
  _meta: { ui: { resourceUri: uiResource("analyze_creator_profile") }, "ui/resourceUri": uiResource("analyze_creator_profile") },
448
448
  inputSchema: z
449
449
  .object({
@@ -468,7 +468,7 @@ export function createMcpServer(makeClient) {
468
468
  server.registerTool("get_post_comments", {
469
469
  title: "Get Post Comments",
470
470
  description: "Fetch top comments for a post URL on TikTok, Instagram, YouTube, Douyin, X/Twitter, Bilibili or LinkedIn, plus keyword clusters from TikTok Analytics " +
471
- "when available — audience sentiment/audience-signal analysis. Consumes 2 orchyn credits. First use free per user.",
471
+ "when available — audience sentiment/audience-signal analysis. Consumes 2 orchyn credits (20 free credits included for new users).",
472
472
  _meta: { ui: { resourceUri: uiResource("get_post_comments") }, "ui/resourceUri": uiResource("get_post_comments") },
473
473
  inputSchema: z
474
474
  .object({
@@ -488,7 +488,7 @@ export function createMcpServer(makeClient) {
488
488
  server.registerTool("search_creators", {
489
489
  title: "Search Creators",
490
490
  description: "Search creators by niche/keyword on TikTok, Instagram, Xiaohongshu, YouTube or Douyin — username, nickname, follower count, " +
491
- "signature, verified status. Use to find influencers to vet or analyze. Consumes 2 orchyn credits. First use free per user.",
491
+ "signature, verified status. Use to find influencers to vet or analyze. Consumes 2 orchyn credits (20 free credits included for new users).",
492
492
  _meta: { ui: { resourceUri: uiResource("search_creators") }, "ui/resourceUri": uiResource("search_creators") },
493
493
  inputSchema: z
494
494
  .object({
@@ -512,7 +512,7 @@ export function createMcpServer(makeClient) {
512
512
  server.registerTool("get_similar_creators", {
513
513
  title: "Get Similar Creators",
514
514
  description: "Find lookalike creators for a given handle — TikTok similar-user recommendations or Instagram " +
515
- "similar users. Useful for scaling: 'if this creator works, here are more like them'. Consumes 2 orchyn credits. First use free per user.",
515
+ "similar users. Useful for scaling: 'if this creator works, here are more like them'. Consumes 2 orchyn credits (20 free credits included for new users).",
516
516
  _meta: { ui: { resourceUri: uiResource("get_similar_creators") }, "ui/resourceUri": uiResource("get_similar_creators") },
517
517
  inputSchema: z
518
518
  .object({
@@ -532,7 +532,7 @@ export function createMcpServer(makeClient) {
532
532
  server.registerTool("discover_sounds", {
533
533
  title: "Discover Sounds",
534
534
  description: "Discover trending sounds/music for a keyword on TikTok or Instagram — the sound is a huge ranking " +
535
- "signal for TikTok virality. Returns title, artist, duration, play/cover URLs. Consumes 2 orchyn credits. First use free per user.",
535
+ "signal for TikTok virality. Returns title, artist, duration, play/cover URLs. Consumes 2 orchyn credits (20 free credits included for new users).",
536
536
  _meta: { ui: { resourceUri: uiResource("discover_sounds") }, "ui/resourceUri": uiResource("discover_sounds") },
537
537
  inputSchema: z
538
538
  .object({
@@ -582,7 +582,7 @@ export function createMcpServer(makeClient) {
582
582
  title: "Understand Social Post",
583
583
  description: "Import a social post URL AND understand it with multimodal AI over the actual video/images: " +
584
584
  "summary, hook strength, viral triggers, format breakdown and variation ideas. Includes the thumbnail. " +
585
- "Supports TikTok, Instagram, YouTube, X/Twitter, Douyin, Xiaohongshu and Bilibili. Consumes 6 orchyn credits. First use free per user.",
585
+ "Supports TikTok, Instagram, YouTube, X/Twitter, Douyin, Xiaohongshu and Bilibili. AI analysis \u2014 1 free use, then 6 credits per use.",
586
586
  _meta: { ui: { resourceUri: uiResource("understand_social_post") }, "ui/resourceUri": uiResource("understand_social_post") },
587
587
  inputSchema: z
588
588
  .object({
@@ -32,8 +32,9 @@ export const ORCHYN_UI_TEMPLATE = `<!DOCTYPE html>
32
32
  --shadow-sm:0 1px 2px rgba(0,0,0,.2);--shadow-md:0 4px 12px rgba(0,0,0,.3);
33
33
  --shadow-lg:0 8px 24px rgba(0,0,0,.4);
34
34
  }}
35
+ html{overflow-x:hidden;overflow-y:auto}
35
36
  *{margin:0;padding:0;box-sizing:border-box;}
36
- body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--bg);color:var(--fg);padding:16px;line-height:1.5;}
37
+ body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--bg);color:var(--fg);padding:16px;line-height:1.5;overflow-x:hidden;}
37
38
 
38
39
  /* ─── Content entrance ─── */
39
40
  .fade-in{animation:fadeIn .4s ease-out;}
@@ -49,8 +50,8 @@ body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--
49
50
  .stagger>*:nth-child(8){animation-delay:.4s}
50
51
 
51
52
  /* ─── Cards ─── */
52
- .gallery-wrap{position:relative;margin:0 -4px}
53
- .gallery{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding:4px 4px 8px;scrollbar-width:none}
53
+ .gallery-wrap{position:relative;margin:0 -4px;overflow:visible}
54
+ .gallery{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding:4px 4px 8px;scrollbar-width:none;width:100%;}
54
55
  .gallery::-webkit-scrollbar{display:none}
55
56
  .gallery-dots{display:flex;justify-content:center;gap:6px;margin-top:10px;flex-wrap:wrap}
56
57
  .gallery-dots .dot{width:8px;height:8px;border-radius:50%;background:var(--border);border:none;cursor:pointer;transition:var(--transition);padding:0}
@@ -58,8 +59,8 @@ body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--
58
59
  .gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-md);cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--fg);transition:var(--transition);opacity:0}
59
60
  .gallery-wrap:hover .gallery-nav{opacity:1}
60
61
  .gallery-nav:hover{background:var(--accent);color:#fff}
61
- .gallery-nav.prev{left:-16px}
62
- .gallery-nav.next{right:-16px}
62
+ .gallery-nav.prev{left:2px}
63
+ .gallery-nav.next{right:2px}
63
64
  .card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;width:380px;min-width:380px;background:var(--card);display:block;box-shadow:var(--shadow-sm);transition:var(--transition);cursor:default;scroll-snap-align:start;flex-shrink:0}
64
65
  .card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--muted);}
65
66
  .card-wide{width:100%;}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orchyn/mcp",
3
- "version": "1.17.8",
3
+ "version": "1.18.0",
4
4
  "description": "MCP server for orchyn - fetch, discover and understand TikTok/Instagram/YouTube/X/LinkedIn posts with AI (media metadata, niche discovery, hook & viral analysis)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",