/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 环境变量。
看 查看可用图像列表。
主机应用程序
安装因主机应用程序而异。请参阅特定主机应用程序的最新文档。
克劳德代码
使用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-documentationMCP资源
资源可通过MCP资源系统获得。资源URI遵循模式 file:/// 示例: 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 testE2E测试
运行端到端测试:
$ 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文档
此项目使用 透明 以帮助保持文档更新。
释放
发布过程由发布脚本自动完成。它必须从 main 分支:
$ ./scripts/release.sh许可证
该项目根据麻省理工学院开源许可证条款获得许可。请参考 麻省理工学院 完整的条款。
