Simple MCP Client / Server
tikoehle
README
Simple MCP Client / Server
https://modelcontextprotocol.io/quickstart/server
Install uv, on macOS and Linux.
$ curl -LsSf https://astral.sh/uv/install.sh | sh
Then git clone the repo.
MCP Server (stdio)
uv init mcp_server
cd mcp_server/
uv run main.py # just to create the .venv, then rm the main.py
uv add "mcp[cli]" httpx # MCP server Python lib
touch weather_stdio.py # STDIO server implementation
Start the server
mcp_server$ uv run weather_stdio.py
Test with VSCode + Cline
Add MCP server to Cline.
Cline -> MCP Servers (icon close to '+') -> Installed -> Add
You get a json template "mcpServers": {} and you add the new server. Here is the cline_mcp_settings.json:
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"/home/users/tikoehle/mcp_server",
"run",
"weather_stdio.py"
]
}
}
}
=> Cline shows the 2 get_* Tools functions. Click 'Done' to return to Cline Task input trying the new server.
Test
Type a task calling the two tools: "Can you tell me the weather forecast for San Francisco, CA" "Can you tell me the weather alerts for San Francisco, CA"
=> uses my two new MCP 'weather' server tools.
Note: Local MCP servers should not log messages to stdout because this will interfere with protocol operation.
MCP Client
https://modelcontextprotocol.io/quickstart/client
uv init mcp_client
cd mcp_client/
uv run main.py # create venv
uv add mcp
touch client_stdio.py # MCP client impl.
Run the client
uv run client.py path/to/server.py
mcp_client$ uv run client_stdio.py ../mcp_server/weather_stdio.py
MCP Inspector
Installation Node.js
On the MCP server compute, get Node.js (Current) for Linux using nvm with npm. https://nodejs.org/en/download
cd $HOME
# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"
# Download and install Node.js:
nvm install 23
# Verify the Node.js version:
node -v # Should print "v23.10.0".
nvm current # Should print "v23.10.0".
# Verify npm version:
npm -v # Should print "10.9.2".
Inspecting a locally developed server
mcp_server$ uv run mcp dev ./weather_stdio.py
Starting MCP inspector...
Proxy server listening on port 3000
🔍 MCP Inspector is up and running at http://localhost:5173 🚀
Note:
Another method to install the latest version and start the Inspector.
mcp_server$ npx @modelcontextprotocol/inspector@latest
Open the MCP Inspector client UI in the Browser
http://comp9:5173 --> Connect
Note:
If the MCP dev server runs on a remote compute, for example comp9, then the MCP Inspector Client UI needs to connect to this machine.
Transport Type, Command and Arguments appeared with the correct parameters when launching the UI in the browser.
Transport Type: STDIO
Command: uv
Arguments: run --with mcp mcp run ./weather_stdio.py
or
Transport Type: SSE
URL: http://comp9:8001/sse
Note:
MCP development tools
mcp_server$ uv run mcp
SSE Client / Server
Server
mcp_server$ uv run weather_sse.py # port 8001
Client
mcp_client$ uv run client_sse.py http://comp9:8001/sse
Python-SDK
https://github.com/modelcontextprotocol/python-sdk/
SSE Issues:
https://github.com/modelcontextprotocol/python-sdk/issues/398
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor
Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.
Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.