Development sequence
uv init --package mi6
cd mi6
uv run mi6
git add -A
git commit -m "..."
mkdir ~/Projects/gitroot/mi6.git
cd ~/Projects/gitroot/mi6.git
git init --bare
cd -
git remote add origin ~/Projects/gitroot/mi6.git
git push origin master
git checkout origin/master
git branch -f master origin/master
git checkout master
git status
Create a server, say src/server/s_weather.py based on weather.py in https://modelcontextprotocol.io/quickstart/server
uv venv
source .venv/bin/activate
uv add "mcp[cli]" httpx
uv run src/mi6/server/s_weather.py
Create a client, say src/client/c_weather.py based on https://modelcontextprotocol.io/quickstart/client
uv add mcp anthropic python-dotenv
uv run src/mi6/client/c_weather.py
Edit pyproject.toml's project.scripts section to include server (mi6s) and client (mi6c) executables
[project.scripts]
mi6 = "mi6:main"
mi6s = "mi6.server.s_weather:main"
mi6c = "mi6.client.c_weather:main"
Make sure both server and client files have main() defined.
Now to run the server just call
uv run mi6s
Close it as we are going to interface directly from the client.
Run the cleint
uv run mi6c src/mi6/server/s_weather.py