使用说明
/prompt
一种模型上下文协议(MCP)服务器,允许人们共享提示和资源。
特性
- 分享提示和资源:在任何支持MCP的工具中使用共享提示和资源
- 由Git支持:直接从公共或私有Git存储库加载提示和资源
- 多存储库支持:支持具有自定义路径和模式的多个存储库
- 参数替换:具有变量替换的动态提示模板
- 嵌入式提示资源:在提示中嵌入资源
快速开始
鼓励
提示是带有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代码进行手动测试
对于本地开发和测试:
- 构建本地Docker镜像:
$ make build-docker - 设置
SLASH_PROMPT_IMAGE使用本地映像的环境变量:$ export SLASH_PROMPT_IMAGE=slash-prompt:development - 这
.mcp.json该文件被配置为使用此环境变量,允许您使用Claude Code使用本地构建进行测试。- 注:由于电流 程序错误 使用Claude Code,您必须内联环境变量:
$ SLASH_PROMPT_IMAGE=slash-prompt:development claude
- 注:由于电流 程序错误 使用Claude Code,您必须内联环境变量:
文档
此项目使用 透明 以帮助保持文档更新。
释放
发布过程由发布脚本自动完成。它必须从 main 分支:
$ ./scripts/release.sh
许可证
该项目根据麻省理工学院开源许可证条款获得许可。请参考 麻省理工学院 完整的条款。
