提示共享服务器

一个基于Git的提示和资源共享服务器,支持动态模板和嵌入式资源管理。

  • by appgardenstudios
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 appgardenstudios/slash-prompt

使用说明

/prompt

一种模型上下文协议(MCP)服务器,允许人们共享提示和资源。

特性

  • 分享提示和资源:在任何支持MCP的工具中使用共享提示和资源
  • 由Git支持:直接从公共或私有Git存储库加载提示和资源
  • 多存储库支持:支持具有自定义路径和模式的多个存储库
  • 参数替换:具有变量替换的动态提示模板
  • 嵌入式提示资源:在提示中嵌入资源

快速开始

  1. 使用以下命令创建git存储库 鼓励 以及资源。
  2. 创建一个 配置文件.
  3. 安装 MCP服务器。
  4. 开始 使用 /prompt 与你的AI助手。

鼓励

提示是带有YAML frontmatter的Markdown文件。例子:

---
name: load-documentation
description: Use hyaline to load relevant documentation into context
arguments:
  - name: task
    description: A description of the task being performed
    required: true
resources:
  - path: ../resources/documentation-summary.template.md
    name: documentation-summary-template
---

Based on the following task, use the hyaline MCP server to get relevant documentation.

Task: ${task}

Use the provided documentation-summary-template to summarize the documentation that was retrieved.

前线战场

YAML frontmatter支持以下字段:

  • name (string,可选):提示的名称。默认为不带扩展名的文件名。
  • description (string,可选):提示功能的描述。
  • arguments (array,可选):提示接受的参数。
    • name (字符串,必填):参数名称。
    • description (字符串,可选):参数描述。
    • required (boolean,可选):参数是否为必填项。默认为 false.
  • resources (array,可选):要嵌入提示中的资源。
    • path (string,必填):资源文件的路径(相对于提示文件)。
    • name (字符串,可选):资源名称。默认为文件名。
    • mimeType (string,可选):MIME类型。如果未指定,则自动检测。

配置

/prompt 由YAML文件配置。例子:

repos:
  - repo: https://github.com/appgardenstudios/hyaline.git
    id: hyaline
    ref: main
    prompts:
      include:
        - "contributing/prompts/**/*.md"
      exclude:
        - "contributing/prompts/resources/**/*"
    resources:
      include:
        - "contributing/prompts/resources/**/*.template.md"

配置选项

  • repos (array,必填):要从中加载提示和资源的一个或多个存储库的列表。
    • repo (字符串,必填):Git存储库URL(仅限HTTPS)。
    • id (字符串,可选):存储库的唯一标识符。必须与正则表达式匹配 ^[A-Za-z0-9_-]+$。默认为存储库名称。
    • ref (string,可选):Git分支、标记或提交使用。强烈建议使用提交哈希来减轻供应链攻击。默认为存储库的默认分支。
    • auth (object,可选):私有存储库的身份验证配置。
      • username (string,如果指定了auth,则为必填项):用于身份验证的用户名。
      • password (字符串,如果指定了auth,则为必填项):密码或个人访问令牌。
    • prompts (对象,可选):提示文件的配置。
      • include (数组,可选):要包含的文件的全局模式。默认为 ["**/*.md"].
      • exclude (数组,可选):要排除的文件的全局模式。
    • resources (对象,可选):资源文件的配置。
      • include (数组,可选):要包含的文件的全局模式。默认为 ["**/*.md"].
      • exclude (数组,可选):要排除的文件的全局模式。

笔记:

  • Glob模式匹配由 双星.
  • 对于私有存储库,创建 个人访问令牌 具有只读权限,并将其作为 password.
  • 由于难以使用SSH密钥实现细粒度访问控制,因此不支持SSH身份验证。如果您认为应该添加SSH支持,请 联系.

环境变量替换

配置文件支持使用环境变量替换 ${VARIABLE_NAME} 语法。这允许您将凭据等敏感信息保留在配置文件之外。

