MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

D
Dev Toolkit MCP

MCP server by 1baltun

Created 3/24/2026
Updated about 7 hours ago
Repository documentation and setup instructions

dev-toolkit-mcp

All-in-one MCP server for Zed IDE — brings Windsurf/Cursor-like intelligence to Zed.

A single MCP server that gives Zed's AI agent superpowers: codebase indexing, smart file reading, persistent memory, git awareness, and web search — all without leaving the editor.

Why?

Zed is fast and beautiful, but its AI agent lacks the deep codebase awareness that Windsurf and Cursor have built-in. The built-in read_file tool struggles with large files, there's no persistent memory between sessions, and no codebase-wide search.

dev-toolkit-mcp fills these gaps with 24 tools in one lightweight MCP server.

Features

🔍 Codebase Indexer (7 tools)

Scans your entire project and builds an in-memory index of files, symbols, imports, and dependencies — like Windsurf's Indexing Engine.

| Tool | Description | |------|-------------| | index_project | Scan & index entire project (files, symbols, imports) | | project_map | File tree with line counts and symbol stats | | find_symbol | Find where a symbol is defined AND used across codebase | | find_related | Show import/dependency graph for a file | | search_codebase | Regex search across all indexed files | | file_dependencies | Full dependency tree (configurable depth) | | find_widgets | Flutter-specific: find all widgets and their state classes |

📖 Smart File Reader (4 tools)

Reads large files intelligently — never dumps 2000 lines into context.

| Tool | Description | |------|-------------| | file_info | File size, line count, and structure (classes/functions with line numbers) | | read_lines | Read specific line range (max 500 per call) | | search_in_file | Search within a file with surrounding context | | read_function | Extract a complete function/class by name (brace-matched) |

🧠 Persistent Memory (4 tools)

Windsurf-style memory that survives across sessions. Stores project knowledge as JSON files.

| Tool | Description | |------|-------------| | memory_save | Save a note (tech stack, conventions, decisions, known issues) | | memory_load | Load all memories for a project — call at session start | | memory_delete | Delete a specific memory | | memory_list | List all projects with saved memories |

🌿 Git Awareness (5 tools)

Full git context without leaving the agent panel.

| Tool | Description | |------|-------------| | git_status | Branch, staged/unstaged/untracked files, recent commits | | git_diff | Diff: staged, unstaged, between branches, or specific file | | git_log_file | Commit history for a specific file | | git_blame | Who changed what — full or line range | | git_branches | All branches with last commit info |

🌐 Web Search & Docs (3 tools)

Search documentation, fetch web pages, find packages.

| Tool | Description | |------|-------------| | search_web | DuckDuckGo web search (no API key needed) | | fetch_url | Fetch & extract readable text from any URL | | search_pubdev | Search pub.dev for Dart/Flutter packages |

Installation

Prerequisites

Setup

# 1. Clone or download
git clone https://github.com/YOUR_USERNAME/dev-toolkit-mcp.git
cd dev-toolkit-mcp

# 2. Install dependencies
npm install

# 3. Note the full path to index.mjs — you'll need it for Zed config
pwd

Configure Zed

Add to your Zed settings.json (Ctrl+, or Cmd+,):

{
  "context_servers": {
    "dev-toolkit": {
      "command": {
        "path": "node",
        "args": ["/FULL/PATH/TO/dev-toolkit-mcp/index.mjs"],
        "env": {}
      }
    }
  }
}

Windows path example:

"args": ["C:\\Users\\yourname\\dev-toolkit-mcp\\index.mjs"]

Auto-approve tools (optional)

Add to the agent.tool_permissions.tools section in your settings:

"mcp:dev-toolkit:index_project": { "default": "allow" },
"mcp:dev-toolkit:project_map": { "default": "allow" },
"mcp:dev-toolkit:find_symbol": { "default": "allow" },
"mcp:dev-toolkit:find_related": { "default": "allow" },
"mcp:dev-toolkit:search_codebase": { "default": "allow" },
"mcp:dev-toolkit:file_dependencies": { "default": "allow" },
"mcp:dev-toolkit:find_widgets": { "default": "allow" },
"mcp:dev-toolkit:file_info": { "default": "allow" },
"mcp:dev-toolkit:read_lines": { "default": "allow" },
"mcp:dev-toolkit:search_in_file": { "default": "allow" },
"mcp:dev-toolkit:read_function": { "default": "allow" },
"mcp:dev-toolkit:memory_save": { "default": "allow" },
"mcp:dev-toolkit:memory_load": { "default": "allow" },
"mcp:dev-toolkit:memory_delete": { "default": "allow" },
"mcp:dev-toolkit:memory_list": { "default": "allow" },
"mcp:dev-toolkit:git_status": { "default": "allow" },
"mcp:dev-toolkit:git_diff": { "default": "allow" },
"mcp:dev-toolkit:git_log_file": { "default": "allow" },
"mcp:dev-toolkit:git_blame": { "default": "allow" },
"mcp:dev-toolkit:git_branches": { "default": "allow" },
"mcp:dev-toolkit:search_web": { "default": "allow" },
"mcp:dev-toolkit:fetch_url": { "default": "allow" },
"mcp:dev-toolkit:search_pubdev": { "default": "allow" }

