MCP Project Setup
A starter project with setup instructions and example MCP servers, including a weather server.
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:
conda create -n mcp python=3.12 -y
2. Install uv
Install the uv package manager using the following command:
curl -LsSf https://astral.sh/uv/install.sh | sh
3. Install fastmcp
Install the fastmcp package using uv in the mcp environment:
conda run -n mcp uv pip install fastmcp
4. Verify Installation
Confirm the fastmcp installation by running the following command:
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:
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:
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:
conda run -n mcp fastmcp dev mcp_weather.py:mcp
To run tests for the weather tool:
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.
-
Locate
settings.json: Thesettings.jsonfile is typically located at:- Linux/macOS:
~/.gemini/settings.json - Windows:
%APPDATA%\gemini\settings.json
If the file or directory does not exist, create them.
- Linux/macOS:
-
Add
mcpServersentry: Add the following entry to themcpServerssection in yoursettings.jsonfile. Replace/mnt/d/Projects/_sandbox/mcp/with the absolute path to yourmcpproject directory.{ "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 yourmcp_weather.pyserver and make itsget_current_weathertool available to the Gemini model.
References
- Gemini CLI Configuration: 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 - The FastMCP library used for building MCP servers.
Related Servers
ts-morph Refactoring Tools
Refactor TypeScript and JavaScript codebases using ts-morph. Supports renaming symbols and files, moving symbols, and searching for references.
Chalee MCP RAG
A Retrieval-Augmented Generation (RAG) server for document processing, vector storage, and intelligent Q&A, powered by the Model Context Protocol.
MCP Rules Enforcer Zero
An MCP server that enforces rules from markdown files for AI agents. This is a zero-tool version that requires an external rules file.
MCP ZAP Server
Exposes OWASP ZAP as an MCP server, enabling AI agents to orchestrate security scans, import OpenAPI specs, and generate reports.
Enkrypt AI Secure MCP Gateway
A secure MCP gateway that acts as a proxy, providing authentication, tool discovery, caching, and guardrail enforcement.
pyATS
Interact with network devices using Cisco's pyATS and Genie libraries for model-driven automation.
MCP Prompt Collector
Tools for logging, analyzing, and improving Claude Desktop prompts to enhance prompt engineering skills.
Blockchain MCP Server
A server for blockchain interactions, offering Ethereum vanity address generation, 4byte lookup, ABI encoding, and multi-chain RPC calls.
MCP-Haskell
A complete Model Context Protocol (MCP) implementation for Haskell, supporting both StdIO and HTTP transport.
Raygun
Interact with your crash reporting and real using monitoring data on your Raygun account