MCP Toolkit
9 production-ready MCP (Model Context Protocol) servers + CLI discovery tool + Streamlit playground.
MCP is the open standard for connecting AI assistants to external tools. This toolkit provides ready-to-use servers covering common development workflows: database operations, file management, knowledge search, system monitoring, git analytics, and task tracking.
What This Solves
- Slow tool integration — Stand up MCP servers in minutes instead of weeks
- Fragmented workflows — One toolkit for data, files, git, monitoring, and tasks
- Weak governance — Consistent server specs and auto-discovery for safer deployments
Demo
Live demo: https://ct-mcp-toolkit.streamlit.app
Architecture
flowchart TB
subgraph Client["Client Layer"]
CLI["CLI (Click)"]
Playground["Streamlit Playground"]
end
subgraph Core["Core"]
Registry["Server Registry<br/><i>shared/registry.py</i>"]
end
subgraph Servers["MCP Servers (9)"]
FS["file-organizer<br/>5 tools"]
GH["git-insights<br/>5 tools"]
KB["markdown-kb<br/>5 tools"]
AN["system-monitor<br/>5 tools"]
DB["sqlite-explorer<br/>6 tools"]
TK["task-tracker<br/>6 tools"]
EM["email-sender<br/>5 tools"]
SL["slack-notifier<br/>6 tools"]
CA["calendar-sync<br/>6 tools"]
end
subgraph Protocol["Protocol Layer"]
FastMCP["FastMCP v2<br/><i>stdio / SSE transport</i>"]
end
subgraph Execution["Execution Layer"]
Tools["| Tools Execution<br/><i>49 tools across 9 servers</i> |"]
end
CLI -->|"list / info / serve"| Registry
Playground -->|"interactive UI"| Registry
Registry -->|"auto-discovery"| Servers
Servers -->|"register tools"| FastMCP
FastMCP -->|"request / response"| Tools
style Client fill:#e3f2fd,stroke:#1565c0
style Core fill:#fff3e0,stroke:#ef6c00
style Servers fill:#e8f5e9,stroke:#2e7d32
style Protocol fill:#f3e5f5,stroke:#7b1fa2
style Execution fill:#fce4ec,stroke:#c62828
Directory Layout
mcp-toolkit/
├── mcp_toolkit/
│ ├── servers/ # 9 MCP server implementations
│ │ ├── sqlite_explorer.py # SQLite CRUD + schema introspection
│ │ ├── file_organizer.py # File search, dedup, metadata
│ │ ├── markdown_kb.py # TF-IDF search over markdown docs
│ │ ├── system_monitor.py # CPU/memory/disk/network via psutil
│ │ ├── git_insights.py # Repo analytics + contributor stats
│ │ ├── task_tracker.py # Task CRUD with dependency graphs
│ │ ├── email_sender.py # SMTP email with templates
│ │ ├── slack_notifier.py # Slack messaging + alerts
│ │ └── calendar_sync.py # Google Calendar integration
│ ├── shared/registry.py # Server auto-discovery
│ └── cli.py # CLI: list, info, config, serve
├── app.py # Streamlit playground
├── demo_data/ # Sample files for file-organizer
├── demo_docs/ # Sample markdown for markdown-kb
└── tests/ # 180+ pytest tests
Server Catalog
| Server | Tools | Description |
|---|---|---|
| sqlite-explorer | 6 | SQLite database CRUD and schema introspection |
| file-organizer | 5 | Smart file search, deduplication, metadata extraction |
| markdown-kb | 5 | Knowledge base search using TF-IDF over markdown documents |
| system-monitor | 5 | Real-time CPU, memory, disk, and network monitoring |
| git-insights | 5 | Git repository analytics, blame, contributor statistics |
| task-tracker | 6 | Task management with priorities and dependency graphs |
| email-sender | 5 | SMTP email sending with templates and attachments |
| slack-notifier | 6 | Slack channel messaging and alerts |
| calendar-sync | 6 | Google Calendar event management |
Total: 9 servers, 49 tools
Quick Start
Install
git clone https://github.com/ChunkyTortoise/mcp-toolkit.git
cd mcp-toolkit
pip install -e .
Discover Servers
mcp-toolkit list # List all 6 servers
mcp-toolkit info sqlite-explorer # Show server tools and details
Configure with Claude Desktop / Claude Code
mcp-toolkit config sqlite-explorer
Output:
{
"mcpServers": {
"sqlite-explorer": {
"command": "mcp-toolkit",
"args": ["serve", "sqlite-explorer"]
}
}
}
Launch a Server
mcp-toolkit serve sqlite-explorer
Try the Playground
make demo
Server Details
sqlite-explorer
Database operations without writing SQL.
| Tool | Description |
|---|---|
create_database |
Create DB with tables from schema dict |
query |
Parameterized SELECT queries (rejects mutations) |
insert |
Insert a single row |
update |
Update rows matching WHERE clause |
delete |
Delete rows matching WHERE clause |
get_schema |
Introspect tables, columns, and types |
file-organizer
Smart file operations for AI-driven workflows.
| Tool | Description |
|---|---|
search_files |
Recursive glob with depth control |
find_duplicates |
SHA-256 content deduplication |
get_metadata |
File size, timestamps, MIME, hash |
analyze_directory |
Size breakdown by extension |
bulk_rename |
Regex rename with dry-run safety |
markdown-kb
Search knowledge bases using TF-IDF ranking.
| Tool | Description |
|---|---|
index_documents |
Build search index from markdown files |
search |
Cosine similarity ranked search |
get_document |
Retrieve full document content |
list_documents |
List all indexed documents |
get_stats |
Corpus statistics and vocabulary size |
system-monitor
Infrastructure observability for AI agents.
| Tool | Description |
|---|---|
get_cpu_stats |
Usage percent, cores, frequency |
get_memory_stats |
Total/used/available memory |
get_disk_stats |
Disk usage for any mount point |
get_network_stats |
Network I/O and connection count |
health_check |
Pass/fail against CPU/memory thresholds |
git-insights
Repository analytics without complex git commands.
| Tool | Description |
|---|---|
get_repo_stats |
Commits, contributors, branches |
get_commit_history |
Recent commits with metadata |
get_blame |
Line-by-line authorship |
get_contributor_stats |
Per-author commit counts |
find_large_files |
Files exceeding size threshold |
task-tracker
Task management with dependency resolution.
| Tool | Description |
|---|---|
create_task |
Create task with priority (0-4) |
update_task |
Update title, description, status, priority |
delete_task |
Delete task and clean up dependencies |
list_tasks |
Filter by status and priority |
add_dependency |
Add task-to-task dependency |
get_ready_tasks |
Find unblocked pending tasks |
email-sender
Enterprise email automation via SMTP with template support.
| Tool | Description |
|---|---|
send_email |
Send email with optional attachments |
send_template_email |
Send using predefined templates (welcome, notification, alert) |
validate_email_config |
Test SMTP connection and credentials |
get_email_history |
Retrieve recent send history |
send_bulk_email |
Rate-limited bulk email sending |
Environment: SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD, SMTP_USE_TLS
slack-notifier
Slack integration for team notifications and alerts.
| Tool | Description |
|---|---|
send_message |
Send messages to channels with Block Kit support |
send_alert |
Formatted alerts with severity levels (info/warning/error/critical) |
list_channels |
List available channels |
get_channel_info |
Get channel metadata |
send_thread_reply |
Reply in message threads |
upload_snippet |
Upload text/code snippets |
Environment: SLACK_BOT_TOKEN
calendar-sync
Google Calendar integration for event management.
| Tool | Description |
|---|---|
list_events |
List events in date range |
create_event |
Create new calendar events |
update_event |
Modify existing events |
delete_event |
Remove calendar events |
get_free_slots |
Find available meeting times |
validate_calendar_config |
Test Google API connection |
Environment: GOOGLE_API_KEY or GOOGLE_ACCESS_TOKEN, GOOGLE_CALENDAR_ID
Architecture Decisions
| ADR | Title | Status |
|---|---|---|
| ADR-0001 | FastMCP v2 Over Raw Protocol | Accepted |
| ADR-0002 | Six-Server Modularity | Accepted |
| ADR-0003 | Analytics and Cost Tracking | Accepted |
Benchmarks
See BENCHMARKS.md for methodology and results. Key numbers:
| Operation | P50 | Throughput |
|---|---|---|
| JSON-RPC Serialize/Deserialize | 0.35ms | 2,645 ops/sec |
| Tool Dispatch + Validation | 0.06ms | 11,987 ops/sec |
| Server Registry Lookup | 0.04ms | 15,562 ops/sec |
| Capability Negotiation | 0.96ms | 1,000 ops/sec |
Development
make test # Run 180+ pytest tests
make lint # Ruff lint + format check
make format # Auto-fix lint + formatting
make demo # Launch Streamlit playground
Tech Stack
- FastMCP v2 — MCP server framework
- Click — CLI interface
- Streamlit — Interactive playground
- psutil — System monitoring
- GitPython — Git operations
- scikit-learn — TF-IDF search (markdown-kb)
Key Metrics
| Metric | Value |
|---|---|
| MCP Servers | 9 |
| Total Tools | 49 |
| Test Suite | 180+ pytest tests |
| Python | 3.11+ |
| Protocol | FastMCP v2 (stdio / SSE) |
| CI | GitHub Actions |
| License | MIT |
Service Mapping
- Service 24: Knowledge Management
- Service 6: AI-Powered Personal and Business Automation
- Service 21: Workflow Optimization
Certification Mapping
- IBM RAG and Agentic AI Professional Certificate
- Duke University LLMOps Specialization
- Google Cloud Generative AI Leader Certificate
- Vanderbilt Generative AI Strategic Leader Specialization
Changelog
See CHANGELOG.md for release history.
Related Projects
- EnterpriseHub -- Real estate AI platform with BI dashboards and CRM integration
- ai-orchestrator -- AgentForge: unified async LLM interface (Claude, Gemini, OpenAI, Perplexity)
- llm-integration-starter -- Production LLM patterns: completion, streaming, function calling, RAG, hardening
- Portfolio -- Project showcase and services
License
MIT
Metadata
Release files for mcp-server-toolkit 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_server_toolkit-0.1.0.tar.gz | 44.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_server_toolkit-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 80.7 kB
Release files / mcp_server_toolkit-0.1.0.tar.gz
| Download URL | mcp_server_toolkit-0.1.0.tar.gz |
|---|---|
| Size | 44.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
edf8a6f6c56e35dc73ce716124b3845d9b2da7c07e35c1ebb3bb6189185ec5a1
|
|
BLAKE2b-256 checksum How to use checksums |
70507509748fcc152de50726d7104565eb7720e78d878c47af58f4fc0e2b5cb2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / mcp_server_toolkit-0.1.0-py3-none-any.whl
| Download URL | mcp_server_toolkit-0.1.0-py3-none-any.whl |
|---|---|
| Size | 35.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1d81fe3fb5f905deb76ab0d6156908cf7e09575cf63f48e7c52eafd14cff80c7
|
|
BLAKE2b-256 checksum How to use checksums |
66787af6af3d3f76356398f7e74d11f62ade98fbb5a02c306092f5993480d6f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|