| /** | ||
| * Website API search client | ||
| * Calls meigen.ai /api/search for semantic (vector + keyword hybrid) search | ||
| * Falls back gracefully — caller should handle errors and use local search | ||
| */ | ||
| export interface ApiSearchResult { | ||
| id: string; | ||
| text: string; | ||
| thumbnail_url: string | null; | ||
| media_urls: string[] | null; | ||
| author_username: string | null; | ||
| author_display_name: string | null; | ||
| likes: number; | ||
| views: number; | ||
| model: string | null; | ||
| prompt_ready: boolean | null; | ||
| image_width: number | null; | ||
| image_height: number | null; | ||
| rank: number; | ||
| } | ||
| /** | ||
| * Search posts via website API (semantic + keyword hybrid search) | ||
| * @returns results array, or null if API call fails (caller should fallback to local) | ||
| */ | ||
| export declare function apiSearchPosts(baseUrl: string, query: string, limit: number, offset: number): Promise<ApiSearchResult[] | null>; | ||
| //# sourceMappingURL=api-search.d.ts.map |
| {"version":3,"file":"api-search.d.ts","sourceRoot":"","sources":["../../src/lib/api-search.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,YAAY,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;CACb;AAQD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAyBnC"} |
| "use strict"; | ||
| /** | ||
| * Website API search client | ||
| * Calls meigen.ai /api/search for semantic (vector + keyword hybrid) search | ||
| * Falls back gracefully — caller should handle errors and use local search | ||
| */ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.apiSearchPosts = apiSearchPosts; | ||
| /** | ||
| * Search posts via website API (semantic + keyword hybrid search) | ||
| * @returns results array, or null if API call fails (caller should fallback to local) | ||
| */ | ||
| async function apiSearchPosts(baseUrl, query, limit, offset) { | ||
| try { | ||
| const params = new URLSearchParams({ | ||
| q: query, | ||
| type: 'posts', | ||
| limit: String(limit), | ||
| offset: String(offset), | ||
| }); | ||
| const url = `${baseUrl}/api/search?${params}`; | ||
| const controller = new AbortController(); | ||
| const timeout = setTimeout(() => controller.abort(), 8000); | ||
| const res = await fetch(url, { signal: controller.signal }); | ||
| clearTimeout(timeout); | ||
| if (!res.ok) | ||
| return null; | ||
| const json = await res.json(); | ||
| if (!json.success || !json.data) | ||
| return null; | ||
| return json.data; | ||
| } | ||
| catch { | ||
| return null; | ||
| } | ||
| } | ||
| //# sourceMappingURL=api-search.js.map |
| {"version":3,"file":"api-search.js","sourceRoot":"","sources":["../../src/lib/api-search.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA4BH,wCA8BC;AAlCD;;;GAGG;AACI,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,KAAa,EACb,KAAa,EACb,MAAc;IAEd,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,CAAC,EAAE,KAAK;YACR,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;SACvB,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,GAAG,OAAO,eAAe,MAAM,EAAE,CAAA;QAE7C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAA;QAE1D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QAC3D,YAAY,CAAC,OAAO,CAAC,CAAA;QAErB,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QAExB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAuB,CAAA;QAClD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAE5C,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC"} |
+1
-1
@@ -200,3 +200,3 @@ "use strict"; | ||
| (0, enhance_prompt_js_1.registerEnhancePrompt)(server); | ||
| (0, search_gallery_js_1.registerSearchGallery)(server); | ||
| (0, search_gallery_js_1.registerSearchGallery)(server, config); | ||
| (0, list_models_js_1.registerListModels)(server, apiClient, config); | ||
@@ -203,0 +203,0 @@ (0, get_inspiration_js_1.registerGetInspiration)(server, apiClient); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA8LH,oCA0BC;AAtND,oEAAmE;AACnE,2CAAwC;AACxC,uDAAqD;AACrD,iEAAiE;AACjE,iEAAiE;AACjE,2DAA2D;AAC3D,mEAAmE;AACnE,iEAAiE;AACjE,qEAAqE;AACrE,iFAAgF;AAChF,yEAAyE;AAEzE,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEA8K4C,CAAA;AAExE,SAAgB,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAA;IAC3B,MAAM,SAAS,GAAG,IAAI,+BAAe,CAAC,MAAM,CAAC,CAAA;IAE7C,MAAM,MAAM,GAAG,IAAI,kBAAS,CAC1B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EACpC,EAAE,YAAY,EAAE,mBAAmB,EAAE,CACtC,CAAA;IAED,4CAA4C;IAC5C,IAAA,yCAAqB,EAAC,MAAM,CAAC,CAAA;IAC7B,IAAA,yCAAqB,EAAC,MAAM,CAAC,CAAA;IAC7B,IAAA,mCAAkB,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAC7C,IAAA,2CAAsB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,IAAA,iDAAyB,EAAC,MAAM,CAAC,CAAA;IAEjC,mDAAmD;IACnD,IAAA,wDAA4B,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE5C,8BAA8B;IAC9B,IAAA,6CAAuB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEvC,yEAAyE;IACzE,IAAA,yCAAqB,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAEhD,OAAO,MAAM,CAAA;AACf,CAAC"} | ||
| {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA8LH,oCA0BC;AAtND,oEAAmE;AACnE,2CAAwC;AACxC,uDAAqD;AACrD,iEAAiE;AACjE,iEAAiE;AACjE,2DAA2D;AAC3D,mEAAmE;AACnE,iEAAiE;AACjE,qEAAqE;AACrE,iFAAgF;AAChF,yEAAyE;AAEzE,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEA8K4C,CAAA;AAExE,SAAgB,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAA;IAC3B,MAAM,SAAS,GAAG,IAAI,+BAAe,CAAC,MAAM,CAAC,CAAA;IAE7C,MAAM,MAAM,GAAG,IAAI,kBAAS,CAC1B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EACpC,EAAE,YAAY,EAAE,mBAAmB,EAAE,CACtC,CAAA;IAED,4CAA4C;IAC5C,IAAA,yCAAqB,EAAC,MAAM,CAAC,CAAA;IAC7B,IAAA,yCAAqB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,IAAA,mCAAkB,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAC7C,IAAA,2CAAsB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,IAAA,iDAAyB,EAAC,MAAM,CAAC,CAAA;IAEjC,mDAAmD;IACnD,IAAA,wDAA4B,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE5C,8BAA8B;IAC9B,IAAA,6CAAuB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEvC,yEAAyE;IACzE,IAAA,yCAAqB,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAEhD,OAAO,MAAM,CAAA;AACf,CAAC"} |
| /** | ||
| * search_gallery Tool — free, no auth required | ||
| * Searches the local curated prompt library (1300+ high-quality prompts) | ||
| * Semantic search via website API (vector + keyword hybrid), with local fallback | ||
| */ | ||
| import { z } from 'zod'; | ||
| import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; | ||
| import type { MeiGenConfig } from '../config.js'; | ||
| export declare const searchGallerySchema: { | ||
@@ -14,3 +15,3 @@ query: z.ZodOptional<z.ZodString>; | ||
| }; | ||
| export declare function registerSearchGallery(server: McpServer): void; | ||
| export declare function registerSearchGallery(server: McpServer, config: MeiGenConfig): void; | ||
| //# sourceMappingURL=search-gallery.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"search-gallery.d.ts","sourceRoot":"","sources":["../../src/tools/search-gallery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAQxE,eAAO,MAAM,mBAAmB;;;;;;CAW/B,CAAA;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QAiDtD"} | ||
| {"version":3,"file":"search-gallery.d.ts","sourceRoot":"","sources":["../../src/tools/search-gallery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAQhD,eAAO,MAAM,mBAAmB;;;;;;CAW/B,CAAA;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAiE5E"} |
| "use strict"; | ||
| /** | ||
| * search_gallery Tool — free, no auth required | ||
| * Searches the local curated prompt library (1300+ high-quality prompts) | ||
| * Semantic search via website API (vector + keyword hybrid), with local fallback | ||
| */ | ||
@@ -11,5 +11,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const prompt_library_js_1 = require("../lib/prompt-library.js"); | ||
| const api_search_js_1 = require("../lib/api-search.js"); | ||
| exports.searchGallerySchema = { | ||
| query: zod_1.z.string().optional() | ||
| .describe('Search keywords (e.g., "cyberpunk", "product photo", "portrait"). Leave empty to browse by category or get random picks.'), | ||
| .describe('Search keywords (e.g., "cyberpunk", "product photo", "portrait"). Supports semantic search — natural language descriptions work well. Leave empty to browse by category or get random picks.'), | ||
| category: zod_1.z.enum(['3D', 'App', 'Food', 'Girl', 'JSON', 'Other', 'Photograph', 'Product']).optional() | ||
@@ -24,5 +25,5 @@ .describe('Filter by category. Available: 3D, App, Food, Girl, JSON, Other, Photograph, Product'), | ||
| }; | ||
| function registerSearchGallery(server) { | ||
| server.tool('search_gallery', 'Search 1300+ curated AI image prompts with preview images. Results include image URLs — render them as markdown images () so users can visually browse and pick styles. Use when users need inspiration, want to explore styles, or say "generate an image" without a specific idea.', exports.searchGallerySchema, { readOnlyHint: true }, async ({ query, category, limit, offset, sortBy }) => { | ||
| // No search criteria — return random picks | ||
| function registerSearchGallery(server, config) { | ||
| server.tool('search_gallery', 'Search AI image prompts with semantic understanding — finds visually and conceptually similar results, not just keyword matches. Results include image URLs — render them as markdown images () so users can visually browse and pick styles. Use when users need inspiration, want to explore styles, or say "generate an image" without a specific idea.', exports.searchGallerySchema, { readOnlyHint: true }, async ({ query, category, limit, offset, sortBy }) => { | ||
| // No search criteria — return random picks from local library | ||
| if (!query && !category && offset === 0) { | ||
@@ -35,6 +36,21 @@ const random = (0, prompt_library_js_1.getRandomPrompts)(limit); | ||
| type: 'text', | ||
| text: header + formatResults(random), | ||
| text: header + formatLocalResults(random), | ||
| }], | ||
| }; | ||
| } | ||
| // Has query and no category filter → try semantic search via API | ||
| if (query && query.trim() && !category) { | ||
| const apiResults = await (0, api_search_js_1.apiSearchPosts)(config.meigenBaseUrl, query, limit, offset); | ||
| if (apiResults && apiResults.length > 0) { | ||
| const text = `Found ${apiResults.length} results for "${query}" (semantic search):\n\n${formatApiResults(apiResults)}\n\nShow the preview images above to the user so they can visually browse. Use get_inspiration(imageId) to get the full prompt and all images for any entry the user likes.`; | ||
| return { | ||
| content: [{ | ||
| type: 'text', | ||
| text, | ||
| }], | ||
| }; | ||
| } | ||
| // API failed or no results — fall through to local search | ||
| } | ||
| // Local search (keyword-based): with category filter, or as API fallback | ||
| const results = (0, prompt_library_js_1.searchPrompts)({ query, category, limit, offset, sortBy }); | ||
@@ -56,3 +72,3 @@ if (results.length === 0) { | ||
| ].filter(Boolean).join(', '); | ||
| const text = `Found ${results.length} results${searchDesc ? ` for ${searchDesc}` : ''}:\n\n${formatResults(results)}\n\nShow the preview images above to the user so they can visually browse. Use get_inspiration(imageId) to get the full prompt and all images for any entry the user likes.`; | ||
| const text = `Found ${results.length} results${searchDesc ? ` for ${searchDesc}` : ''}:\n\n${formatLocalResults(results)}\n\nShow the preview images above to the user so they can visually browse. Use get_inspiration(imageId) to get the full prompt and all images for any entry the user likes.`; | ||
| return { | ||
@@ -66,4 +82,24 @@ content: [{ | ||
| } | ||
| function formatResults(results) { | ||
| function formatApiResults(results) { | ||
| return results.map((item, i) => { | ||
| // Use text field as prompt, truncate for preview | ||
| const promptText = item.text || ''; | ||
| const promptPreview = promptText.length > 150 | ||
| ? promptText.slice(0, 150).replace(/\n/g, ' ') + '...' | ||
| : promptText.replace(/\n/g, ' '); | ||
| const imageUrl = item.thumbnail_url || (item.media_urls?.[0]); | ||
| const author = item.author_display_name || item.author_username || 'Unknown'; | ||
| const model = item.model || 'unknown'; | ||
| const parts = [ | ||
| `${i + 1}. by ${author} — ${model}`, | ||
| imageUrl ? ` ` : null, | ||
| ` Prompt: ${promptPreview}`, | ||
| ` Stats: ${item.likes} likes, ${item.views.toLocaleString()} views`, | ||
| ` ID: ${item.id}`, | ||
| ].filter(Boolean); | ||
| return parts.join('\n'); | ||
| }).join('\n\n'); | ||
| } | ||
| function formatLocalResults(results) { | ||
| return results.map((item, i) => { | ||
| // Truncate prompt to first 150 chars for preview | ||
@@ -70,0 +106,0 @@ const promptPreview = item.prompt.length > 150 |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"search-gallery.js","sourceRoot":"","sources":["../../src/tools/search-gallery.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"search-gallery.js","sourceRoot":"","sources":["../../src/tools/search-gallery.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "meigen", | ||
| "version": "1.2.0", | ||
| "version": "1.2.1", | ||
| "description": "Visual creative expert plugin — search inspiration, enhance prompts, and generate AI images with intelligent workflow orchestration", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
+1
-1
| <h1 align="center"> | ||
| MeiGen AI Design MCP | ||
| MeiGen AI Design MCP <a href="https://github.com/SamurAIGPT/awesome-openclaw"><img src="https://img.shields.io/badge/Awesome-OpenClaw-fc60a8?style=flat-square&logo=awesomelists&logoColor=white" alt="Awesome OpenClaw"></a> | ||
| </h1> | ||
@@ -4,0 +4,0 @@ |
+1
-1
| <h1 align="center"> | ||
| MeiGen AI Design MCP | ||
| MeiGen AI Design MCP <a href="https://github.com/SamurAIGPT/awesome-openclaw"><img src="https://img.shields.io/badge/Awesome-OpenClaw-fc60a8?style=flat-square&logo=awesomelists&logoColor=white" alt="Awesome OpenClaw"></a> | ||
| </h1> | ||
@@ -4,0 +4,0 @@ |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 7 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 7 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
3368891
0.24%98
4.26%36995
0.27%25
4.17%