This is a simple demonstration of a fastmcp
server and client.
This project uses uv
for environment and dependency management.
-
Create the virtual environment:
uv venv
-
Activate the virtual environment:
source .venv/bin/activate
-
Install the dependencies:
uv pip sync pyproject.toml
Make sure your virtual environment is activated before running these commands.
- Run the MCP server:
The server will start on
uv run python server.py
localhost:8000
.
-
Configue Gemini CLI Add the following configuration on ~/.gemini/settings.json
{ "security": { "auth": { "selectedType": "oauth-personal" } }, "mcpServers": { "serverName": { "command": "/home/<USER>/.local/bin/uv", "args": [ "--directory", "/home/<USER>/code/python-mcp-server", "run", "server.py" ] } } }
And yes, the home directory can't be summarized to just "~"
-
Th server does not need to be running simply run Gemini CLI:
gemini
From there, you will be able to know if the MCP has been adopted by running the command /mcp list. You should see the tools listed there, similar to this:
ℹConfigured MCP servers: 🟢 serverName - Ready (2 tools) Tools: - addNumbers - greet 💡 Tips: • Use /mcp desc to show server and tool descriptions • Use /mcp schema to show tool parameter schemas • Use /mcp nodesc to hide descriptions • Use /mcp auth <server-name> to authenticate with OAuth-enabled servers • Press Ctrl+T to toggle tool descriptions on/off
In this example you will be able to ask Gemini to greet you or add numbers, as long as you provide enough context to fill in the arguments. If you do not provide arguments, Gemini will ask for more information.
Once all the arguments are provided, Gemini will ask for confirmation before the MCP is hit, and only then will it execute the logic.