Commit 2d09db2
Changed files (9)
cmd/gitlab/main.go
@@ -40,16 +40,6 @@ Examples:
# Use with self-hosted GitLab instance
mcp-gitlab --gitlab-url https://gitlab.company.com
-Adding to Claude Code:
- # Add to Claude Code (using environment variable, recommended)
- claude mcp add mcp-gitlab -- /usr/local/bin/mcp-gitlab
-
- # Add to Claude Code with token directly
- claude mcp add mcp-gitlab -- /usr/local/bin/mcp-gitlab --gitlab-token your_token_here
-
- # Add to Claude Code for self-hosted GitLab
- claude mcp add mcp-gitlab -- /usr/local/bin/mcp-gitlab --gitlab-url https://gitlab.company.com --gitlab-token your_token
-
Tools:
- gitlab_list_my_projects: List projects you have access to with activity info
- gitlab_list_my_issues: Issues assigned/authored/mentioned, prioritized by activity
@@ -108,4 +98,4 @@ For more information, visit: https://github.com/xlgmokha/mcp
if err := server.Run(ctx); err != nil {
log.Fatalf("Server error: %v", err)
}
-}
\ No newline at end of file
+}
cmd/imap/main.go
@@ -25,104 +25,6 @@ func main() {
if *help {
fmt.Println("IMAP MCP Server - Connect to IMAP email servers")
- fmt.Println()
- fmt.Println("USAGE:")
- fmt.Println(" mcp-imap [options]")
- fmt.Println()
- fmt.Println("OPTIONS:")
- fmt.Println(" --server string IMAP server hostname (required)")
- fmt.Println(" Examples: imap.gmail.com, mail.migadu.com")
- fmt.Println(" --username string IMAP username/email (required)")
- fmt.Println(" --password string IMAP password or app password (required)")
- fmt.Println(" --port int IMAP port (default: 993)")
- fmt.Println(" --use-tls Use TLS connection (default: true)")
- fmt.Println(" --help Show this help")
- fmt.Println()
- fmt.Println("ENVIRONMENT VARIABLES:")
- fmt.Println(" IMAP_SERVER Server hostname (overrides --server)")
- fmt.Println(" IMAP_USERNAME Username/email (overrides --username)")
- fmt.Println(" IMAP_PASSWORD Password (overrides --password)")
- fmt.Println(" IMAP_PORT Port number (overrides --port)")
- fmt.Println(" IMAP_USE_TLS Use TLS: true/false (overrides --use-tls)")
- fmt.Println()
- fmt.Println("TOOLS (12 total):")
- fmt.Println(" imap_list_folders - List all IMAP folders")
- fmt.Println(" imap_list_messages - List messages in folder with pagination")
- fmt.Println(" imap_read_message - Read full message content")
- fmt.Println(" imap_search_messages - Search messages by content/sender/subject")
- fmt.Println(" imap_get_folder_stats - Get folder statistics (total/unread)")
- fmt.Println(" imap_mark_as_read - Mark messages as read/unread")
- fmt.Println(" imap_get_attachments - List message attachments")
- fmt.Println(" imap_get_connection_info - Server connection info and capabilities")
- fmt.Println(" imap_delete_message - Delete single message (requires confirmation)")
- fmt.Println(" imap_delete_messages - Delete multiple messages (requires confirmation)")
- fmt.Println(" imap_move_to_trash - Move messages to trash folder (safe delete)")
- fmt.Println(" imap_expunge_folder - Permanently remove deleted messages")
- fmt.Println()
- fmt.Println("PROMPTS (2 total):")
- fmt.Println(" email-analysis - AI-powered email content analysis")
- fmt.Println(" email-search - Contextual email search with AI insights")
- fmt.Println()
- fmt.Println("EXAMPLES:")
- fmt.Println(" # Gmail connection")
- fmt.Println(" mcp-imap --server imap.gmail.com --username user@gmail.com --password app-password")
- fmt.Println()
- fmt.Println(" # Migadu connection")
- fmt.Println(" mcp-imap --server mail.migadu.com --username user@domain.com --password password")
- fmt.Println()
- fmt.Println(" # Using environment variables")
- fmt.Println(" export IMAP_SERVER=imap.gmail.com")
- fmt.Println(" export IMAP_USERNAME=user@gmail.com")
- fmt.Println(" export IMAP_PASSWORD=app-password")
- fmt.Println(" mcp-imap")
- fmt.Println()
- fmt.Println("DELETION EXAMPLES:")
- fmt.Println(" # Safe delete (move to trash)")
- fmt.Println(" imap_move_to_trash uid=12345")
- fmt.Println(" imap_move_to_trash uids=[12345,12346,12347]")
- fmt.Println()
- fmt.Println(" # Permanent delete (requires confirmation)")
- fmt.Println(" imap_delete_message uid=12345 confirmed=true")
- fmt.Println(" imap_delete_messages uids=[12345,12346] confirmed=true")
- fmt.Println()
- fmt.Println("ADDING TO CLAUDE CODE:")
- fmt.Println(" # Add with command-line arguments")
- fmt.Println(" claude mcp add mcp-imap -- /usr/local/bin/mcp-imap --server imap.gmail.com --username user@gmail.com --password app-password")
- fmt.Println()
- fmt.Println(" # Add for Migadu")
- fmt.Println(" claude mcp add mcp-imap -- /usr/local/bin/mcp-imap --server mail.migadu.com --username user@domain.com --password password")
- fmt.Println()
- fmt.Println("CLAUDE CODE CONFIGURATION:")
- fmt.Println(" # Recommended: Use environment variables for security")
- fmt.Println(" {")
- fmt.Println(" \"mcpServers\": {")
- fmt.Println(" \"imap\": {")
- fmt.Println(" \"command\": \"/usr/local/bin/mcp-imap\",")
- fmt.Println(" \"env\": {")
- fmt.Println(" \"IMAP_SERVER\": \"imap.gmail.com\",")
- fmt.Println(" \"IMAP_USERNAME\": \"user@gmail.com\",")
- fmt.Println(" \"IMAP_PASSWORD\": \"app-password\"")
- fmt.Println(" }")
- fmt.Println(" }")
- fmt.Println(" }")
- fmt.Println(" }")
- fmt.Println()
- fmt.Println(" # Alternative: Command-line arguments (less secure)")
- fmt.Println(" {")
- fmt.Println(" \"mcpServers\": {")
- fmt.Println(" \"imap\": {")
- fmt.Println(" \"command\": \"/usr/local/bin/mcp-imap\",")
- fmt.Println(" \"args\": [\"--server\", \"imap.gmail.com\", \"--username\", \"user@gmail.com\", \"--password\", \"app-password\"]")
- fmt.Println(" }")
- fmt.Println(" }")
- fmt.Println(" }")
- fmt.Println()
- fmt.Println("SECURITY NOTES:")
- fmt.Println(" - Use app passwords for Gmail (not your main password)")
- fmt.Println(" - Prefer environment variables over command-line arguments")
- fmt.Println(" - Command-line passwords are visible in process lists")
- fmt.Println(" - All connections use TLS encryption by default")
- fmt.Println(" - Credentials are not logged or stored persistently")
return
}
@@ -160,9 +62,9 @@ func main() {
// Create and start server
imapServer := imap.New(*server, *username, *password, *port, *useTLS)
-
+
ctx := context.Background()
if err := imapServer.Run(ctx); err != nil {
log.Fatalf("Server failed: %v", err)
}
-}
\ No newline at end of file
+}
cmd/maildir/main.go
@@ -10,7 +10,7 @@ import (
)
func printHelp() {
- fmt.Printf(`Maildir MCP Server
+ fmt.Printf(`Maildir MCP Server
DESCRIPTION:
A Model Context Protocol server that provides secure email management through Maildir format.
@@ -47,25 +47,25 @@ For detailed documentation, see: cmd/maildir/README.md
}
func main() {
- var help = flag.Bool("help", false, "Show help message")
- flag.Parse()
-
- if *help {
- printHelp()
- return
- }
-
- var directory string
- if len(flag.Args()) > 0 {
- directory = flag.Arg(0)
- } else {
- directory = "."
- }
-
- server := maildir.New([]string{directory})
-
- ctx := context.Background()
- if err := server.Run(ctx); err != nil {
- log.Fatalf("Server error: %v", err)
- }
-}
\ No newline at end of file
+ var help = flag.Bool("help", false, "Show help message")
+ flag.Parse()
+
+ if *help {
+ printHelp()
+ return
+ }
+
+ var directory string
+ if len(flag.Args()) > 0 {
+ directory = flag.Arg(0)
+ } else {
+ directory = "."
+ }
+
+ server := maildir.New([]string{directory})
+
+ ctx := context.Background()
+ if err := server.Run(ctx); err != nil {
+ log.Fatalf("Server error: %v", err)
+ }
+}
cmd/memory/main.go
@@ -38,16 +38,6 @@ EXAMPLE USAGE:
# Test with MCP protocol
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "read_graph", "arguments": {}}}' | mcp-memory
-ADDING TO CLAUDE CODE:
- # Add to Claude Code with default memory file
- claude mcp add mcp-memory -- /usr/local/bin/mcp-memory
-
- # Add to Claude Code with custom memory file
- claude mcp add mcp-memory -- /usr/local/bin/mcp-memory --memory-file /path/to/knowledge.json
-
- # Add to Claude Code with project-specific memory
- claude mcp add mcp-memory -- /usr/local/bin/mcp-memory --memory-file $(pwd)/.memory.json
-
MCP CAPABILITIES:
- Tools: create_entities, create_relations, read_graph, search_nodes, add_observations, and more
- Resources: memory:// URIs for knowledge graph access
cmd/semantic/main.go
@@ -163,26 +163,6 @@ CONFIGURATION:
}
}
-INTEGRATION:
- Add to Claude Code configuration:
-
- {
- "mcpServers": {
- "semantic": {
- "command": "/usr/local/bin/mcp-semantic",
- "args": ["--project-root", "."]
- }
- }
- }
-
- Or use with Goose:
-
- # ~/.config/goose/contexts/semantic-dev.yaml
- mcp_servers:
- semantic:
- command: /usr/local/bin/mcp-semantic
- args: ["--project-root", "."]
-
FOR MORE INFORMATION:
• Design Document: cmd/mcp-semantic/DESIGN.md
• Implementation Plan: cmd/mcp-semantic/IMPLEMENTATION_PLAN.md
@@ -197,7 +177,7 @@ func setupLogging(level string) {
// Set up basic logging for now
// In a full implementation, this would configure structured logging
log.SetFlags(log.LstdFlags | log.Lshortfile)
-
+
switch level {
case "debug":
log.Println("Debug logging enabled")
@@ -216,9 +196,9 @@ func initializeProject(projectRoot, configFile string) error {
// 2. Initialize project discovery
// 3. Start language servers as needed
// 4. Set up file watching
-
+
log.Printf("Initializing project at: %s", projectRoot)
-
+
if configFile != "" {
log.Printf("Loading configuration from: %s", configFile)
// TODO: Load and apply configuration
@@ -229,4 +209,4 @@ func initializeProject(projectRoot, configFile string) error {
// TODO: Begin symbol indexing in background
return nil
-}
\ No newline at end of file
+}
cmd/sequential-thinking/main.go
@@ -33,16 +33,6 @@ EXAMPLE USAGE:
# Test with MCP protocol
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "sequentialthinking", "arguments": {"task": "Analyze the problem step by step"}}}' | mcp-sequential-thinking
-ADDING TO CLAUDE CODE:
- # Add to Claude Code (no session persistence)
- claude mcp add mcp-sequential-thinking -- /usr/local/bin/mcp-sequential-thinking
-
- # Add to Claude Code with session persistence
- claude mcp add mcp-sequential-thinking -- /usr/local/bin/mcp-sequential-thinking --session-file /tmp/thinking_sessions.json
-
- # Add to Claude Code with project-specific sessions
- claude mcp add mcp-sequential-thinking -- /usr/local/bin/mcp-sequential-thinking --session-file $(pwd)/.thinking_sessions.json
-
MCP CAPABILITIES:
- Tools: sequentialthinking (structured reasoning workflows)
- Features: Step-by-step problem decomposition, logical reasoning chains
cmd/signal/main.go
@@ -35,16 +35,6 @@ Examples:
# Specify custom Signal path
mcp-signal --signal-path ~/.config/Signal
-Adding to Claude Code:
- # Add to Claude Code (auto-detect Signal installation)
- claude mcp add mcp-signal -- /usr/local/bin/mcp-signal
-
- # Add to Claude Code with custom Signal path
- claude mcp add mcp-signal -- /usr/local/bin/mcp-signal --signal-path ~/.config/Signal
-
- # Add to Claude Code for macOS (typical path)
- claude mcp add mcp-signal -- /usr/local/bin/mcp-signal --signal-path ~/Library/Application\\ Support/Signal
-
Tools:
- signal_list_conversations: List all conversations
- signal_search_messages: Search messages by text content
@@ -77,4 +67,4 @@ For more information, visit: https://github.com/xlgmokha/mcp
if err := server.Run(ctx); err != nil {
log.Fatalf("Server error: %v", err)
}
-}
\ No newline at end of file
+}
cmd/speech/main.go
@@ -143,24 +143,6 @@ Linux Requirements:
macOS Requirements:
# Built-in 'say' command - no installation needed
-INTEGRATION:
-Add to your Claude Code configuration (~/.claude.json):
-
-{
- "mcpServers": {
- "speech": {
- "command": "mcp-speech"
- }
- }
-}
-
-USAGE WITH CLAUDE CODE:
-Once integrated, you can ask Claude to speak responses:
- "Say your response out loud using the speech tool"
- "Read this file aloud using a British voice"
- "List all available voices on my system"
- "Stop any speech that's currently playing"
-
BACKEND DETECTION:
The server automatically detects the appropriate TTS backend:
• macOS: Uses 'say' command
@@ -169,4 +151,4 @@ The server automatically detects the appropriate TTS backend:
For support or issues, see: https://github.com/xlgmokha/mcp
`)
-}
\ No newline at end of file
+}
cmd/time/main.go
@@ -29,10 +29,6 @@ EXAMPLE USAGE:
# Test with MCP protocol
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "get_current_time", "arguments": {}}}' | mcp-time
-ADDING TO CLAUDE CODE:
- # Add to Claude Code (no configuration needed)
- claude mcp add mcp-time -- /usr/local/bin/mcp-time
-
MCP CAPABILITIES:
- Tools: get_current_time, convert_time
- Features: Time zone conversions, date formatting, temporal calculations