提示模板服务器

一个用于管理和提供可定制提示模板的MCP服务器,支持动态加载模板、YAML配置和运行时参数替换,适用于会议分析、内容摘要和博客创作等多种任务。

  • by tubone24
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 tubone24/mcp-prompts

使用说明

MCP提示模板服务器

一种模型上下文协议(MCP)服务器,提供“提示”原语,用于管理和提供可定制的提示模板。此服务器允许您创建、组织和提供提示模板,MCP客户端可以使用这些模板执行各种任务,如会议分析、内容摘要和博客文章创建。

特性

  • 动态模板加载:从自动加载提示模板 templates 目录
  • YAML配置:每个模板都使用YAML进行配置,使定义元数据和参数变得容易
  • 论据支持:模板支持可以在运行时替换的动态参数
  • 资源管理:提供对Markdown资源的访问 resources 通过MCP资源基元目录
  • 类型安全实施:使用TypeScript构建,以提高可靠性和开发人员体验
  • 标准MCP提示:实现MCP提示原语,使其与任何MCP客户端兼容
  • 标准MCP资源:实现用于访问静态内容和文档的MCP资源原语

演示

此MCP服务器提供可直接在Claude Desktop中使用的“提示”。其工作原理如下:

1.查看可用提示

配置MCP服务器后,您可以通过单击Claude中的“+”图标查看可用提示列表:

服务器从动态加载所有模板 templates 目录,并将其作为提示提供。

2.使用提示

选择一个提示(例如。, today_city_weather_forecast)查看其必需的参数:

填写必填字段:

  • 城市:输入城市名称(例如,“川崎”代表川崎)
  • 日期:输入预测日期(例如“2025-06-02”)

3.迅速执行

After clicking "添加提示:

服务器将模板中的占位符替换为您提供的值,并返回格式化的提示。

4.克劳德的回应

然后,Claude处理生成的提示,并根据模板的指令提供响应:

在此示例中,Claude分析天气数据,并按照模板中定义的格式提供指定城市和日期的详细天气预报。

安装

npm install

快速开始

  1. 构建项目:

    npm run build
    
  2. 启动服务器:

    npm start
    

对于热重载开发:

npm run dev

DXT包分发

此服务器也可以作为DXT(桌面扩展)包分发,以便在Claude Desktop中一键安装。

构建DXT包

  1. 验证DXT配置:

    npm run dxt:validate
    
  2. 构建DXT包:

    npm run dxt:build
    
  3. 创建.dxt文件:

    npm run dxt:package
    

决赛 .dxt 文件将在 dist-dxt 目录,可以分发以便于安装。

安装DXT软件包

  1. 打开克劳德桌面
  2. 前往“设置”>“扩展”
  3. 点击“安装扩展”并选择 .dxt 文件
  4. MCP服务器将自动配置并准备使用

创建模板

模板按以下方式组织 templates 目录。每个模板都需要:

  • 具有描述性名称的目录(例如。, business_team_minutes_template)
  • A. config.yaml 定义元数据和参数的文件
  • A. template.md 包含提示模板的文件

模板结构

templates/
└── your_custom_template/
    ├── config.yaml
    └── template.md

配置格式(config.yaml)

description: "A detailed description of what this template does"
version: "1.0"
arguments:
  - name: "argument_name"
    description: "Description of this argument"
    required: true
  - name: "optional_argument"
    description: "This argument is optional"
    required: false
metadata:
  tags:
    - tag1
    - tag2
  suggested_use: "When and how to use this template"
  output_format: "markdown"

模板格式(Template.md)

模板使用芥末风格的占位符作为参数:

# My Template

Date: {{ date }}
Title: {{ title }}

Content that uses the arguments provided by the user.
{{ main_content }}

MCP服务器配置

要将此服务器与MCP客户端一起使用,请将其添加到MCP设置配置中。

适用于克劳德桌面

添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "prompt-templates": {
      "command": "node",
      "args": ["/path/to/mcp-prompt-templates-ts/dist/server.js"]
    }
  }
}

为了发展

在开发过程中,您可以直接使用tsx:

{
  "mcpServers": {
    "prompt-templates": {
      "command": "npx",
      "args": ["tsx", "/path/to/mcp-prompt-templates-ts/src/server.ts"]
    }
  }
}

发展

项目结构

mcp-prompt-templates-ts/
├── src/
│   ├── server.ts    # Main MCP server implementation
│   └── client.ts    # Test client for development
├── templates/       # Prompt templates directory
├── resources/       # Static Markdown resources directory
├── dist/           # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md

添加新模板

  1. 在中创建新目录 templates/
  2. 添加a config.yaml 包含模板配置的文件
  3. 添加a template.md 带有提示模板的文件
  4. 重新启动服务器以加载新模板

管理资源

资源提供了一种通过MCP资源原语提供静态Markdown内容的方法。这些可以是文档、指南或MCP客户可以访问的任何参考资料。

资源结构

资源以Markdown文件的形式存储在 resources 目录:

resources/
├── user-guide.md
├── api-documentation.md
└── troubleshooting-guide.md

资源格式

每个资源都是一个标准的Markdown文件。第一行可以选择以开头 # 以提供描述:

# User Guide for Template Management

This guide explains how to create and manage prompt templates...

## Section 1
Content here...

添加资源

  1. 创建一个 .md 文件在 resources/ 目录
  2. 添加您的Markdown内容
  3. 可选地以a开头 # 前往资源描述
  4. 重新启动服务器以加载新资源

访问资源

资源通过MCP资源原语自动公开,URI如下 resource://filename (没有 .md 扩展)。MCP客户端可以使用标准的MCP资源操作列出和读取这些资源。

api参考

此服务器使用以下处理程序实现MCP提示和资源原语:

提示API

列表提示

返回所有可用的提示模板及其元数据。

获取提示

检索特定的提示模板,并用提供的值替换参数。

参数:

  • name:模板名称(目录名)
  • arguments:包含要替换的参数值的对象

资源API

列出资源

从返回所有可用资源 resources 目录。

答复:

  • 资源对象数组 uri, name, description,以及 mimeType

读取资源

检索特定资源的内容。

参数:

  • uri:资源URI(例如。, resource://filename)

答复:

  • 资源内容为带有元数据的文本

许可证

MIT许可证-有关详细信息,请参阅许可证文件

故障排除

服务器未加载模板

  • 确保模板目录存在并包含有效的子目录
  • 检查每个模板是否都有 config.yaml 和 template.md 文件
  • 验证配置文件中的YAML语法

模板参数不替换

  • 确保模板中的参数名称与config.yaml中定义的名称匹配
  • 使用正确的占位符语法: {{ argument_name }}
  • 检查调用提示符时是否提供了必需的参数

支持

有关问题、疑问或贡献,请访问 GitHub存储库.