Skip to main content
Glama
c1r5
by c1r5
README.md
# MCP Examples Project

This project demonstrates a Model Context Protocol (MCP) server and client setup, including tools and configuration for running the server in a Docker container.

## Project Structure

```
.
├── Dockerfile                # Docker build instructions for the MCP server
├── pyproject.toml            # Python project configuration
├── uv.lock                   # Lock file for dependencies
├── README.md                 # Project documentation
├── client/                   # Client-side code (if any)
└── servers/                  # MCP server implementation
    ├── __init__.py
    ├── main.py               # Main entry point for the server
    └── tools/                # Additional server tools
        ├── __init__.py
        ├── calendar.py       # Calendar tool implementation
        ├── task_manager.py   # Task manager tool implementation
        └── weather.py        # Weather tool implementation
```

## Setting Up and Building the Docker Image

1. **Build the Docker Image**

   From the project root, run:

   ```sh
   docker build -t mcp-example-stdio-server:latest .
   ```

   This will create a Docker image named `mcp-example-stdio-server:latest` containing the MCP server.

2. **Run the Server (Standalone)**

   You can run the server directly with:

   ```sh
   docker run --rm -i mcp-example-stdio-server:latest
   ```

   The server will start and listen for MCP stdio requests.

## `mcp.json` Configuration

The `.vscode/mcp.json` file configures how the MCP server is launched in development environments (such as VS Code):

```jsonc
{
  "servers": {
    "example-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "mcp-example-stdio-server:latest"
      ]
    }
  },
  "inputs": []
}
```

- **type**: `stdio` indicates the server communicates over standard input/output.
- **command**: The command to launch the server (`docker`).
- **args**: Arguments to run the Docker container with the built image.

This setup allows development tools to start the MCP server in a containerized environment automatically.

## Additional Notes

- Ensure Docker is installed and running on your system.
- Update the Docker image as needed after making changes to the server code by rebuilding the image.
- The `servers/tools/` directory contains modular tool implementations that can be extended as needed.