# MCP Project Setup
This document outlines the steps to set up the `mcp` project environment.
## 1. Create Conda Environment
Create a new conda environment named `mcp` with Python 3.12:
```bash
conda create -n mcp python=3.12 -y
```
## 2. Install uv
Install the `uv` package manager using the following command:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
## 3. Install fastmcp
Install the `fastmcp` package using `uv` in the `mcp` environment:
```bash
conda run -n mcp uv pip install fastmcp
```
## 4. Verify Installation
Confirm the `fastmcp` installation by running the following command:
```bash
conda run -n mcp fastmcp version
```
## 5. Running the Hello World Server
`mcp_hello.py` is a "hello world" type mcp server. You can run the MCP inspector for it using the following command:
```bash
conda run -n mcp fastmcp dev mcp_hello.py:mcp
```
## 6. Connecting with Proxy Session Token
Copy the provided session token from CLI, click on the provided link, paste in Configuration -> Proxy Session Token, click connect.
## 7. Inspect hello_world tool
Click on Tools in the top menu bar. "hello_world" should be listed with a parameter "name". Input your name and click "Run Tool". The tool should succeed and return a greeting.
## 8. Running Resource Tests
`mcp_resources.py` defines MCP resources. You can run tests for these resources using the `--test` argument:
```bash
uv run mcp_resources.py --test
```
## 9. Weather Server
`mcp_weather.py` exposes a tool to get current weather data from OpenWeatherMap.
**Before running:** Ensure you have set your `OPENWEATHER_API_KEY` in the `.env` file:
```
OPENWEATHER_API_KEY=YOUR_API_KEY_HERE
```
To run the weather server manually:
```bash
conda run -n mcp fastmcp dev mcp_weather.py:mcp
```
To run tests for the weather tool:
```bash
uv run mcp_weather.py --test
```
## 10. Integrating with Gemini CLI
To allow the Gemini CLI to automatically start and connect to your `mcp_weather` server, you need to configure its `settings.json` file.
1. **Locate `settings.json`:**
The `settings.json` file is typically located at:
* **Linux/macOS:** `~/.gemini/settings.json`
* **Windows:** `%APPDATA%\gemini\settings.json`
If the file or directory does not exist, create them.
2. **Add `mcpServers` entry:**
Add the following entry to the `mcpServers` section in your `settings.json` file. Replace `/mnt/d/Projects/_sandbox/mcp/` with the absolute path to your `mcp` project directory.
```json
{
"mcpServers": {
"weather_server": {
"command": "uv",
"args": [
"run",
"/mnt/d/Projects/_sandbox/mcp/mcp_weather.py"
],
"cwd": "/mnt/d/Projects/_sandbox/mcp",
"timeout": 10000
}
}
}
```
Once configured, when you run `gemini`, the CLI will automatically start your `mcp_weather.py` server and make its `get_current_weather` tool available to the Gemini model.
## References
* **Gemini CLI Configuration:** [https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/configuration.md](https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/configuration.md) - For information on setting up MCP with the Gemini CLI.
* **FastMCP:** [https://github.com/jlowin/fastmcp](https://github.com/jlowin/fastmcp) - The FastMCP library used for building MCP servers.