Skip to content

mimonimo/mcp-toolkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧰 mcp-toolkit

Production-ready MCP (Model Context Protocol) servers for Claude and other AI assistants

Python 3.10+ MCP Compatible License: MIT Stars

ServersInstallUsageAdd Your OwnContributing


mcp-toolkit is a collection of production-ready MCP servers that give Claude (and other AI assistants) powerful capabilities through standardized tool interfaces.

MCP (Model Context Protocol) is Anthropic's open standard that lets AI models connect to external tools and data sources. Think of MCP servers as plugins for AI assistants.


📦 Available Servers

Server Description No API Key?
system-info CPU, memory, disk, processes, network
web-search DuckDuckGo search + URL fetcher
git-ops Git log, status, diff, branches
file-ops Read files, list directories, search

All current servers require no external API keys. Just Python.


🚀 Installation

pip install mcp-toolkit

Or install servers individually:

# Clone the repo
git clone https://github.com/mimonimo/mcp-toolkit
cd mcp-toolkit

# Install with all dependencies
pip install -e ".[all]"

⚙️ Usage

With Claude Desktop

Add servers to your claude_desktop_config.json (usually at ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "system-info": {
      "command": "python3",
      "args": ["/path/to/mcp-toolkit/servers/system_info/server.py"]
    },
    "web-search": {
      "command": "python3",
      "args": ["/path/to/mcp-toolkit/servers/web_search/server.py"]
    },
    "git-ops": {
      "command": "python3",
      "args": ["/path/to/mcp-toolkit/servers/git_ops/server.py"]
    },
    "file-ops": {
      "command": "python3",
      "args": ["/path/to/mcp-toolkit/servers/file_ops/server.py"]
    }
  }
}

Then restart Claude Desktop. You'll see the tools available in the tool selector.

With Claude Code

# In your project directory, add MCP server
claude mcp add system-info python3 /path/to/servers/system_info/server.py
claude mcp add web-search python3 /path/to/servers/web_search/server.py

Running a Server Directly

python3 servers/system_info/server.py
python3 servers/web_search/server.py
python3 servers/git_ops/server.py
python3 servers/file_ops/server.py

🔧 Server Details

System Info (system-info)

Lets Claude understand your machine's current state:

Tool Description
get_system_overview CPU, memory, disk usage, uptime, OS version
list_top_processes Top N processes by CPU usage
get_network_connections Active network connections
run_command Execute safe read-only shell commands

Example Claude prompt:

"What's using the most CPU on my machine right now?"


Web Search (web-search)

No API key required — uses DuckDuckGo:

Tool Description
web_search Search the web via DuckDuckGo
fetch_url Fetch and extract text from any URL

Example Claude prompt:

"Search for the latest MCP server examples on GitHub"


Git Ops (git-ops)

Read-only Git operations:

Tool Description
git_log Commit history with filters
git_status Working tree status
git_diff Staged or unstaged changes
git_branches List local/remote branches
git_show_file File content at any commit

Example Claude prompt:

"Show me the last 10 commits to this repo and summarize the changes"


File Ops (file-ops)

Safe file system exploration:

Tool Description
read_file Read file with line ranges
list_directory Explore directory trees
search_files Glob pattern file search
file_info File metadata

Example Claude prompt:

"Find all Python files in ~/projects/myapp and show me the main entry point"


🏗️ Creating Custom Servers

Each server is a self-contained Python file. Here's the minimal template:

from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent

server = Server("my-server")

@server.list_tools()
async def list_tools() -> list[Tool]:
    return [
        Tool(
            name="my_tool",
            description="What this tool does",
            inputSchema={
                "type": "object",
                "properties": {
                    "input": {"type": "string", "description": "Input parameter"}
                },
                "required": ["input"],
            },
        )
    ]

@server.call_tool()
async def call_tool(name: str, arguments: dict) -> list[TextContent]:
    if name == "my_tool":
        result = f"You said: {arguments['input']}"
        return [TextContent(type="text", text=result)]

async def main():
    async with stdio_server() as streams:
        await server.run(streams[0], streams[1], server.create_initialization_options())

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

🗺️ Roadmap

  • slack — Post messages, read channels
  • notion — Read/write Notion pages
  • aws — S3, EC2, CloudWatch read operations
  • postgres — Query databases (read-only)
  • docker — Container status and logs
  • vmware — vSphere VM information
  • kubernetes — Cluster status and pod logs

Want a server built? Open an issue with your use case.


🤝 Contributing

Contributions welcome! The easiest way to contribute is to add a new server:

  1. Create servers/your_server_name/server.py
  2. Follow the template above
  3. Add it to the README table
  4. Open a PR

Guidelines:

  • Each server should be self-contained in one file
  • Prefer no/minimal dependencies
  • Never perform destructive operations by default (read-only first)
  • Include proper error handling
git clone https://github.com/mimonimo/mcp-toolkit
cd mcp-toolkit
pip install -e ".[dev]"

📚 Resources


📝 License

MIT © mimonimo


If mcp-toolkit is useful to you, please give it a ⭐

Built by mimonimo

About

Production-ready MCP (Model Context Protocol) servers for Claude — system-info, web-search, git-ops, file-ops. No API keys required.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages