This document describes how to configure MCP clients (Claude Desktop, VS Code, Zed, Zencoder) to connect to reference servers. It covers configuration file formats, execution methods (npx, uvx, pip, docker), transport mechanisms, and platform-specific considerations.
The reference servers provided in this repository are intended for educational purposes and demonstrate the versatility of the Model Context Protocol README.md9-11
MCP clients use JSON configuration files to specify server connections. The configuration defines how to launch and communicate with MCP servers, typically using the stdio transport.
Claude Desktop uses claude_desktop_config.json located at:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonThe configuration follows this structure README.md82-90:
VS Code supports two configuration methods:
Method 1: User Configuration (Recommended)
Ctrl + Shift + P → MCP: Open User Configuration src/everything/README.md63mcp.json file.Method 2: Workspace Configuration
.vscode/mcp.json in the workspace root src/everything/README.md65-66"mcp" key is often required when using the mcp.json file src/fetch/README.md115Zed uses settings.json with a context_servers section src/time/README.md99-105:
Zencoder uses a UI-based workflow to add custom servers src/time/README.md175-180:
Agent ToolsAdd Custom MCPConfiguration File Locations and Structure
Sources: README.md80-104 src/everything/README.md60-68 src/time/README.md97-126 src/time/README.md175-191
Reference servers support multiple execution methods. TypeScript-based servers can be used directly with npx, while Python-based servers are recommended to be run with uvx README.md58-70
| Method | Package Manager | Use Case | Typical Command |
|---|---|---|---|
| npx | npm (Node.js) | TypeScript servers, no installation | npx -y @modelcontextprotocol/server-* |
| uvx | uv (Python) | Python servers, no installation | uvx mcp-server-* |
| pip | pip (Python) | Python servers, persistent install | python -m mcp_server_* |
| docker | Docker | Isolated execution, all servers | docker run -i --rm mcp/* |
Used for TypeScript-based servers like Memory, Filesystem, and Everything. The -y flag is used to skip the installation prompt README.md62
Windows Wrapper: On Windows, npx should be wrapped with cmd /c README.md93-104
Recommended for Python-based servers like Git, Fetch, and Time. uvx is part of the uv toolchain and allows running Python tools in ephemeral environments src/git/README.md103-106
Example: Git Server
Provides process isolation. Requires the -i (interactive) flag to maintain the stdio connection and --rm to clean up the container src/git/README.md149-151
Volume Mounts: For servers like Git or Filesystem, host directories must be mounted into the container src/git/README.md150
Execution Method Process Flow
Sources: README.md57-75 src/git/README.md103-154 src/fetch/README.md33-50
MCP servers communicate with clients using different transport protocols. Standard reference implementations primarily use stdio.
Standard input/output transport is the default for reference servers. It enables local process communication where the client starts the server as a child process and communicates via stdin and stdout.
The Everything Server demonstrates multiple transport mechanisms beyond stdio, including SSE (Server-Sent Events) and Streamable HTTP src/everything/README.md96-104
npm run start:sse or npx @modelcontextprotocol/server-everything sse src/everything/README.md101-131npm run start:streamableHttp or npx @modelcontextprotocol/server-everything streamableHttp src/everything/README.md109-135Transport Mechanism Architecture
Sources: src/everything/README.md16-50 src/everything/README.md96-136
The Filesystem server requires a list of allowed directories as command-line arguments src/filesystem/README.md20-24
Requires the --repository flag to point to a local Git repo src/git/README.md135
The Fetch server supports several customization arguments:
--ignore-robots-txt: Disables robots.txt compliance src/fetch/README.md154-155--user-agent: Customizes the User-Agent header src/fetch/README.md169--proxy-url: Configures a proxy for web requests src/fetch/README.md173Supports the MEMORY_FILE_PATH environment variable to customize the location of the memory.jsonl storage file src/memory/README.md204-232
On Windows, Python-based servers (like Fetch) may require the PYTHONIOENCODING variable to prevent timeout issues related to character encoding src/fetch/README.md177-195
For all npx-based entries on Windows, change the "command" to "cmd" and prepend "/c", "npx" to the args array README.md134
The MCP Inspector is a developer tool used to test and debug MCP servers independently of a full client.
For uvx (Python):
For npx (TypeScript):
Sources: src/fetch/README.md175-231 src/time/README.md253-267 README.md134-135
Refresh this wiki