Add Rules File (recommended)

Copy the .rules file to your project root. This teaches the AI agent how to use the tools effectively:

cp .rules /path/to/your/project/.rules

Usage

Session Start Ritual

The .rules file instructs the agent to do this automatically at the start of each session:

  1. memory_load → restore project context from previous sessions
  2. index_project → scan the codebase (cached for 5 minutes)
  3. git_status → see current branch and changes

Example Prompts

# Codebase exploration
"Show me the project structure"
"Find where UserModel is defined and used"
"What widgets are in the auth module?"

# Smart file reading
"Show me the build method in HomeScreen"
"Search for all TODO comments in the project"

# Git awareness
"What files changed since last commit?"
"Show me the diff for auth_service.dart"
"Who last modified the login function?"

# Memory
"Remember that this project uses Riverpod for state management"
"What do you remember about this project?"

# Web search
"Search pub.dev for a good date picker package"
"Look up the Flutter Navigator 2.0 API docs"

How It Compares

| Feature | Windsurf | Cursor | Zed (vanilla) | Zed + dev-toolkit | |---------|----------|--------|---------------|-------------------| | Codebase indexing | ✅ Built-in | ✅ Built-in | ❌ | ✅ | | Smart file reading | ✅ Built-in | ✅ Built-in | ⚠️ Struggles with large files | ✅ | | Persistent memory | ✅ Built-in | ❌ | ❌ | ✅ | | Git awareness | ✅ Built-in | ✅ Built-in | ⚠️ Basic | ✅ | | Web search | ✅ Built-in | ✅ Built-in | ❌ | ✅ | | Symbol search | ✅ Built-in | ✅ Built-in | ⚠️ LSP only | ✅ Cross-file | | Widget finder | ❌ | ❌ | ❌ | ✅ Flutter-specific | | Dependency graph | ✅ Built-in | ✅ Built-in | ❌ | ✅ | | Speed | Electron | Electron | 🚀 Native Rust | 🚀 Native Rust | | Price | $15-50/mo | $20/mo | Free | Free |

Architecture

~/.zed-memories/           # Persistent memory storage (JSON per project)
  ├── my-app.json
  └── another-project.json

dev-toolkit-mcp/
  └── index.mjs            # Single-file MCP server (no build step)

Your Project/
  └── .rules               # Agent behavior rules
  • Zero build step — single .mjs file, runs directly with Node.js
  • No external APIs — web search uses DuckDuckGo HTML (no key needed)
  • No database — memory stored as plain JSON files
  • Stateless between restarts — index rebuilds on demand (cached 5 min)

Language Support

While the indexer has Flutter/Dart-specific features (find_widgets), the symbol extraction works with:

Dart, TypeScript, JavaScript, Python, Go, Rust, Kotlin, Swift, Java, C/C++, Ruby, PHP, and more.

Troubleshooting

MCP not showing in Zed

  • Check the indicator dot in Agent Panel settings — green = active
  • Verify the path in settings.json is correct (use absolute paths)
  • Check Zed logs: Ctrl+Shift+Pzed: open log

Tools not being called

  • Ensure profile is set to "Write" (not "Ask" or "Minimal")
  • Mention the tool by name: "Use file_info to check the size of..."
  • Some models via OpenRouter have inconsistent tool calling

Windows encoding issues

If you see Unicode errors, wrap the command:

"args": ["C:\\path\\to\\wrapper.bat"]

Where wrapper.bat contains:

@echo off
set PYTHONIOENCODING=utf-8
node "C:\path\to\index.mjs"

Contributing

PRs welcome! Some ideas:

  • [ ] Vector search with embeddings for semantic code search
  • [ ] Auto-indexing on file save (file watcher)
  • [ ] Database MCP tools (SQLite, PostgreSQL)
  • [ ] Test runner integration
  • [ ] Dockerfile / docker-compose awareness
  • [ ] pub.dev package version checker for pubspec.yaml

License

MIT

Quick Setup
Installation guide for this server

Install Package (if required)

npx @modelcontextprotocol/server-dev-toolkit-mcp

Cursor configuration (mcp.json)

{ "mcpServers": { "1baltun-dev-toolkit-mcp": { "command": "npx", "args": [ "1baltun-dev-toolkit-mcp" ] } } }