atman-33/mcp-swissknife
If you are the rightful owner of mcp-swissknife and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
MCP Swiss Knife is a versatile Model Context Protocol server designed to provide utility tools for AI assistants, built with TypeScript and adhering to MCP protocol standards.
MCP Swiss Knife
A multi-purpose Model Context Protocol server providing utility tools for AI assistants. Built with TypeScript and following MCP protocol standards.
Features
MCP Swiss Knife provides a modular collection of tools organized into focused modules:
- datetime: Date and time utilities
- gemini-web-search: AI-powered web search using Gemini with WebSearch capability
- obsidian: Obsidian vault integration for note management
- software-docgen: Documentation generation helpers
- web-fetch: Web content fetching, extraction, and processing
Installation
Global Installation
npm install -g mcp-swissknife
Using npx (No Installation Required)
You can run MCP Swiss Knife directly without installation using npx:
npx mcp-swissknife
This is the recommended approach for MCP configurations as it ensures you're always using the latest version.
Optional Dependencies
Gemini CLI (for gemini-web-search module)
To use the Gemini web search functionality, you need to install and configure the Gemini CLI:
- Install the Gemini CLI tool
- Configure it with your API key
- Ensure it's available in your PATH
If the Gemini CLI is not available, the gemini-web-search module will be automatically disabled.
Usage
Basic Usage
# If installed globally
mcp-swissknife
# Or using npx
npx mcp-swissknife
With Obsidian Integration
# If installed globally
mcp-swissknife --vault-path /path/to/your/obsidian/vault
# Or using npx
npx mcp-swissknife --vault-path /path/to/your/obsidian/vault
Disabling Modules
You can disable specific modules using the --disable option:
# Disable a single module
mcp-swissknife --disable obsidian
# Disable multiple modules (comma-separated)
mcp-swissknife --disable obsidian,web-fetch
# Combine with other options
mcp-swissknife --vault-path /path/to/vault --disable gemini-web-search
Available modules to disable: datetime, gemini-web-search, obsidian, software-docgen, web-fetch
MCP Configuration
To use MCP Swiss Knife with MCP-compatible clients, add it to your MCP configuration:
Basic Configuration
{
"mcpServers": {
"mcp-swissknife": {
"command": "npx",
"args": ["mcp-swissknife"],
"env": {}
}
}
}
With Obsidian Integration
{
"mcpServers": {
"mcp-swissknife": {
"command": "npx",
"args": ["mcp-swissknife", "--vault-path", "/path/to/your/obsidian/vault"],
"env": {}
}
}
}
Example with Specific Vault Path
{
"mcpServers": {
"mcp-swissknife": {
"command": "npx",
"args": ["mcp-swissknife", "--vault-path", "/mnt/c/obsidian"],
"env": {}
}
}
}
With Disabled Modules
{
"mcpServers": {
"mcp-swissknife": {
"command": "npx",
"args": ["mcp-swissknife", "--disable", "obsidian,web-fetch"],
"env": {}
}
}
}
Available Tools
DateTime Module
get_current_datetime- Get current date and time in ISO 8601 format
Gemini Web Search Module (requires Gemini CLI)
gemini_web_search- Performs AI-powered web search using Gemini with WebSearch capability, providing comprehensive results with analysis and summarization
Obsidian Module (requires --vault-path)
read_notes- Read contents of multiple notes from your vaultsearch_notes- Search for notes by name with partial matching
Software Documentation Module
get_software_documentation_prompt- Get prompts for creating project documentation
Web Fetch Module
- Web content fetching and processing tools
Development
Prerequisites
- Node.js (ES2022+ support)
- npm or yarn
Setup
git clone <repository-url>
cd mcp-swissknife
npm install
Development Commands
npm run dev # Development with vite-node
npm run build # Production build
npm run quality:fix # Format, lint, and typecheck
npm run typecheck # TypeScript validation only
Architecture
MCP Swiss Knife follows a modular architecture where each feature is implemented as a self-contained module in src/lib/. Each module implements the ToolModule interface and provides:
- Tool definitions with Zod schemas
- Handler implementations
- Optional initialization logic
Adding New Modules
- Create directory:
src/lib/[module-name]/ - Implement required files:
index.ts,tools.ts,handlers.ts - Register in
serverConfig.modulesarray insrc/index.ts - Add CLI options if needed
License
MIT