mcpField
S
Simple MCP Client / Server

Simple MCP Client / Server

本地服务
github.com/tikoehle开发工具082 周前更新

关于 Simple MCP Client / Server

这是一个 Python MCP 示例项目,涵盖 stdio 天气服务、客户端实现及使用 Inspector 测试,面向学习构建和连接 MCP 组件的开发者。

主要功能

  1. 01Python stdio 天气服务
  2. 02stdio 和 SSE 客户端示例
  3. 03Cline 连接说明
  4. 04使用 MCP Inspector 本地测试

适用场景

  1. 01构建含两个工具的天气服务
  2. 02通过 Cline 连接本地服务
  3. 03使用 MCP Inspector 测试服务

MCP 相关

项目演示通过 stdio 和 SSE 实现 MCP 服务与客户端,也说明了如何连接 Cline 并检查本地开发的服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

简易 MCP 客户端 / 服务端

https://modelcontextprotocol.io/quickstart/server

在 macOS 和 Linux 上安装 uv。

$ curl -LsSf https://astral.sh/uv/install.sh | sh

然后 git 克隆此仓库。

MCP 服务(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
启动服务
mcp_server$ uv run weather_stdio.py
使用 VSCode + Cline 测试

将 MCP 服务添加到 Cline。

Cline -> MCP Servers (icon close to '+') -> Installed -> Add

你会看到一个 JSON 模板 "mcpServers": {},然后添加新服务。 这是 cline_mcp_settings.json:

{
  "mcpServers": {
    "weather": {
            "command": "uv",
            "args": [
                "--directory",
                "/home/users/tikoehle/mcp_server",
                "run",
                "weather_stdio.py"
            ]
        }
  }
}

=> Cline 会显示 2 个 get_* 工具函数。点击“Done”返回 Cline 任务输入框,尝试使用新服务。

测试

输入一个调用这两个工具的任务: "Can you tell me the weather forecast for San Francisco, CA" "Can you tell me the weather alerts for San Francisco, CA"

=> 使用我新添加的两个 MCP“weather”服务工具。

注意: 本地 MCP 服务不应将消息记录到 stdout,因为这会干扰协议运行。

MCP 客户端

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.
运行客户端

uv run client.py path/to/server.py

mcp_client$ uv run client_stdio.py ../mcp_server/weather_stdio.py

MCP Inspector

安装 Node.js

在 MCP 服务所在的计算机上,使用 nvm 和 npm 获取适用于 Linux 的 Node.js(Current)。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".
检查本地开发的服务
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 🚀

注意:

另一种安装最新版本并启动 Inspector 的方法。

mcp_server$ npx @modelcontextprotocol/inspector@latest
在浏览器中打开 MCP Inspector 客户端界面
http://comp9:5173   --> Connect

注意:

如果 MCP 开发服务运行在远程计算机(例如 comp9)上,那么 MCP Inspector 客户端界面需要连接到这台计算机。

在浏览器中启动界面时,传输类型、命令和参数会显示正确的值。

Transport Type: STDIO
Command: uv
Arguments: run --with mcp mcp run ./weather_stdio.py

或者

Transport Type: SSE
URL: http://comp9:8001/sse

注意:

MCP 开发工具

mcp_server$ uv run mcp

SSE 客户端 / 服务端

服务端

mcp_server$ uv run weather_sse.py      # port 8001

客户端

mcp_client$ uv run client_sse.py http://comp9:8001/sse

Python-SDK

https://github.com/modelcontextprotocol/python-sdk/

SSE 问题:

https://github.com/modelcontextprotocol/python-sdk/issues/398

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。