UNPKG

@kanjianmusic/mcp-prompthub

Version:

Kanjian MCP - PromptHub

5 lines (4 loc) 2.69 kB
#!/usr/bin/env node import{McpServer as m}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as d}from"@modelcontextprotocol/sdk/server/stdio.js";import{z as r}from"zod";var p={name:"@kanjianmusic/mcp-prompthub",version:"0.0.2",description:"Kanjian MCP - PromptHub",type:"module",main:"./dist/index.js",types:"./dist/index.d.ts",bin:{"mcp-prompthub":"./dist/index.js"},files:["dist","README.md"],scripts:{build:"tsup",prepublishOnly:"pnpm run build"},keywords:["mcp","kanjian"],author:"cuiguojie@kanjian.com",license:"MIT",dependencies:{"@modelcontextprotocol/sdk":"^1.11.0",zod:"^3.24.3"},devDependencies:{"@types/node":"^22.15.2",tsup:"^8.4.0",typescript:"^5.8.3"},engines:{node:">=22.14.0"}};var s=new m({name:"@kanjianmusic/mcp-prompthub",description:"Kanjian MCP - PromptHub",version:p.version,capabilities:{}});function u(n){let t=new URLSearchParams;Object.entries(n).forEach(([i,o])=>{o!=null&&t.append(i,o.toString())});let e=t.toString();return e?`?${e}`:""}var a="https://gw.kanjian.com/prompt-service/api/v1";s.tool("list_prompts","\u83B7\u53D6\u6240\u6709 prompt\uFF1B\u53EF\u4EE5\u6307\u5B9A owner \u548C\u5206\u9875\u53C2\u6570",{owner:r.string().optional().describe("owner \u4E3A\u7A7A\u65F6\uFF0C\u8FD4\u56DE\u6240\u6709 prompt"),page:r.number().optional().default(1).describe("\u5206\u9875\u9875\u7801\uFF0C\u9ED8\u8BA4 1"),pageSize:r.number().optional().default(10).describe("\u5206\u9875\u5927\u5C0F\uFF0C\u9ED8\u8BA4 10"),keyword:r.string().optional().describe("\u5173\u952E\u8BCD\uFF0C\u7528\u4E8E\u6A21\u7CCA\u641C\u7D22")},async n=>{let t=await fetch(`${a}/prompts${u(n)}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${process.env.PROMPTHUB_PERSONAL_TOKEN}`}});if(!t.ok)throw new Error(`API\u9519\u8BEF: ${t.status}`);let{items:e,total:i}=await t.json();return{content:[{type:"text",text:e.length>0?`\u5171${i}\u4E2Aprompt\uFF0C \u5F53\u524D\u67E5\u8BE2\u6761\u4EF6\u7ED3\u679C\uFF1A ${e.map(o=>o.fullPath).join(` `)}`:"\u5F53\u524D\u6761\u4EF6\u6CA1\u6709\u67E5\u8BE2\u5230\u7ED3\u679C"}]}});s.tool("get_prompt_by_full_path","\u83B7\u53D6\u6307\u5B9A fullPath \u7684 prompt \u7684\u5185\u5BB9",{fullPath:r.string().describe("prompt \u7684 fullPath")},async n=>{let t=await fetch(`${a}/prompts/${n.fullPath}`,{headers:{"Content-Type":"application/json",Authorization:`Bearer ${process.env.PROMPTHUB_PERSONAL_TOKEN}`}});if(!t.ok)throw new Error(`API\u9519\u8BEF: ${t.status}`);return{content:[{type:"text",text:(await t.json()).content}]}});async function l(){let n=new d;await s.connect(n),console.log("Kanjian MCP PromptHub Server running on stdio")}l().catch(n=>{console.error("Fatal error in main():",n),process.exit(1)});