Fabric MCP Server
# Fabric MCP Server
Model Context Protocol (MCP) server for [Fabric](https://github.com/danielmiessler/Fabric) - Daniel Miessler's AI-powered content processing framework.
This MCP server allows Claude (via Claude Desktop or Warp CLI) to use Fabric's extensive collection of AI patterns for content analysis, summarization, learning, coding, security analysis, and more.
## Quick Start
1. **Install Fabric** (if not already installed):
See the [official Fabric installation guide](https://github.com/danielmiessler/Fabric#installation) for detailed instructions.
2. **Install yt-dlp** (optional, for YouTube transcripts):
```bash
# macOS
brew install yt-dlp
# Linux/Windows
pip install yt-dlp
```
3. **Download and Install**:
- Download `fabric-mcp.mcpb` from [Releases](https://github.com/mpzarde/fabric-mcp/releases/latest)
- Double-click the file
- Click "Install" in Claude Desktop
- Restart Claude Desktop
4. **Try it**:
Ask Claude: "List all fabric patterns"
## Features
- š **Direct CLI Integration**: Uses Fabric CLI directly (no REST API server needed)
- š§ **19 Pre-configured Tools**: Direct access to commonly-used Fabric patterns plus combined analysis tools
- šÆ **Generic Pattern Runner**: Run any Fabric pattern with `run_fabric_pattern`
- šŗ **YouTube Support**: Fetch video transcripts directly (requires yt-dlp)
- š **Pattern Discovery**: List all available patterns dynamically
- š **File & URL Analysis**: Process files and web content with Fabric patterns
- š„ **Health Check**: Verify dependencies and configuration
## Prerequisites
### 1. Install Fabric
If you don't have Fabric installed, follow the [official Fabric installation guide](https://github.com/danielmiessler/Fabric#installation).
### 2. Install yt-dlp (Optional)
Required only if you want to fetch YouTube transcripts:
```bash
# macOS
brew install yt-dlp
# Linux
pip install yt-dlp
# Or: sudo apt install yt-dlp (on Ubuntu/Debian)
# Windows
pip install yt-dlp
```
### 3. Verify Installation
```bash
# Test Fabric
fabric --version
fabric --listpatterns
# Test yt-dlp (optional)
yt-dlp --version
```
## Installation
### Option 1: Download and Install (Recommended) š
The easiest way to install:
1. **Download** the latest `fabric-mcp.mcpb` from [Releases](https://github.com/mpzarde/fabric-mcp/releases/latest)
2. **Double-click** the downloaded file
3. Claude Desktop will open and prompt you to install
4. Click **Install**
5. **Restart** Claude Desktop
6. Done!
The `.mcpb` file is a self-contained bundle that includes everything needed.
### Option 2: Build from Source
If you want to build from source:
```bash
git clone https://github.com/mpzarde/fabric-mcp.git
cd fabric-mcp
npm install
npm run build
```
Then either:
- **Build the `.mcpb` bundle**: `./build-mcpb.sh` (creates `fabric-mcp.mcpb` you can install)
- **Configure manually**: See Configuration section below for manual setup
## Configuration
### For Claude Desktop
> **Note**: If you installed using the `.mcpb` bundle (Option 1), Claude Desktop configures this automatically. This section is only needed for manual builds.
Add to your Claude Desktop configuration file:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"fabric": {
"command": "node",
"args": ["/absolute/path/to/fabric-mcp/dist/index.js"]
}
}
}
```
**Replace `/absolute/path/to/fabric-mcp/` with your actual project path.**
**Optional environment variables** (if needed):
```json
"env": {
"FABRIC_PATH": "/custom/path/to/fabric",
"YTDLP_PATH": "/custom/path/to/yt-dlp"
}
```
### For Warp CLI
> **Note**: Manual configuration is required for Warp. Build from source or extract the `.mcpb` bundle first.
Add to your Warp MCP configuration file:
**macOS/Linux**: `~/.warp/mcp_config.json`
```json
{
"mcpServers": {
"fabric": {
"command": "node",
"args": ["/absolute/path/to/fabric-mcp/dist/index.js"]
}
}
}
```
**Replace `/absolute/path/to/fabric-mcp/` with your actual project path.**
**Optional environment variables** (if needed):
```json
"env": {
"FABRIC_PATH": "/custom/path/to/fabric",
"YTDLP_PATH": "/custom/path/to/yt-dlp"
}
```
### Restart Claude/Warp
After configuration:
- **Claude Desktop**: Restart the application
- **Warp**: Restart the terminal or run `warp mcp reload`
## Available Tools
### Core Tools
1. **`health_check`** - Check if Fabric, yt-dlp, and other dependencies are installed and configured
2. **`list_fabric_patterns`** - List all available Fabric patterns
3. **`run_fabric_pattern`** - Run any Fabric pattern with custom input
4. **`get_youtube_transcript`** - Fetch transcript from YouTube video
### Combined Analysis Tools
These tools streamline common workflows by fetching content and applying patterns in one step. Benefits:
- ā
**No truncation**: Complete content is passed directly to Fabric
- ā
**More efficient**: Single tool call instead of multiple
- ā
**Better results**: Fabric processes the full content without context window limits
1. **`analyze_youtube_video`** - Fetch YouTube transcript and apply a pattern in one step
2. **`analyze_file`** - Read a file and apply a pattern in one step
3. **`analyze_url`** - Fetch URL content and apply a pattern in one step
### Pre-configured Pattern Tools
These patterns are exposed as dedicated tools with the `fabric_` prefix:
#### Content Analysis
- `fabric_extract_wisdom` - Extract key insights and quotes from content
- `fabric_summarize` - Create concise summaries
- `fabric_analyze_claims` - Analyze and fact-check claims
- `fabric_analyze_paper` - Analyze academic papers
#### Learning
- `fabric_create_quiz` - Generate quiz questions
- `fabric_to_flashcards` - Convert content to flashcards
#### Development
- `fabric_summarize_git_diff` - Summarize git diffs for reviews
- `fabric_create_coding_project` - Generate project structure from ideas
- `fabric_explain_code` - Explain code in simple terms
#### Security & Operations
- `fabric_analyze_logs` - Analyze log files
- `fabric_analyze_incident` - Analyze security incidents
#### Writing
- `fabric_improve_writing` - Improve writing quality
## Usage Examples
### With Claude Desktop
**Extract wisdom from a YouTube video:**
```
User: Can you extract the key insights from this video?
https://www.youtube.com/watch?v=dQw4w9WgXcQ
Claude: [Uses get_youtube_transcript + fabric_extract_wisdom]
```
**Summarize an article:**
```
User: Summarize this article: [paste article text]
Claude: [Uses fabric_summarize]
```
**Create flashcards from lecture notes:**
```
User: Convert these lecture notes into flashcards: [paste notes]
Claude: [Uses fabric_to_flashcards]
```
**Analyze a git diff:**
```
User: Review this git diff and summarize the changes:
[paste git diff output]
Claude: [Uses fabric_summarize_git_diff]
```
### Combined Analysis Tools
For efficiency, use the combined tools that fetch and analyze in one step:
```
User: Extract wisdom from this YouTube video:
https://www.youtube.com/watch?v=example
Claude: [Uses analyze_youtube_video with pattern='extract_wisdom']
```
```
User: Summarize this article:
https://example.com/article
Claude: [Uses analyze_url with pattern='summarize']
```
```
User: Explain the code in /path/to/script.py
Claude: [Uses analyze_file with pattern='explain_code']
```
### Chaining Patterns
Claude can chain multiple patterns together:
```
User: Get the transcript from this video, extract the wisdom,
then create flashcards from it.
https://www.youtube.com/watch?v=example
Claude:
[1. Uses get_youtube_transcript]
[2. Uses fabric_extract_wisdom on transcript]
[3. Uses fabric_to_flashcards on extracted wisdom]
```
## Use Cases
Based on Daniel Miessler's Fabric patterns:
### Content Processing
- YouTube video ā extract wisdom / summarize
- Article / blog post ā summarize, analyze claims
- Podcast transcript ā extract wisdom, pull quotes
### Writing & Development
- Idea ā essay (via `create_coding_project` or similar patterns)
- Code diff ā PR description (via `summarize_git_diff`)
- Meeting notes ā user stories (via `run_fabric_pattern` with `agility_story`)
### Learning
- Any content ā flashcards (via `to_flashcards`)
- Dense docs ā glossary with analogies
- Video/article ā quiz (via `create_quiz`)
### Security Analysis
- Malware samples ā analysis (via `analyze_malware`)
- Log files ā threat interpretation (via `analyze_logs`)
- Security scans ā rules (via `run_fabric_pattern`)
## Troubleshooting
### Check server health
Ask Claude: "Run a health check" - this will verify:
- Fabric installation and version
- Fabric configuration (API keys, patterns)
- yt-dlp installation (for YouTube support)
- Provide installation instructions if anything is missing
### Common Issues
#### Fabric not found
**Error**: `Failed to spawn fabric: ENOENT`
**Solutions**:
1. Install Fabric following the [official installation guide](https://github.com/danielmiessler/Fabric#installation)
2. Verify installation: `which fabric` and `fabric --version`
3. If using a custom Fabric location, set `FABRIC_PATH` in your MCP config
#### Pattern not found
**Error**: `Pattern not found: pattern_name`
**Solutions**:
1. Ask Claude to list all patterns: "List all fabric patterns"
2. Update patterns: `fabric --updatepatterns`
3. Check spelling - use underscores (e.g., `extract_wisdom` not `extractWisdom`)
#### YouTube transcripts not working
**Error**: `Failed to fetch YouTube transcript`
**Solutions**:
1. Install yt-dlp: `brew install yt-dlp` (macOS) or `pip install yt-dlp`
2. Verify: `yt-dlp --version`
3. If using custom location, set `YTDLP_PATH` in your MCP config
#### MCP server not appearing in Claude
**Solutions**:
1. Verify config file location:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%/Claude/claude_desktop_config.json`
2. Check JSON syntax with a validator
3. Ensure path to `dist/index.js` is absolute
4. Restart Claude Desktop completely
5. Check logs: `~/Library/Logs/Claude/mcp-server-fabric.log`
#### Pattern execution timeout
**Error**: `Fabric command timed out`
**Solutions**:
- Large patterns may take time (default: 5 minutes)
- Check your Fabric API keys and quota
- Try with a smaller input first
## Development
### Build
```bash
# Build TypeScript only
npm run build
# Build complete .mcpb bundle
./build-mcpb.sh
```
### Watch mode
```bash
npm run watch
```
### Testing locally
```bash
# Build the project
npm run build
# Test the MCP server
node dist/index.js
# Server will run on stdio and wait for MCP protocol messages
# Or use the health check to verify dependencies
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"health_check","arguments":{}}}' | node dist/index.js
```
## Architecture
```
āāāāāāāāāāāāāāāāāāā
ā Claude/Warp ā
āāāāāāāāāā¬āāāāāāāāā
ā MCP Protocol (stdio)
ā¼
āāāāāāāāāāāāāāāāāāā
ā MCP Server ā ā This project
ā (Node.js) ā
āāāāāāāāāā¬āāāāāāāāā
ā Direct CLI calls
ā¼
āāāāāāāāāāāāāāāāāāā
ā Fabric CLI ā
ā (fabric cmd) ā
āāāāāāāāāā¬āāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāā
ā AI Patterns ā
ā OpenAI/etc. ā
āāāāāāāāāāāāāāāāāāā
```
The MCP server:
1. Exposes Fabric patterns as MCP tools
2. Calls Fabric CLI directly with pattern names and input
3. Returns results back to Claude/Warp
4. No REST API server needed - uses CLI interface
## Resources
- **Fabric**: https://github.com/danielmiessler/Fabric
- **yt-dlp**: https://github.com/yt-dlp/yt-dlp
- **MCP Documentation**: https://modelcontextprotocol.io
- **MCP SDK**: https://github.com/modelcontextprotocol/typescript-sdk
## License
MIT
## Contributing
Contributions welcome! Please open an issue or PR.
## Credits
- **Fabric** by [Daniel Miessler](https://github.com/danielmiessler)
- **MCP** by [Anthropic](https://www.anthropic.com)
TDQS
Scored across 19 tools
Each tool has a clear primary purpose, but run_fabric_pattern overlaps with the specific fabric_* tools, and analyze_youtube_video duplicates the combination of get_youtube_transcript and a pattern. These overlaps are mostly resolved by explicit guidance, leaving minor ambiguity.
Naming is mixed: some tools use the fabric_ prefix (fabric_create_coding_project, fabric_summarize) while others do not (health_check, analyze_file). Verbs are clear and readable, but the lack of a uniform prefix or verb-object structure across all tools makes the set less predictable.
With 19 tools, the server is slightly heavy. Many specific fabric_* pattern wrappers could be handled by the generic run_fabric_pattern, making the count feel padded. However, the wide range of content analysis tasks justifies the number to some extent.
The generic run_fabric_pattern ensures any Fabric pattern can be executed, covering missing specific patterns. Health check and list_fabric_patterns support the operational lifecycle, and content ingestion via transcript, file, and URL is comprehensive. No obvious dead ends exist.