使用说明
结构MCP服务器(Docker)
一个模型上下文协议(MCP)服务器,它公开 丹尼尔·米斯勒的织物 MCP合规客户的模式和策略。它会自动与上游Fabric存储库同步,允许您在AI工作流程中直接使用其强大的提示。
特性
- 动态同步:每次服务器启动时克隆或更新结构存储库。
- 图案提示:自动为中的每个文件夹创建MCP提示
patterns/. - 智能描述:从每个模式中提取有意义的描述
system.md文件,以帮助LLM了解何时使用每种模式。 - 战略支持:每个提示都包含一个可选
strategy从中添加上下文的参数strategies/.自然语言短语如“with strategy cot”或“using cot strategy”被识别出来。 - 用户输入:每个提示都需要一个
input用户提供的内容(文本、URL等)的参数。 - 执行模式工具:暴露一个
execute_pattern该工具使AI代理可以通过可选策略以编程方式执行任何结构模式。 - 列表模式工具:暴露a
list_patterns该工具使AI代理能够以编程方式发现可用的结构模式。 - 列表策略工具:暴露a
list_strategies发现可用策略及其描述的工具。 - 研究资源:以markdown和PDF格式将研究文档作为MCP资源公开,可通过自定义URI访问(例如。,
markdown://researches/the-prompt-report,pdf://researches/the-prompt-report). - 资源订阅:支持订阅markdown资源更改,在文件被修改时通知客户端。
项目结构
fabric-mcp-server/
├── server.py # Main entry point, MCP server registration
├── Dockerfile
├── pyproject.toml
│
├── helpers/ # Helper utilities package
│ ├── __init__.py # Re-exports all functions
│ ├── _types.py # TypedDict definitions
│ ├── config.py # Configuration constants
│ ├── repo.py # Repository management (sync, clone)
│ ├── paths.py # Directory/path utilities
│ ├── text.py # Text processing utilities
│ ├── patterns.py # Pattern operations
│ ├── strategies.py # Strategy operations
│ └── prompt_builder.py # Prompt construction utilities
│
├── mcp_handlers/ # MCP protocol handlers package
│ ├── __init__.py # Re-exports all handlers
│ ├── tools.py # Tool handlers (list_patterns, execute_pattern, etc.)
│ ├── resources.py # Resource handlers (research documents)
│ └── prompts.py # Prompt handlers (Fabric patterns as prompts)
│
└── resources/
├── markdown/
│ └── researches/ # Markdown research documents exposed as MCP resources
└── pdf/
└── researches/ # PDF research documents exposed as MCP resources
先决条件
- 码头工人 安装并运行。
构建
在本地构建Docker镜像:
docker build -t fabric-mcp-server .
运行服务器
1.手动测试(标准)
要测试服务器是否正确启动并同步存储库,请执行以下操作:
docker run -i fabric-mcp-server
注意:服务器通过stdin/stdout上的JSON-RPC进行通信。您将在stderr上看到日志,并可以通过MCP检查器进行交互。
2.通过MCP网关(克劳德桌面等)访问
将此服务器与网关一起使用,如 克劳德桌面,将以下内容添加到您的 claude_desktop_config.json (通常位于 ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"fabric": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"fabric-mcp-server"
]
}
}
}
3.通过Gemini CLI访问
将此服务器与 Gemini CLI,将以下内容添加到您的 ~/.gemini/settings.json:
{
"mcpServers": {
"fabric": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"fabric-mcp-server"
]
}
}
}
4.使用MCP网关“运行”命令
如果您使用的网关支持通过直接命令字符串运行服务器,请使用:
docker run -i --rm fabric-mcp-server
5.通过Docker MCP网关使用
如果您正在使用 Docker MCP网关 CLI,您可以直接使用以下命令运行此服务器:
docker mcp gateway run fabric-mcp-server
6.全局注册(Docker MCP目录)
使此服务器对所有Docker MCP客户端可见(如 docker mcp CLI)使用中的配置文件 ~/.docker/mcp/:
-
塑造形象:
docker build -t fabric-mcp-server . -
创建本地目录: 创建一个名为的文件
local.yaml在目录目录中(通常~/.docker/mcp/catalogs/local.yaml):version: 3 name: local-catalog displayName: Local Catalog registry: fabric: title: Fabric description: Fabric patterns and strategies type: server image: fabric-mcp-server:latest tools: - execute_pattern - list_patterns - list_strategies - list_research_resources - read_research_resource prompts: [] # One prompt per pattern in the Fabric repository resources: {} metadata: category: productivity tags: - fabric - ai - prompts owner: local -
启用服务器: 编辑注册表文件(通常
~/.docker/mcp/registry.yaml)并添加fabric进入下registry::registry: # ... other servers ... fabric: ref: "" -
验证: 跑
docker mcp list(如果可用)或简单地尝试运行它:docker mcp gateway run fabric
使用MCP检查器进行调试
这 MCP检查员 是一个用于测试和调试MCP服务器的交互式开发工具。它允许您检查资源、测试提示、执行工具和监视服务器通知。
运行检查器
要使用MCP检查器调试此结构MCP服务器,请运行:
npx @modelcontextprotocol/inspector docker run -i --rm fabric-mcp-server
这将在浏览器中启动Inspector UI,连接到在Docker中运行的Fabric MCP服务器。
检查器功能
- 资源选项卡:浏览和检查研究文档(markdown和PDF)
- 提示选项卡:使用自定义输入和策略测试织物图案
- 工具选项卡:执行
list_patterns,list_strategies,execute_pattern,以及研究资源工具 - 通知窗格:监视服务器日志和通知
开发工作流程
- 构建Docker镜像:
docker build -t fabric-mcp-server . - 使用上述命令启动检查器
- 更改服务器代码
- 重建映像并重新连接检查器进行测试
原理
- 初创公司:服务器克隆
https://github.com/danielmiessler/fabric放入容器中。 - 提示:它扫描文件夹,如
extract_wisdom,summarize等等patterns/. - 资源:它扫描
resources/markdown/researches/和resources/pdf/researches/研究文档的文件夹,并将其作为具有自定义URI的MCP资源公开。 - 订阅:客户端可以订阅降价资源更改。服务器监视markdown资源文件夹,并在文件被修改时发送通知(不支持PDF订阅)。
- 执行:
- 当您选择提示时(例如。,
extract_wisdom),它读到system.md文件。 - 如果您提供
strategy(例如。,cot),它获取策略JSON,提取提示内容,以及 前置 将其添加到系统消息中。 - 这
input论证内容为 附加 直到提示的末尾。
- 当您选择提示时(例如。,
- 工具:
- 使用
execute_pattern运行任何包含内容和可选策略的结构模式。 - 使用
list_patterns以发现所有可用的织物图案。 - 使用
list_strategies发现可用的策略及其描述。 - 使用
list_research_resources发现所有可用的研究文件。 - 使用
read_research_resource按名称阅读特定的研究文档(支持人类可读的名称,如“The Prompt Report”和slug,如“The Prompt Report”)。
- 使用
MCP提示、工具和资源
重要提示:在模型上下文协议(MCP)中:
- 提示 是服务器公开的模板,供客户端(您)使用
- 工具 是AI代理可以直接调用的函数
- 资源 是客户端可以读取的数据源(文件、文档)
作为AI代理,LLM主要看到工具。它们可能无法直接看到面向用户的提示(如
analyze_bill_short或youtube_summary)从连接的MCP服务器。这些通常通过客户的UI访问(例如,键入/在您与Claude Desktop的聊天界面中)。这就是为什么我们揭露:
- 提示:对于支持
/命令接口execute_pattern工具:因此,AI代理可以通过自然语言以编程方式运行任何模式list_patterns工具:因此,AI代理可以发现可用的模式list_research_resources工具:因此,人工智能代理可以发现可用的研究文档read_research_resource工具:因此,人工智能代理可以通过自然语言阅读研究文档- 资源:研究文件可通过以下方式访问
markdown://researches/{title}和pdf://researches/{title}统一资源标识符
使用示例
通过客户端UI使用提示
MCP提示可通过客户的UI访问。例如,在Claude Desktop中,键入 / 后面是模式名称:
| 客户端操作 | 结果 |
|---|---|
类型 /create_micro_summary |
通过以下提示调用模式 input (必填)以及 strategy (可选) |
类型 /summarize |
调用摘要模式 |
类型 /extract_wisdom |
调用提取智慧模式 |
通过自然语言使用工具
AI代理可以使用可用的工具来发现和执行模式:
| 自然语言提示 | 工具调用 | 参数 |
|---|---|---|
| “有哪些面料图案可供选择?” | list_patterns |
- |
| “显示可用策略” | list_strategies |
- |
| “有哪些研究文件?” | list_research_resources |
- |
| “列出所有研究论文” | list_research_resources |
- |
| “阅读即时报告研究论文” | read_research_resource |
name="The Prompt Report" 或 name="the-prompt-report" |
| “显示提示报告的内容” | read_research_resource |
name="the-prompt-report", format="markdown" |
| “总结即时报告中的主要发现” | read_research_resource |
name="the-prompt-report" |
| “创建微摘要https://youtu.be/abc123" | execute_pattern |
pattern="create_micro_summary", input="https://youtu.be/abc123" |
| “用strategic cot总结这篇文章:https://example.com/article" | execute_pattern |
pattern="summarize", input="https://example.com/article", strategy="cot" |
| “从这篇文章中提取智慧:[text]” | execute_pattern |
pattern="extract_wisdom", input="[text]", strategy="cot" |
利用资源
MCP资源是服务器公开的数据源。研究文档可以通过自定义URI以markdown和PDF格式提供:
| 资源URI | 描述 |
|---|---|
markdown://researches/the-prompt-report |
提示报告(Markdown格式) |
pdf://researches/the-prompt-report |
即时报告(PDF格式) |
通过客户端UI访问资源
MCP资源的访问方式与Prompts不同。在Gemini CLI中,使用 @ 在聊天中引用和嵌入资源内容的前缀:
| 特性 | 访问方式 | 功能 |
|---|---|---|
| MCP提示 | /<name> |
运行预定义的提示模板 |
| MCP资源 | @<uri> |
获取数据(文件、文档)并将其附加到您的邮件中 |
| 客户端操作 | 结果 |
|---|---|
类型 @fabric:markdown://researches/the-prompt-report |
将markdown研究文档嵌入到您的聊天环境中 |
类型 @fabric:pdf://researches/the-prompt-report |
将PDF研究文档嵌入到您的聊天环境中 |
小贴士:类型 @ 在Gemini CLI中查看来自连接的MCP服务器的所有可用资源的自动完成。
示例用法:
@fabric:markdown://researches/the-prompt-report Summarize the key findings from this research paper
添加新资源
要添加新的研究文档,请执行以下操作:
- 将标记文件放入
resources/markdown/researches/ - 将PDF文件放入
resources/pdf/researches/
文件将根据文件名自动发现并显示一个URL友好的slug。
资源订阅
客户可以订阅 标记语言 修改文件时接收通知的资源更改:
- 订阅:呼叫
resources/subscribe使用markdown资源URI开始接收更改通知 - 退订:呼叫
resources/unsubscribe停止接收通知
当修改订阅的markdown文件时,服务器会发送 notifications/resources/updated 通知客户。
备注:PDF资源不支持订阅。
提示论点
调用提示时(通过 / 命令),您可以提供:
| 参数 | 必填 | 描述 | 示例 |
|---|---|---|---|
input |
是 | 要分析的内容(文本、URL等) | https://youtu.be/abc123 |
strategy |
否 | 加强分析的思维策略 | cot, tot |
小贴士:为了在使用策略时获得最佳效果,请使用以下短语:
- “战略小屋”
- “使用策略tot”
- “应用cot策略”