例子:

repos:
  - repo: https://github.com/appgardenstudios/hyaline.git
    id: hyaline
    ref: main
      username: ${SLASH_PROMPT_USERNAME}
      password: ${SLASH_PROMPT_PASSWORD}
    prompts:
      path: contributing/prompts
      include:
        - "**/*.md"
      exclude:
        - "resources/**/*"

安装

码头工人

MCP服务器在STDIO上作为docker容器运行,因此docker是先决条件。运行docker容器时,必须挂载配置文件。

例子:

$ docker run -i --rm -v ./prompt.yml:/home/appuser/.prompt.yml:ro ghcr.io/appgardenstudios/slash-prompt:latest

已装载配置文件的默认位置为 /home/appuser/.prompt.yml;但是,可以通过提供 SLASH_PROMPT_CONFIG_PATH 环境变量。

看 https://github.com/appgardenstudios/slash-prompt/pkgs/container/slash-prompt 查看可用图像列表。

主机应用程序

安装因主机应用程序而异。请参阅特定主机应用程序的最新文档。

克劳德代码

使用Claude Code CLI安装MCP服务器:

claude mcp add prompt -- docker run -i --rm -v ./prompt.yml:/home/appuser/.prompt.yml:ro ghcr.io/appgardenstudios/slash-prompt:latest

克劳德桌面

将以下配置添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "prompt": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-v", "./prompt.yml:/home/appuser/.prompt.yml:ro",
        "ghcr.io/appgardenstudios/slash-prompt:latest"
      ]
    }
  }
}

用法

MCP工具

以下MCP工具可用:

  • listErrors:列出启动过程中发生的所有加载错误
  • listResources:列出所有可用资源,可选择按存储库筛选
    • repo (可选):存储库筛选器
  • getResource:通过URI获取特定资源
    • resource_uri (必需):完全限定的资源URI。请参阅 MCP资源

MCP提示

宿主应用程序以不同的方式公开提示。请参阅特定主机应用程序的最新文档。

提示可以按名称(当它们是唯一的时)或使用存储库ID前缀访问:

  • generate-spec -访问“生成规范”提示
  • hyaline:analyze -专门从“透明”存储库访问“分析”提示

在克劳德代码中:

/prompt:load-documentation

MCP资源

资源可通过MCP资源系统获得。资源URI遵循模式 file://<repo-id>/<path-to-resource>示例: file://hyaline/contributing/resources/documentation-summary.template.md

引用的资源 提示文件 会自动嵌入提示中。也可以使用提供的 资源工具.

宿主应用程序以不同的方式公开提示。请参阅特定主机应用程序的最新文档。

在克劳德代码中:

@prompt:file://hyaline/contributing/prompts/resources/spec.template.md

发展

先决条件

  • 转到1.24.4或更高版本
  • Git
  • Docker(可选)

建筑

构建Docker镜像:

$ make build-docker

测试

单元测试

运行单元测试:

$ make test

E2E测试

运行端到端测试:

$ make e2e

更新E2E黄金文件:

$ make e2e-update

使用Claude代码进行手动测试

对于本地开发和测试:

  1. 构建本地Docker镜像:
    $ make build-docker
    
  2. 设置 SLASH_PROMPT_IMAGE 使用本地映像的环境变量:
    $ export SLASH_PROMPT_IMAGE=slash-prompt:development
    
  3. 这 .mcp.json 该文件被配置为使用此环境变量,允许您使用Claude Code使用本地构建进行测试。
    • 注:由于电流 程序错误 使用Claude Code,您必须内联环境变量:
      $ SLASH_PROMPT_IMAGE=slash-prompt:development claude
      

文档

此项目使用 透明 以帮助保持文档更新。

释放

发布过程由发布脚本自动完成。它必须从 main 分支:

$ ./scripts/release.sh

许可证

该项目根据麻省理工学院开源许可证条款获得许可。请参考 麻省理工学院 完整的条款。

支持