Get started building your own server to use in Claude for Desktop and other clients.
get_alerts
and get_forecast
. Then we’ll connect the server to an MCP host (in this case, Claude for Desktop):
print()
statements in Pythonconsole.log()
in JavaScriptfmt.Println()
in Gouv
and set up our Python project and environment:uv
command gets picked up.Now, let’s create and set up our project:weather.py
:uv run weather.py
to confirm that everything’s working.Let’s now test your server from an existing MCP host, Claude for Desktop.~/Library/Application Support/Claude/claude_desktop_config.json
in a text editor. Make sure to create the file if it doesn’t exist.For example, if you have VS Code installed:mcpServers
key. The MCP UI elements will only show up in Claude for Desktop if at least one server is properly configured.In this case, we’ll add our single weather server like so:uv
executable in the command
field. You can get this by running which uv
on MacOS/Linux or where uv
on Windows.uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/weather run weather.py
weather
server. You can do this by looking for the “Search and tools” Claude for Desktop Integration Issues
~/Library/Logs/Claude
:mcp.log
will contain general logging about MCP connections and connection failures.mcp-server-SERVERNAME.log
will contain error (stderr) logging from the named server.claude_desktop_config.json
file syntaxWeather API Issues