A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
MCP server to read, write, find, and list across filesystems & web; includes webpage-to-Markdown, image processing, diff

The purr-fect MCP server for feline-fast file operations, web prowling, and data hunting! 🐾
A sleek Model Context Protocol server that helps your AI assistant navigate the digital jungle with cat-like agility.
We're excited to announce the first stable release of conduit-mcp! This production-ready MCP server brings powerful file system operations, web content processing, and advanced search capabilities to your AI assistant.
conduit-mcp is like having a highly trained data-hunting cat that can:
Unlike those lazy house cats, this server works 24/7 and never knocks things off your desk! 😸
Just tell your MCP client about your new digital pet:
{
"mcpServers": {
"conduit": {
"command": "npx",
"args": ["-y", "@steipete/conduit-mcp@beta"],
"env": {
"CONDUIT_ALLOWED_PATHS": "~/Documents:~/Projects:/tmp",
"LOG_LEVEL": "INFO"
}
}
}
}
git clone <repository_url>
cd conduit-mcp
pnpm install
# Configure your MCP client to use ./start.sh
Your digital cat needs to know where it's allowed to roam! Configure the CONDUIT_ALLOWED_PATHS environment variable:
# Let your cat explore Documents and Projects
CONDUIT_ALLOWED_PATHS="~/Documents:~/Projects"
# Default playground (if you don't specify)
# Your cat defaults to: "~:/tmp"
# (Don't worry, it'll meow about this the first time!)
🚨 Security Notice: Your cat is well-trained and won't venture outside its allowed territories. It also follows all symlinks to ensure no sneaky escapes!
read Tool - Master Detective CatYour cat can investigate files and URLs with three different specialties:
operation: "content")Read and process content from files or URLs in various formats.
{
"tool": "read",
"operation": "content",
"sources": ["~/Documents/important.txt", "https://example.com/article"],
"format": "text"
}
Format Options:
"text" - Read as plain text (default for text files)"base64" - Binary-safe encoding (default for images/binaries)"markdown" - Web pages get the full spa treatment! 🧖♀️"checksum" - Generate cryptographic fingerprintsParameters:
sources: string[] (Required) - Array of file paths or URLsformat?: string (Optional) - Output formatchecksum_algorithm?: string (Optional) - "md5" | "sha1" | "sha256" | "sha512"offset?: integer (Optional) - Byte offset to start reading fromlength?: integer (Optional) - Number of bytes to readSpecial Powers:
offset and lengthoperation: "metadata")Get detailed information about files or URLs without reading their content.
{
"tool": "read",
"operation": "metadata",
"sources": ["~/Documents/mystery_file.pdf"]
}
Returns: File size, MIME type, timestamps, permissions, HTTP headers (for URLs), and more!
operation: "diff")Compare two files and see exactly what changed.
{
"tool": "read",
"operation": "diff",
"sources": ["~/file1.txt", "~/file2.txt"],
"diff_format": "unified"
}
Parameters:
sources: string[2] (Required) - Exactly two file pathsdiff_format?: string (Optional) - Currently supports "unified"write Tool - Master Builder CatYour cat can modify the file system with surgical precision through various operations:
operation: "put")Write content to files with different encoding and write modes.
{
"tool": "write",
"operation": "put",
"entries": [
{
"path": "~/Documents/new_file.txt",
"content": "Hello from your digital cat! 🐱",
"write_mode": "overwrite",
"input_encoding": "text"
}
]
}
Parameters for put:
path: string (Required) - Target file pathcontent: string (Required) - Content to writeinput_encoding?: "text" | "base64" (Optional, default: "text")write_mode?: "overwrite" | "append" | "error_if_exists" (Optional, default: "overwrite")operation: "mkdir")Create directories with optional recursive creation.
{
"tool": "write",
"operation": "mkdir",
"entries": [
{
"path": "~/Documents/new_folder/subfolder",
"recursive": true
}
]
}
operation: "copy" | "move" | "delete")Copy, move, or delete files and directories.
{
"tool": "write",
"operation": "copy",
"entries": [
{
"source_path": "~/file.txt",
"destination_path": "~/backup/"
}
]
}
Available Operations:
"put" - Write files (text or base64)"mkdir" - Create directories (with recursive option)"copy" - Duplicate files/folders"move" - Relocate and rename"delete" - Remove files/folders (with recursive for directories)"touch" - Update timestamps or create empty filesCreate and extract archives in multiple formats.
Create Archive (operation: "archive"):
{
"tool": "write",
"operation": "archive",
"source_paths": ["~/Documents/folder1", "~/Documents/file1.txt"],
"archive_path": "~/backup.zip",
"format": "zip",
"recursive_source_listing": true
}
Extract Archive (operation: "unarchive"):
{
"tool": "write",
"operation": "unarchive",
"archive_path": "~/backup.zip",
"destination_path": "~/restored/",
"format": "zip"
}
Archive Formats: ZIP, TAR.GZ, TGZ - your cat handles them all!
list Tool - Inventory Catoperation: "entries")Explore directory structures with recursive capabilities.
{
"tool": "list",
"operation": "entries",
"path": "~/Documents",
"recursive_depth": 2,
"calculate_recursive_size": true
}
Parameters:
path: string (Required) - Directory to listrecursive_depth?: integer (Optional, default: 0) - How deep to recursecalculate_recursive_size?: boolean (Optional, default: false) - Calculate total size of directoriesSpecial Features:
operation: "system_info")Get information about the server and file system.
{
"tool": "list",
"operation": "system_info",
"info_type": "server_capabilities"
}
Info Types:
"server_capabilities" - Server version, configuration, supported features"filesystem_stats" - File system statistics for a given pathfind Tool - Master Detective CatYour cat can hunt down files and directories using sophisticated search criteria. All search parameters are specified directly for simplicity and Claude-friendliness.
{
"tool": "find",
"operation": "search",
"path": "~/Documents",
"recursive": true,
"name_pattern": "*.{pdf,doc,docx}",
"size_min": 1048576,
"entry_type": "file"
}
Parameters:
operation: string (Required) - Must be "search"path: string (Required) - Starting directoryrecursive?: boolean (Optional, default: true) - Search subdirectoriesname_pattern?: string (Optional) - Glob pattern for file/directory namescase_sensitive?: boolean (Optional, default: false) - Case sensitivity for name matchingcontent_pattern?: string (Optional) - Text or regex pattern to search in file contentscontent_is_regex?: boolean (Optional, default: false) - Treat content_pattern as regexcontent_case_sensitive?: boolean (Optional, default: false) - Case sensitivity for content searchfile_extensions?: string[] (Optional) - Limit content search to specific file typessize_min?: integer (Optional) - Minimum file size in bytessize_max?: integer (Optional) - Maximum file size in bytesmodified_after?: string (Optional) - ISO 8601 datetime stringmodified_before?: string (Optional) - ISO 8601 datetime stringcreated_after?: string (Optional) - ISO 8601 datetime stringcreated_before?: string (Optional) - ISO 8601 datetime stringentry_type?: "file" | "directory" | "any" (Optional) - Filter by entry typemime_type?: string (Optional) - Filter by MIME typemax_results?: integer (Optional) - Limit number of resultsFind large PDF files:
{
"tool": "find",
"operation": "search",
"path": "~/Documents",
"name_pattern": "*.pdf",
"size_min": 1048576
}
Search for TODO comments in code:
{
"tool": "find",
"operation": "search",
"path": "~/Projects",
"content_pattern": "TODO|FIXME",
"content_is_regex": true,
"content_case_sensitive": false,
"file_extensions": [".js", ".ts", ".py"]
}
Find recently modified files:
{
"tool": "find",
"operation": "search",
"path": "~/Documents",
"modified_after": "2023-01-01T00:00:00Z",
"entry_type": "file"
}
Search Superpowers:
*.txt, image[0-9]?.png, **/logs/*.logtest Tool - Quality Assurance CatA debugging tool for testing the MCP server functionality.
{
"tool": "test",
"operation": "echo",
"params_to_echo": { "message": "Hello, world!" }
}
Operations:
"echo" - Echo back provided parameters for testing"generate_error" - Generate specific error codes for testing error handlingYour digital cat responds to these environment variables:
# Territory boundaries (IMPORTANT!)
CONDUIT_ALLOWED_PATHS="~/Documents:~/Projects:/tmp"
# Logging (where your cat writes its diary)
LOG_LEVEL="INFO" # TRACE, DEBUG, INFO, WARN, ERROR, FATAL
CONDUIT_LOG_FILE_PATH="/tmp/conduit-mcp.log" # or "NONE" to disable
# Resource limits (keep your cat well-behaved)
CONDUIT_MAX_PAYLOAD_SIZE_BYTES="10485760" # 10MB max incoming requests
CONDUIT_MAX_FILE_READ_BYTES="52428800" # 50MB max file reads
CONDUIT_MAX_FILE_READ_BYTES_FIND="524288" # 512KB max for find content search
CONDUIT_MAX_URL_DOWNLOAD_SIZE_BYTES="20971520" # 20MB max downloads
CONDUIT_HTTP_TIMEOUT_MS="30000" # 30 second timeouts
# Image compression (make photos diet-friendly)
CONDUIT_IMAGE_COMPRESSION_THRESHOLD_BYTES="1048576" # 1MB threshold
CONDUIT_IMAGE_COMPRESSION_QUALITY="75" # Quality 1-100
# Search and recursion limits
CONDUIT_MAX_RECURSIVE_DEPTH="10" # How deep to explore
CONDUIT_RECURSIVE_SIZE_TIMEOUT_MS="60000" # 60 second timeout
# Default checksum algorithm
CONDUIT_DEFAULT_CHECKSUM_ALGORITHM="sha256" # md5, sha1, sha256, sha512
When you ask for Markdown from a URL, your cat:
For non-HTML content, it gracefully falls back to raw text with helpful notes.
Large images automatically get compressed using Sharp:
Your cat is security-conscious:
Efficiency expert! Process multiple files in a single request:
{
"tool": "write",
"operation": "copy",
"entries": [
{ "source_path": "~/file1.txt", "destination_path": "~/backup/" },
{ "source_path": "~/file2.txt", "destination_path": "~/backup/" },
{ "source_path": "~/folder1", "destination_path": "~/backup/" }
]
}
When using default paths (~:/tmp), your cat will politely inform you on the first successful operation with details about the configuration. It's like a friendly meow saying "Hi! Here's where I'm allowed to play!"
Your cat is well-mannered and provides detailed error information:
{
"status": "error",
"error_code": "ERR_FS_ACCESS_DENIED",
"error_message": "Cannot access path outside allowed directories: /forbidden/path"
}
Common Error Categories:
ERR_FS_* - File system issuesERR_HTTP_* - Web request problemsERR_INVALID_PARAMETER - Bad input dataERR_RESOURCE_LIMIT_EXCEEDED - Size/timeout limits hitERR_ARCHIVE_* - Archive operation failuresERR_MARKDOWN_* - Web content processing issuespnpm test # Run all tests
pnpm run coverage # With coverage report
pnpm run test:e2e # End-to-end tests
pnpm run build # Compile TypeScript
pnpm run dev # Development mode with auto-reload
pnpm run lint # Check code style
pnpm run format # Auto-format code
We love contributions! Please:
git checkout -b feature/amazing-cat-feature)We use conventional commits:
feat: add new search criteria type
fix: resolve symlink resolution bug
docs: update README with new examples
test: add integration tests for archive operations
This project is licensed under the MIT License - see the LICENSE file for details.
Perfect for AI assistants that need to:
/docs/spec.md)Happy hunting! 🐾
Your digital cat is ready to pounce on any data challenge you throw at it!
MCP server integration for DaVinci Resolve Studio
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba