Skip to main content
Glama
index.ts6.75 kB
#!/usr/bin/env node /** @format */ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js" import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js" import { z } from "zod" // 导入我们的提示词补充服务 import { getBackendPrompts, getFrontendPrompts, getGeneralPrompts, getUiDesignPrompts, getRongtongBackendCrudSuggestions } from "./promptSuggestions.js" // 导入飞书文档获取函数 import { getContentByName } from "./feishu.js" // 导入coding内容获取函数 import { getCodingContent } from "./coding.js" // 创建MCP服务器实例 const server = new McpServer({ name: "rt-prompt-mcp", version: "1.0.0", description: "MCP Server for prompt engineering suggestions", }) // 修改获取后端相关提示词的工具 server.tool( "get_backend_suggestions", { context: z.string().optional().describe("当前上下文或任务描述"), databaseType: z.string().optional().describe("数据库类型,如MySQL、PostgreSQL等"), language: z.string().optional().describe("编程语言,如Java、Python等"), }, async ({ context, databaseType, language }) => { const suggestions = getBackendPrompts(context, databaseType, language) return { content: [ { type: "text", text: suggestions, }, ], } } ) // 修改获取前端相关提示词的工具 server.tool( "get_frontend_suggestions", { context: z.string().optional().describe("当前上下文或任务描述"), framework: z.string().optional().describe("前端框架,如React、Vue等"), deviceType: z.string().optional().describe("设备类型,如移动端、桌面端等"), }, async ({ context, framework, deviceType }) => { const suggestions = getFrontendPrompts(context, framework, deviceType) return { content: [ { type: "text", text: suggestions, }, ], } } ) // 修改获取通用提示词补充的工具 server.tool( "get_general_suggestions", { context: z.string().optional().describe("当前上下文或任务描述"), taskType: z.string().optional().describe("任务类型,如代码生成、文档生成等"), }, async ({ context, taskType }) => { const suggestions = getGeneralPrompts(context, taskType) return { content: [ { type: "text", text: suggestions, }, ], } } ) // 添加获取UI设计图转化的提示词补充工具 server.tool( "get_ui_design_suggestions", { context: z.string().optional().describe("当前上下文或任务描述"), designType: z.string().optional().describe("设计类型,如线框图、高保真原型图等"), platform: z.string().optional().describe("平台类型,如Web、iOS、Android等"), }, async ({ context, designType, platform }, extra) => { const suggestions = await getUiDesignPrompts(context, designType, platform) return { content: [ { type: "text", text: suggestions, }, ], } } ) // 新增:注册荣通后端 CRUD 工具 server.tool( "get_rt_crud_suggestions", { base_path: z .string() .optional() .describe("可选的 Java/Kotlin 根包路径,例如 'com.example.myapp' 或 'cn.teamy'。如果提供,将替换提示中默认的 'cn.teamy'。请使用点分隔。"), }, async ({ base_path }) => { const suggestionsArray = getRongtongBackendCrudSuggestions(base_path) return { content: [ { type: "text", text: suggestionsArray.length > 0 ? suggestionsArray[0] : "", }, ], } } ) // 新增:从飞书文档获取提示词工具 server.tool( "get_feishu_prompt", { prompt_name: z.string().describe("提示词名称,如'UI转化提示词'、'AI生成UI-3D风格'等"), }, async ({ prompt_name }) => { try { // 调用飞书API获取对应名称的内容 const content = await getContentByName(prompt_name) // 检查内容是否是coding.net链接 if (content && content.trim().includes("coding.net")) { // 使用正则表达式提取链接 const urlMatch = content.match(/(https?:\/\/[^\s]+coding\.net[^\s]+)/i) if (urlMatch && urlMatch[1]) { // 使用getCodingContent获取链接内容 const codingContent = await getCodingContent(urlMatch[1]) return { content: [ { type: "text", text: codingContent || `无法从链接获取内容: ${urlMatch[1]}`, }, ], } } } return { content: [ { type: "text", text: content || `未找到名为"${prompt_name}"的提示词`, }, ], } } catch (error) { return { content: [ { type: "text", text: `获取提示词失败: ${error instanceof Error ? error.message : String(error)}`, }, ], } } } ) // 资源: 提供关于如何使用此服务的信息 server.resource("info", "info://usage", async (uri) => ({ contents: [ { uri: uri.href, text: `# RT-Prompt-MCP 使用指南 本服务提供专业的提示词补充功能,可以帮助LLM生成更符合要求的内容。 ## 可用工具 1. get_backend_suggestions: 获取后端开发相关的提示词补充 2. get_frontend_suggestions: 获取前端开发相关的提示词补充 3. get_general_suggestions: 获取通用场景的提示词补充 4. get_ui_design_suggestions: 获取UI设计图转化相关的提示词补充 5. get_rt_crud_suggestions: 获取荣通后端标准 CRUD 开发规范提示词 6. get_feishu_prompt: 从飞书文档获取指定名称的提示词 ## 使用示例 例如,当您需要生成数据库表结构时,可以使用: \`\`\` 使用 get_backend_suggestions 工具,并提供以下参数: - context: "创建用户和订单的数据库表结构" - databaseType: "MySQL" - language: "SQL" \`\`\` 例如,当您需要将UI设计图转化为代码时,可以使用: \`\`\` 使用 get_ui_design_suggestions 工具,并提供以下参数: - context: "将设计图转换为响应式界面" - designType: "高保真原型图" - platform: "Web" \`\`\` 例如,当您需要获取飞书文档中的特定提示词时,可以使用: \`\`\` 使用 get_feishu_prompt 工具,并提供以下参数: - prompt_name: "UI转化提示词" \`\`\` `, }, ], })) // 启动服务器 async function main() { const transport = new StdioServerTransport() await server.connect(transport) } main().catch((error) => { process.exit(1) })

Implementation Reference

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yuyao1999/rt-prompt-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server